@inf-monkeys-tech/monkeys-design 1.0.38 → 1.0.39
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/dist/components/agent-workbench/index.js +9 -0
- package/dist/components/agent-workbench/index.js.map +1 -1
- package/dist/components/agent-workbench/index.mjs +9 -0
- package/dist/components/agent-workbench/index.mjs.map +1 -1
- package/dist/components/base/index.js +9 -0
- package/dist/components/base/index.js.map +1 -1
- package/dist/components/base/index.mjs +9 -0
- package/dist/components/base/index.mjs.map +1 -1
- package/dist/components/data-explorer/index.js +9 -0
- package/dist/components/data-explorer/index.js.map +1 -1
- package/dist/components/data-explorer/index.mjs +9 -0
- package/dist/components/data-explorer/index.mjs.map +1 -1
- package/dist/components/layout/index.js +9 -0
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/index.mjs +9 -0
- package/dist/components/layout/index.mjs.map +1 -1
- package/dist/components/runtime/index.js +9 -0
- package/dist/components/runtime/index.js.map +1 -1
- package/dist/components/runtime/index.mjs +9 -0
- package/dist/components/runtime/index.mjs.map +1 -1
- package/dist/components/toast/index.d.mts +1 -1
- package/dist/components/toast/index.d.ts +1 -1
- package/dist/components/toast/index.js +9 -0
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/toast/index.mjs +9 -0
- package/dist/components/toast/index.mjs.map +1 -1
- package/dist/components/toolbar/index.js +9 -0
- package/dist/components/toolbar/index.js.map +1 -1
- package/dist/components/toolbar/index.mjs +9 -0
- package/dist/components/toolbar/index.mjs.map +1 -1
- package/dist/components/workbench/index.d.mts +218 -6
- package/dist/components/workbench/index.d.ts +218 -6
- package/dist/components/workbench/index.js +1088 -97
- package/dist/components/workbench/index.js.map +1 -1
- package/dist/components/workbench/index.mjs +1089 -99
- package/dist/components/workbench/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +838 -100
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +838 -101
- package/dist/index.mjs.map +1 -1
- package/dist/locale/index.d.mts +20 -2
- package/dist/locale/index.d.ts +20 -2
- package/dist/locale/index.js +22 -0
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/index.mjs +22 -0
- package/dist/locale/index.mjs.map +1 -1
- package/dist/provider/index.d.mts +2 -2
- package/dist/provider/index.d.ts +2 -2
- package/dist/provider/index.js +22 -0
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs +22 -0
- package/dist/provider/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/{types-b8d18b1454c2.d.mts → types-453d18eab188.d.mts} +10 -0
- package/dist/{types-b8d18b1454c2.d.ts → types-453d18eab188.d.ts} +10 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/locale/en-US.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAccordion.tsx","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseAspectRatio.tsx","../../../src/components/base/BaseBadge.tsx","../../../src/components/base/BaseBreadcrumb.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/internal/baseFieldContext.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseCode.tsx","../../../src/components/base/BaseContainer.tsx","../../../src/components/base/BasePortal.tsx","../../../src/components/base/internal/overlayPortal.tsx","../../../src/components/base/BaseContextMenu.tsx","../../../src/components/base/BaseDescriptionList.tsx","../../../src/components/base/BaseDialog.tsx","../../../src/components/base/BaseDivider.tsx","../../../src/components/base/BaseDropdownMenu.tsx","../../../src/components/base/BaseEmptyState.tsx","../../../src/components/base/BaseField.tsx","../../../src/components/base/BaseFieldset.tsx","../../../src/components/base/BaseHeading.tsx","../../../src/components/base/BaseGrid.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseInputGroup.tsx","../../../src/components/base/BaseInline.tsx","../../../src/components/base/BaseKbd.tsx","../../../src/components/base/BaseLayout.tsx","../../../src/components/base/BaseLoadingState.tsx","../../../src/components/base/BaseLink.tsx","../../../src/components/base/BaseList.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseNumberInput.tsx","../../../src/components/base/BaseNotice.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/base/BasePasswordInput.tsx","../../../src/components/base/BasePagination.tsx","../../../src/components/base/BaseProgress.tsx","../../../src/components/base/BaseRadioGroup.tsx","../../../src/components/base/BaseScrollArea.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSectionHeader.tsx","../../../src/components/base/BaseSegmentedControl.tsx","../../../src/components/base/BaseSkeleton.tsx","../../../src/components/base/BaseSpinner.tsx","../../../src/components/base/BaseStack.tsx","../../../src/components/base/BaseSteps.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTableFooterBar.tsx","../../../src/components/base/BaseTabs.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseText.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/BaseToolbar.tsx","../../../src/components/base/BaseVisuallyHidden.tsx"],"names":["BaseAccordion","forwardRef","BaseAvatar","useState","useEffect","jsxs","jsx","BaseAspectRatio","BaseBadge","BaseButton","createContext","useContext","useRef","BaseCheckbox","useCallback","BaseCode","BaseContainer","Fragment","BaseContextMenuTrigger","BaseContextMenuContent","BaseContextMenuLabel","BaseContextMenuSeparator","BaseContextMenuItem","BaseContextMenuCheckboxItem","BaseContextMenuRadioItem","BaseContextMenuSubTrigger","BaseContextMenuSubContent","validateBoolean","BaseDialog","BaseDivider","validateDirection","renderTrigger","BaseDropdownMenu","BaseEmptyState","BaseField","useId","useMemo","mergeAriaIds","resolveOptionalId","BaseFieldset","BaseHeading","createElement","BaseGrid","BaseInput","BaseInputGroup","BaseInline","BaseKbd","BaseLayout","BaseLayoutPane","BaseLayoutResizeHandle","BaseLayoutSplit","BaseLoadingState","BaseLink","BaseList","BaseListItem","toDomId","BaseMultiSelect","BaseNumberInput","setRefs","validateLabel","BasePasswordInput","BasePagination","clamp","BaseProgress","indicatorSizeClassNames","BaseRadioGroup","BaseScrollArea","typeaheadResetDelay","getNextEnabledIndex","getBoundaryEnabledIndex","getOptionText","BaseSelect","BaseSkeleton","BaseSpinner","BaseStack","validateItems","BaseSteps","BaseSwitch","assignRef","assertBoolean","isRtl","setPointerCaptureIfAvailable","toCssSize","BaseTableContainer","BaseTable","BaseTableHeader","BaseTableBody","BaseTableFooter","BaseTableRow","BaseTableHead","BaseTableCell","BaseTableCaption","BaseTableEmpty","BaseTableFooterBar","getDomIdFragments","BaseTabs","controlSizeClassNames","BaseTextarea","BaseText","validatePlacement","isValidElement","BaseTooltip","BaseVisuallyHidden"],"mappings":";;;;;;;;;;;;AAEO,IAAM,IAAA,GAAO;AAAA,EAClB,MAAA,EAAQ,OAAA;AAAA,EACR,QAAA,EAAU;AAAA,IACR,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,YAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU,UAAA;AAAA,MACV,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,CAAC,EAAE,IAAA,EAAM,WAAU,KAAM,CAAA,KAAA,EAAQ,IAAI,CAAA,IAAA,EAAO,SAAS,CAAA,CAAA;AAAA,MAC3D,WAAA,EAAa,CAAC,EAAE,IAAA,EAAM,WAAU,KAC9B,CAAA,KAAA,EAAQ,IAAI,CAAA,IAAA,EAAO,SAAS,CAAA,cAAA,CAAA;AAAA,MAC9B,YAAA,EAAc,WAAA;AAAA,MACd,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAM,KAAM,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,IAAA,EAAO,KAAK,CAAA;AAAA,KAC/D;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,UAAA;AAAA,MACP,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,WAAA;AAAA,MACX,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,WAAA,EAAa;AAAA,MACX,SAAA,EAAW,gBAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACb;AAAA,IACA,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,eAAA;AAAA,MACd,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,WAAA,EAAa;AAAA,MACX,WAAA,EAAa,gBAAA;AAAA,MACb,KAAA,EAAO,YAAA;AAAA,MACP,cAAc,CAAC,EAAE,KAAA,EAAM,KAAM,UAAU,KAAK,CAAA;AAAA,KAC9C;AAAA,IACA,KAAA,EAAO;AAAA,MACL,YAAY,CAAC,EAAE,QAAA,EAAS,KAAM,eAAe,QAAQ,CAAA,CAAA;AAAA,MACrD,cAAc,CAAC,EAAE,QAAA,EAAS,KAAM,iBAAiB,QAAQ,CAAA,CAAA;AAAA,MACzD,UAAA,EAAY,CAAC,EAAE,QAAA,OACb,QAAA,GAAW,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAA,GAAK,aAAA;AAAA,MACzC,UAAA,EAAY;AAAA,KACd;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,YAAA;AAAA,QACP,MAAA,EAAQ,cAAA;AAAA,QACR,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO,OAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,UAAA;AAAA,QACP,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,UAAA,EAAY,OAAA;AAAA,MACZ,YAAA,EAAc,SAAA;AAAA,MACd,uBAAA,EAAyB,uBAAA;AAAA,MACzB,yBAAA,EAA2B;AAAA,KAC7B;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,QAAA,EAAU;AAAA,QACR,OAAA,EAAS,cAAA;AAAA,QACT,MAAA,EAAQ,QAAA;AAAA,QACR,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,YAAA;AAAA,QACT,KAAA,EAAO,UAAA;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,gBAAA,EAAkB;AAAA,QAChB,aAAA,EAAe,gBAAA;AAAA,QACf,YAAA,EAAc,gBAAA;AAAA,QACd,eAAA,EAAiB,iBAAA;AAAA,QACjB,cAAA,EAAgB,oBAAA;AAAA,QAChB,iBAAA,EAAmB,qBAAA;AAAA,QACnB,kBAAA,EAAoB,sBAAA;AAAA,QACpB,gBAAA,EAAkB,oBAAA;AAAA,QAClB,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,KAAA,EAAO,kBAAA;AAAA,MACP,SAAA,EAAW,WAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,YAAA,EAAc,uBAAA;AAAA,MACd,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,MACpC,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAM,iBAAA;AAAA,QACN,KAAA,EAAO,eAAA;AAAA,QACP,MAAA,EAAQ,qBAAA;AAAA,QACR,KAAA,EAAO,mBAAA;AAAA,QACP,SAAA,EAAW,YAAA;AAAA,QACX,QAAA,EAAU,WAAA;AAAA,QACV,KAAA,EAAO,OAAA;AAAA,QACP,SAAA,EAAW,kBAAA;AAAA,QACX,WAAA,EAAa,aAAA;AAAA,QACb,gBAAA,EAAkB,mBAAA;AAAA,QAClB,UAAA,EAAY,qBAAA;AAAA,QACZ,YAAA,EAAc,uBAAA;AAAA,QACd,MAAA,EAAQ,iBAAA;AAAA,QACR,QAAA,EAAU,mBAAA;AAAA,QACV,MAAA,EAAQ,iBAAA;AAAA,QACR,SAAA,EAAW,WAAA;AAAA,QACX,QAAA,EAAU,qBAAA;AAAA,QACV,OAAA,EAAS,SAAA;AAAA,QACT,cAAA,EAAgB,YAAA;AAAA,QAChB,gBAAA,EAAkB,EAAE,GAAA,EAAK,KAAA,EAAO,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,YAAA,EAAa;AAAA,QACpF,mBAAmB,EAAE,mBAAA,EAAqB,qBAAqB,cAAA,EAAgB,cAAA,EAAgB,eAAe,aAAA;AAAc,OAC9H;AAAA,MACA,UAAA,EAAY;AAAA,QACV,KAAA,EAAO,aAAA;AAAA,QACP,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,MAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAQ;AAAA,UACN,OAAA,EAAS,SAAA;AAAA,UACT,OAAA,EAAS,SAAA;AAAA,UACT,SAAA,EAAW,WAAA;AAAA,UACX,MAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,QAAA,EAAU;AAAA,QACR,OAAA,EAAS,SAAA;AAAA,QACT,MAAA,EAAQ,QAAA;AAAA,QACR,QAAA,EAAU,UAAA;AAAA,QACV,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,QAAA,EAAU;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,KAAA,EAAO,OAAA;AAAA,QACP,MAAA,EAAQ,QAAA;AAAA,QACR,MAAM,CAAC,EAAE,IAAA,EAAK,KAAM,QAAQ,IAAI,CAAA;AAAA,OAClC;AAAA,MACA,GAAA,EAAK;AAAA,QACH,QAAA,EAAU,aAAA;AAAA,QACV,cAAc,CAAC,EAAE,QAAA,EAAS,KAAM,qBAAqB,QAAQ,CAAA;AAAA,OAC/D;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,SAAA;AAAA,QACT,SAAA,EAAW,WAAA;AAAA,QACX,cAAc,CAAC,EAAE,QAAA,EAAS,KAAM,cAAc,QAAQ,CAAA,CAAA;AAAA,QACtD,cAAA,EAAgB,CAAC,EAAE,SAAA,EAAW,OAAM,KAAM,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,UAAA;AAAA,OACjE;AAAA,MACA,iBAAA,EAAmB;AAAA,QACjB,OAAA,EAAS,SAAA;AAAA,QACT,OAAA,EAAS,SAAA;AAAA,QACT,OAAA,EAAS,UAAA;AAAA,QACT,aAAA,EAAe,cAAA;AAAA,QACf,IAAA,EAAM,YAAA;AAAA,QACN,UAAU,CAAC,EAAE,IAAA,EAAK,KAAM,SAAS,IAAI,CAAA,CAAA;AAAA,QACrC,cAAA,EAAgB,iBAAA;AAAA,QAChB,UAAU,CAAC,EAAE,IAAA,EAAK,KAAM,YAAY,IAAI,CAAA,CAAA;AAAA,QACxC,cAAc,CAAC,EAAE,IAAA,EAAK,KAAM,QAAQ,IAAI,CAAA,gBAAA;AAAA,OAC1C;AAAA,MACA,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,eAAA;AAAA,QACP,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA,OAAA;AAAA,OAClD;AAAA,MACA,UAAA,EAAY;AAAA,QACV,MAAA,EAAQ,4BAAA;AAAA,QACR,cAAA,EAAgB,iBAAA;AAAA,QAChB,cAAA,EAAgB,cAAA;AAAA,QAChB,WAAA,EAAa,cAAA;AAAA,QACb,SAAA,EAAW,4BAAA;AAAA,QACX,MAAA,EAAQ,QAAA;AAAA,QACR,QAAA,EAAU,UAAA;AAAA,QACV,QAAA,EAAU,WAAA;AAAA,QACV,UAAA,EAAY,aAAA;AAAA,QACZ,YAAA,EAAc,2BAAA;AAAA,QACd,QAAA,EAAU,gBAAA;AAAA,QACV,SAAA,EAAW,YAAA;AAAA,QACX,cAAA,EAAgB,iBAAA;AAAA,QAChB,IAAA,EAAM,MAAA;AAAA,QACN,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO,OAAA;AAAA,QACP,OAAA,EAAS,UAAA;AAAA,QACT,aAAA,EAAe,gBAAA;AAAA,QACf,OAAA,EAAS,YAAA;AAAA,QACT,WAAA,EAAa,eAAA;AAAA,QACb,aAAA,EAAe,iBAAA;AAAA,QACf,SAAA,EAAW,qBAAA;AAAA,QACX,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,KAAA;AAAA,QACL,KAAA,EAAO,OAAA;AAAA,QACP,MAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAQ,QAAA;AAAA,QACR,OAAA,EAAS,SAAA;AAAA,QACT,IAAA,EAAM,MAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,OAAA,EAAS,SAAA;AAAA,QACT,SAAA,EAAW,WAAA;AAAA,QACX,MAAA,EAAQ,QAAA;AAAA,QACR,cAAc,CAAC,EAAE,OAAA,EAAQ,KAAM,GAAG,OAAO,CAAA,cAAA;AAAA,OAC3C;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAa,gCAAA;AAAA,QACb,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,SAAA;AAAA,QACT,KAAA,EAAO,OAAA;AAAA,QACP,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,aAAA;AAAA,QACb,UAAA,EAAY,aAAA;AAAA,QACZ,OAAA,EAAS,SAAA;AAAA,QACT,YAAA,EAAc,8BAAA;AAAA,QACd,aAAA,EAAe,qCAAA;AAAA,QACf,UAAA,EAAY,YAAA;AAAA,QACZ,YAAA,EAAc,eAAA;AAAA,QACd,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,mBAAA;AAAA,UACP,OAAA,EAAS,SAAA;AAAA,UACT,SAAA,EAAW;AAAA,SACb;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,gBAAA,EAAkB,sBAAA;AAAA,UAClB,QAAA,EAAU,UAAA;AAAA,UACV,OAAA,EAAS,SAAA;AAAA,UACT,SAAA,EAAW,WAAA;AAAA,UACX,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,KAAA,EAAO;AAAA,UACL,OAAA,EAAS,EAAE,KAAA,EAAO,sBAAA,EAAwB,aAAa,wCAAA,EAAyC;AAAA,UAChG,KAAA,EAAO,EAAE,KAAA,EAAO,kBAAA,EAAoB,aAAa,uCAAA,EAAwC;AAAA,UACzF,KAAA,EAAO,EAAE,KAAA,EAAO,6BAAA,EAA+B,aAAa,2CAAA;AAA4C,SAC1G;AAAA,QACA,OAAA,EAAS;AAAA,UACP,KAAA,EAAO,oBAAA;AAAA,UACP,WAAA,EAAa,cAAA;AAAA,UACb,KAAA,EAAO,OAAA;AAAA,UACP,YAAA,EAAc,eAAA;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,iBAAA,EAAmB,sBAAA;AAAA,UACnB,YAAA,EAAc,gBAAA;AAAA,UACd,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,cAAA;AAAA,UACP,KAAA,EAAO,OAAA;AAAA,UACP,SAAA,EAAW,WAAA;AAAA,UACX,KAAA,EAAO,OAAA;AAAA,UACP,SAAA,EAAW,WAAA;AAAA,UACX,UAAU,CAAC,EAAE,IAAA,EAAK,KAAM,aAAa,IAAI,CAAA,CAAA;AAAA,UACzC,UAAA,EAAY,EAAE,KAAA,EAAO,OAAA,EAAS,UAAU,UAAA,EAAY,OAAA,EAAS,SAAA,EAAW,OAAA,EAAS,SAAA,EAAU;AAAA,UAC3F,aAAA,EAAe,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAQ,SAAA;AAAU;AACxD;AACF;AACF;AAEJ,CAAA;;;AC/JO,SAAS,0BAAA,CACd,MACA,QAAA,EACuB;AACvB,EAAe,OAAO,IAAA;AA6HxB;AAEO,IAAM,oBAAA,GAA8C;AAAA,EACzD,QAAQ,IAAA,CAAK,MAAA;AAAA,EACb,QAAA,EAAU,0BAAA;AAAA,IACR,IAAA,CAAK;AAAA;AAET,CAAA;;;ACzLA,IAAM,iBAAA,GAAoB,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA;AAC1C,IAAM,YAAA,GAAe,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA;AAcrC,IAAM,gDAAgC,MAAA,CAAO,GAAA;AAAA,EAC3C;AACF,CAAA;AAMA,SAAS,6BAAA,GAAyD;AAChE,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACnB,QAAQ,aAAA,CAAyC;AAAA,MAC/C,GAAG,oBAAA;AAAA,MACH,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,IACD,OAAO,aAAA,CAAwC;AAAA,MAC7C,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,IACD,WAAW,aAAA,CAA4C;AAAA,MACrD,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,IACD,aAAa,aAAA,CAA8C;AAAA,MACzD,QAAA,EAAU,KAAA;AAAA,MACV,WAAA,EAAa,iBAAA;AAAA,MACb,MAAA,EAAQ;AAAA,KACT;AAAA,GACF,CAAA;AACH;AAEA,SAAS,0BAAA,GAAsD;AAC7D,EAAA,MAAM,IAAA,GAAO,UAAA;AACb,EAAA,MAAM,QAAA,GAAW,KAAK,6BAA6B,CAAA;AACnD,EAAA,IAAI,UAAU,OAAO,QAAA;AAErB,EAAA,MAAM,WAAW,6BAAA,EAA8B;AAC/C,EAAA,MAAA,CAAO,cAAA,CAAe,MAAM,6BAAA,EAA+B;AAAA,IACzD,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,KAAA;AAAA,IACZ,YAAA,EAAc,KAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,OAAO,QAAA;AACT;AAEA,IAAM,mBAAmB,0BAAA,EAA2B;AAE7C,IAAM,uBAAuB,gBAAA,CAAiB,MAAA;AAE9C,IAAM,sBAAsB,gBAAA,CAAiB,KAAA;AAE7C,IAAM,0BAA0B,gBAAA,CAAiB,SAAA;AAEjD,IAAM,4BAA4B,gBAAA,CAAiB,WAAA;AAE1D,SAAS,eAAA,CACP,WACA,QAAA,EACe;AACf,EAAA,IAAI,QAAA,KAAa,QAAW,OAAO,SAAA;AACnC,EAAA,IAAI,SAAA,KAAc,QAAW,OAAO,QAAA;AAEpC,EAAA,OAAO;AAAA,IACL,GAAG,SAAA;AAAA,IACH,GAAG,QAAA;AAAA,IACH,KAAA,EACE,SAAA,CAAU,KAAA,IAAS,QAAA,CAAS,KAAA,GACxB,EAAE,GAAG,SAAA,CAAU,KAAA,EAAO,GAAG,QAAA,CAAS,KAAA,EAAM,GACxC,MAAA;AAAA,IACN,MAAA,EACE,SAAA,CAAU,MAAA,IAAU,QAAA,CAAS,MAAA,GACzB,EAAE,GAAG,SAAA,CAAU,MAAA,EAAQ,GAAG,QAAA,CAAS,MAAA,EAAO,GAC1C;AAAA,GACR;AACF;AAMO,SAAS,wBAAA,GAAkD;AAChE,EAAA,OAAO,UAAA,CAAW,oBAAoB,CAAA,CAAE,QAAA;AAC1C;AAMO,SAAS,yBACd,QAAA,EAC4B;AAC5B,EAAA,MAAM,SAAA,GAAY,UAAA,CAAW,mBAAmB,CAAA,CAAE,cAAA;AAClD,EAAA,OAAO,OAAA;AAAA,IACL,MAAM,eAAA,CAAgB,SAAA,EAAW,QAAQ,CAAA;AAAA,IACzC,CAAC,UAAU,SAAS;AAAA,GACtB;AACF;AAYO,SAAS,mBAAA,GAAsB;AACpC,EAAA,OAAO,UAAA,CAAW,uBAAuB,CAAA,CAAE,SAAA;AAC7C;AAEO,SAAS,qBAAA,GAAwB;AACtC,EAAA,OAAO,UAAA,CAAW,yBAAyB,CAAA,CAAE,WAAA;AAC/C;AAEO,SAAS,uBAAA,GAA0B;AACxC,EAAA,OAAO,UAAA,CAAW,yBAAyB,CAAA,CAAE,MAAA;AAC/C;AAEO,SAAS,6BAAA,GAA4D;AAC1E,EAAA,MAAM,MAAA,GAAS,WAAW,oBAAoB,CAAA;AAC9C,EAAA,MAAM,KAAA,GAAQ,WAAW,mBAAmB,CAAA;AAC5C,EAAA,MAAM,SAAA,GAAY,WAAW,uBAAuB,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,YAAY,SAAA,CAAU,QAAA;AAEtE,EAAA,OAAO,OAAA;AAAA,IACL,MACE,cAAA,GACI;AAAA,MACE,KAAK,SAAA,CAAU,SAAA;AAAA,MACf,0BAA0B,SAAA,CAAU,SAAA;AAAA,MACpC,uBAAuB,MAAA,CAAO,MAAA;AAAA,MAC9B,sBAAsB,KAAA,CAAM,OAAA;AAAA,MAC5B,yBAAA,EAA2B,MAAM,aAAA,EAAe;AAAA,QAElD,EAAC;AAAA,IACP;AAAA,MACE,SAAA,CAAU,SAAA;AAAA,MACV,MAAA,CAAO,MAAA;AAAA,MACP,cAAA;AAAA,MACA,MAAM,aAAA,EAAe,SAAA;AAAA,MACrB,KAAA,CAAM;AAAA;AACR,GACF;AACF;AC3NO,SAAS,MAAM,KAAA,EAAiD;AACrE,EAAA,OAAO,QAAQ,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA;AAChD;AAEO,SAAS,kBAAkB,IAAA,EAAiB;AACjD,EAAA,OAAO,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,IAAQ,OAAO,IAAA,KAAS,SAAA;AAChE;AAEO,SAAS,0BAA0B,IAAA,EAAiB;AACzD,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,SAAiB,IAAA,CAAK,IAAA,GAAO,MAAA,GAAS,CAAA;AAC1D,EAAA,OAAO,kBAAkB,IAAI,CAAA;AAC/B;;;ACUA,IAAM,cAA+B,EAAC;AAEtC,IAAM,UAAA,GACJ,sEAAA;AAEF,IAAM,iBAAA,GACJ,0EAAA;AAEF,IAAM,eAAA,GACJ,gFAAA;AACF,IAAM,oBAAA,GAAuB,EAAA;AAAA,EAC3B,wBAAA;AAAA,EACA,iEAAA;AAAA,EACA,uDAAA;AAAA,EACA,uJAAA;AAAA,EACA,oJAAA;AAAA,EACA,oJAAA;AAAA,EACA,8CAAA;AAAA,EACA,6CAAA;AAAA,EACA,qFAAA;AAAA,EACA,+FAAA;AAAA,EACA;AACF,CAAA;AACA,IAAM,sBAAA,GAAyB,EAAA;AAAA,EAC7B,8DAAA;AAAA,EACA,uDAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,SAAA,GAA2B;AAAA,EAC/B,UAAA,EACE,EAAA;AAAA,IACE,0IAAA;AAAA,IACA,6CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EACE,gEAAA;AAAA,EACF,aAAA,EACE,kEAAA;AAAA,EACF,aAAA,EACE,sLAAA;AAAA,EACF,aAAA,EACE,6LAAA;AAAA,EACF,YAAA,EACE,uFAAA;AAAA,EACF,WAAA,EACE,4FAAA;AAAA,EACF,YAAA,EAAc,8CAAA;AAAA,EACd,cAAA,EAAgB,gCAAA;AAAA,EAChB,cAAA,EAAgB,UAAA;AAAA,EAChB,UAAA,EACE,0DAAA;AAAA,EACF,WAAA,EAAa,kBAAA;AAAA,EACb,SAAA,EACE,EAAA;AAAA,IACE,iGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,gDAAA;AAAA,EACd,YAAA,EAAc,8CAAA;AAAA,EACd,YAAA,EAAc,oIAAA;AAAA,EACd,YAAA,EAAc,4IAAA;AAAA,EACd,WAAA,EAAa,+DAAA;AAAA,EACb,UAAA,EAAY,iDAAA;AAAA,EACZ,SAAA,EAAW,8DAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,QAAA,EAAU,+BAAA;AAAA,EACV,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,WAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,qBAAA,EAAuB,iBAAA;AAAA,EACvB,mBAAA,EAAqB,uBAAA;AAAA,EACrB,qBAAA,EAAuB,cAAA;AAAA,EACvB,qBAAA,EAAuB,wCAAA;AAAA,EACvB,qBAAA,EAAuB,oCAAA;AAAA,EACvB,oBAAA,EAAsB,uBAAA;AAAA,EACtB,qBAAA,EAAuB,cAAA;AAAA,EACvB,WAAA,EAAa,kDAAA;AAAA,EACb,aAAA,EAAe,mBAAA;AAAA,EACf,aAAA,EAAe,qBAAA;AAAA,EACf,aAAA,EAAe,mBAAA;AAAA,EACf,aAAA,EAAe,mBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,cAAA,EAAgB,oBAAA;AAAA,EAChB,QAAA,EACE,8KAAA;AAAA,EACF,UAAA,EACE,mHAAA;AAAA,EACF,SAAA,EACE,mGAAA;AAAA,EACF,WAAA,EAAa,6BAAA;AAAA,EACb,OAAA,EACE,yMAAA;AAAA,EACF,QAAA,EAAU,2DAAA;AAAA,EACV,kBAAA,EAAoB,gBAAA;AAAA,EACpB,kBAAA,EAAoB,gBAAA;AAAA,EACpB,kBAAA,EAAoB,gBAAA;AAAA,EACpB,cAAA,EAAgB,gBAAA;AAAA,EAChB,cAAA,EAAgB,WAAA;AAAA,EAChB,gBAAA,EAAkB,eAAA;AAAA,EAClB,gBAAA,EAAkB,eAAA;AAAA,EAClB,iBAAA,EAAmB,cAAA;AAAA,EACnB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,QAAA,EAAU,qDAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,uBAAA;AAAA,EACZ,QAAA,EAAU,cAAA;AAAA,EACV,aAAA,EAAe,wBAAA;AAAA,EACf,eAAA,EACE,4DAAA;AAAA,EACF,WAAA,EACE,4EAAA;AAAA,EACF,gBAAA,EACE,uHAAA;AAAA,EACF,kBAAA,EAAoB,SAAA;AAAA,EACpB,uBAAA,EACE,ufAAA;AAAA,EACF,YAAA,EAAc,sCAAA;AAAA,EACd,cAAA,EAAgB,yDAAA;AAAA,EAChB,mBAAA,EAAqB,8CAAA;AAAA,EACrB,aAAA,EAAe,8CAAA;AAAA,EACf,eAAA,EAAiB,yBAAA;AAAA,EACjB,SAAA,EAAW,2CAAA;AAAA,EACX,eAAA,EACE,yDAAA;AAAA,EACF,aAAA,EAAe,MAAA;AAAA,EACf,SAAA,EAAW,kBAAA;AAAA,EACX,mBAAA,EAAqB,kCAAA;AAAA,EACrB,iBAAA,EAAmB,gBAAA;AAAA,EACnB,YAAA,EACE,sGAAA;AAAA,EACF,uBAAA,EACE,4MAAA;AAAA,EACF,oBAAA,EAAsB,gCAAA;AAAA,EACtB,cAAA,EACE,mHAAA;AAAA,EACF,qBAAA,EAAuB,mDAAA;AAAA,EACvB,qBAAA,EAAuB,8CAAA;AAAA,EACvB,uBAAA,EACE,mDAAA;AAAA,EACF,mBAAA,EACE,+DAAA;AAAA,EACF,YAAA,EAAc,2BAAA;AAAA,EACd,UAAA,EAAY,mDAAA;AAAA,EACZ,gBAAA,EACE,6DAAA;AAAA,EACF,WAAA,EAAa,SAAA;AAAA,EACb,cAAA,EAAgB,oBAAA;AAAA,EAChB,wBAAA,EAA0B,iBAAA;AAAA,EAC1B,sBAAA,EACE,yDAAA;AAAA,EACF,uBAAA,EAAyB,eAAA;AAAA,EACzB,mBAAA,EAAqB,mBAAA;AAAA,EACrB,kBAAA,EAAoB,iBAAA;AAAA,EACpB,kBAAA,EAAoB,cAAA;AAAA,EACpB,uBAAA,EACE,wEAAA;AAAA,EACF,qBAAA,EACE,iVAAA;AAAA,EACF,oBAAA,EAAsB,MAAA;AAAA,EACtB,mBAAA,EACE,oSAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,gMAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,iBAAA,EACE,2FAAA;AAAA,EACF,kBAAA,EAAoB,iCAAA;AAAA,EACpB,iBAAA,EACE,iDAAA;AAAA,EACF,sBAAA,EACE,+EAAA;AAAA,EACF,oBAAA,EACE,+EAAA;AAAA,EACF,oBAAA,EACE,2LAAA;AAAA,EACF,kBAAA,EACE,2LAAA;AAAA,EACF,SAAA,EACE,EAAA;AAAA,IACE,uGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,gBAAA,EACE,gCAAA;AAAA,EACF,aAAA,EAAe,gCAAA;AAAA,EACf,aAAA,EAAe,gCAAA;AAAA,EACf,UAAA,EACE,0BAAA;AAAA,EACF,WAAA,EAAa,aAAA;AAAA,EACb,UAAA,EAAY,qEAAA;AAAA,EACZ,gBAAA,EAAkB,2CAAA;AAAA,EAClB,SAAA,EAAW,2CAAA;AAAA,EACX,mBAAA,EAAqB,MAAA;AAAA,EACrB,WAAA,EAAa,8CAAA;AAAA,EACb,SAAA,EACE,EAAA;AAAA,IACE,4HAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,SAAA,EACE,wIAAA;AAAA,EACF,UAAA,EAAY,uCAAA;AAAA,EACZ,gBAAA,EAAkB,uDAAA;AAAA,EAClB,YAAA,EAAc,uDAAA;AAAA,EACd,cAAA,EACE,6DAAA;AAAA,EACF,SAAA,EAAW,oBAAA;AAAA,EACX,aAAA,EAAe,iDAAA;AAAA,EACf,UAAA,EAAY,0DAAA;AAAA,EACZ,aAAA,EAAe,uBAAA;AAAA,EACf,gBAAA,EAAkB,yCAAA;AAAA,EAClB,YAAA,EAAc,yCAAA;AAAA,EACd,YAAA,EAAc,SAAA;AAAA,EACd,cAAA,EACE,EAAA;AAAA,IACE,iIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,wIAAA;AAAA,EACF,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,kCAAA;AAAA,EACjB,aAAA,EAAe,sEAAA;AAAA,EACf,WAAA,EACE,yGAAA;AAAA,EACF,eAAA,EACE,6EAAA;AAAA,EACF,cAAA,EACE,0DAAA;AAAA,EACF,eAAA,EAAiB,gCAAA;AAAA,EACjB,eAAA,EAAiB,aAAA;AAAA,EACjB,aAAA,EACE,EAAA;AAAA,IACE,wIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,UAAA,EACE,oRAAA;AAAA,EACF,YAAA,EACE,EAAA;AAAA,IACE,oHAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,kCAAA;AAAA,EACpB,oBAAA,EAAsB,4BAAA;AAAA,EACtB,oBAAA,EAAsB,gCAAA;AAAA,EACtB,iBAAA,EAAmB,uBAAA;AAAA,EACnB,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EAAY,sDAAA;AAAA,EACZ,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EACE,EAAA;AAAA,IACE,sIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,4DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EAAe,yDAAA;AAAA,EACf,cAAA,EAAgB,gCAAA;AAAA,EAChB,aAAA,EAAe,oBAAA;AAAA,EACf,WAAA,EAAa,kDAAA;AAAA,EACb,iBAAA,EAAmB,yCAAA;AAAA,EACnB,YAAA,EAAc,sDAAA;AAAA,EACd,aAAA,EAAe,SAAA;AAAA,EACf,WAAA,EACE,EAAA;AAAA,IACE,wJAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,sDAAA;AAAA,EACpB,kBAAA,EAAoB,uBAAA;AAAA,EACpB,iBAAA,EAAmB,oCAAA;AAAA,EACnB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,eAAA,EAAiB,oBAAA;AAAA,EACjB,aAAA,EAAe,kDAAA;AAAA,EACf,mBAAA,EAAqB,yCAAA;AAAA,EACrB,cAAA,EAAgB,oBAAA;AAAA,EAChB,WAAA,EACE,EAAA;AAAA,IACE,yHAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,UAAA,EAAY,SAAA;AAAA,EACZ,WAAA,EACE,EAAA;AAAA,IACE,6JAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,iCAAA;AAAA,EACpB,cAAA,EAAgB,iCAAA;AAAA,EAChB,mBAAA,EAAqB,oDAAA;AAAA,EACrB,YAAA,EAAc,oBAAA;AAAA,EACd,UAAA,EAAY,kDAAA;AAAA,EACZ,gBAAA,EAAkB,yCAAA;AAAA,EAClB,UAAA,EAAY,UAAA;AAAA,EACZ,aAAA,EAAe,EAAA;AAAA,EACf,qBAAA,EAAuB,gCAAA;AAAA,EACvB,aAAA,EACE,+IAAA;AAAA,EACF,aAAA,EACE,qFAAA;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,uLAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,wDAAA;AAAA,EACd,WAAA,EAAa,gEAAA;AAAA,EACb,iBAAA,EAAmB,yCAAA;AAAA,EACnB,UAAA,EAAY,iEAAA;AAAA,EACZ,YAAA,EACE,4FAAA;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,8OAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,8BAAA;AAAA,EACd,eAAA,EAAiB,EAAA;AAAA,EACjB,uBAAA,EAAyB,gCAAA;AAAA,EACzB,YAAA,EACE,4MAAA;AAAA,EACF,eAAA,EAAiB,uCAAA;AAAA,EACjB,eAAA,EAAiB,mBAAA;AAAA,EACjB,aAAA,EACE,uFAAA;AAAA,EACF,iBAAA,EAAmB,wBAAA;AAAA,EACnB,YAAA,EACE,EAAA;AAAA,IACE,6PAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EACE,4GAAA;AAAA,EACF,oBAAA,EACE,4GAAA;AAAA,EACF,gBAAA,EAAkB,0DAAA;AAAA,EAClB,mBAAA,EAAqB,6BAAA;AAAA,EACrB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,uBAAA,EACE,0DAAA;AAAA,EACF,oBAAA,EACE,yDAAA;AAAA,EACF,WAAA,EAAa,8BAAA;AAAA,EACb,cAAA,EAAgB,qBAAA;AAAA,EAChB,cAAA,EACE,yOAAA;AAAA,EACF,UAAA,EACE,EAAA;AAAA,IACE,wDAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EAAe,6CAAA;AAAA,EACf,aAAA,EAAe,8CAAA;AAAA,EACf,aAAA,EACE,6GAAA;AAAA,EACF,aAAA,EAAe,4IAAA;AAAA,EACf,YAAA,EACE,+DAAA;AAAA,EACF,WAAA,EAAa,oDAAA;AAAA,EACb,UAAA,EACE,4GAAA;AAAA,EACF,WAAA,EAAa,yBAAA;AAAA,EACb,iBAAA,EAAmB,WAAA;AAAA,EACnB,aAAA,EAAe,wCAAA;AAAA,EACf,WAAA,EAAa,EAAA,CAAG,2BAAA,EAA6B,UAAU,CAAA;AAAA,EACvD,YAAA,EACE,gIAAA;AAAA,EACF,iBAAA,EACE,mJAAA;AAAA,EACF,oBAAA,EAAsB,oBAAA;AAAA,EACtB,oBAAA,EACE,yEAAA;AAAA,EACF,kBAAA,EAAoB,mDAAA;AAAA,EACpB,wBAAA,EAA0B,mDAAA;AAAA,EAC1B,oBAAA,EAAsB,4CAAA;AAAA,EACtB,QAAA,EAAU,oBAAA;AAAA,EACV,QAAA,EACE,EAAA;AAAA,IACE,qGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,sTAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,iBAAA,EACE,yCAAA;AAAA,EACF,mBAAA,EAAqB,qDAAA;AAAA,EACrB,SAAA,EACE,2RAAA;AAAA,EACF,aAAA,EACE,EAAA;AAAA,IACE,2FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EACE,EAAA;AAAA,IACE,iNAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EACE,yCAAA;AAAA,EACF,qBAAA,EAAuB,qDAAA;AAAA,EACvB,YAAA,EAAc,oBAAA;AAAA,EACd,aAAA,EACE,kDAAA;AAAA,EACF,iBAAA,EACE,6GAAA;AAAA,EACF,gBAAA,EAAkB,iDAAA;AAAA,EAClB,aAAA,EAAe,sDAAA;AAAA,EACf,aAAA,EAAe,oDAAA;AAAA,EACf,YAAA,EACE,iDAAA;AAAA,EACF,UAAA,EACE,uOAAA;AAAA,EACF,WAAA,EACE,4BAAA;AAAA,EACF,cAAA,EACE,yEAAA;AAAA,EACF,YAAA,EACE,6HAAA;AAAA,EACF,UAAA,EAAY,sDAAA;AAAA,EACZ,WAAA,EACE,EAAA;AAAA,IACE,sHAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EAAgB,iCAAA;AAAA,EAChB,YAAA,EAAc,wDAAA;AAAA,EACd,kBAAA,EAAoB,gDAAA;AAAA,EACpB,cAAA,EAAgB,gBAAA;AAAA,EAChB,cAAA,EAAgB,4CAAA;AAAA,EAChB,cAAA,EAAgB,uCAAA;AAAA,EAChB,cAAA,EAAgB,6CAAA;AAAA,EAChB,cAAA,EAAgB,0CAAA;AAAA,EAChB,cAAA,EACE,wSAAA;AAAA,EACF,iBAAA,EAAmB,8CAAA;AAAA,EACnB,mBAAA,EAAqB,mCAAA;AAAA,EACrB,cAAA,EACE,mEAAA;AAAA,EACF,cAAA,EAAgB,+BAAA;AAAA,EAChB,kBAAA,EAAoB,yDAAA;AAAA,EACpB,gBAAA,EACE,wTAAA;AAAA,EACF,wBAAA,EAA0B,gCAAA;AAAA,EAC1B,cAAA,EACE,wJAAA;AAAA,EACF,kBAAA,EACE,wFAAA;AAAA,EACF,mBAAA,EACE,4BAAA;AAAA,EACF,mBAAA,EACE,oKAAA;AAAA,EACF,mBAAA,EACE,wFAAA;AAAA,EACF,oBAAA,EAAsB,2CAAA;AAAA,EACtB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EACE,qKAAA;AAAA,EACF,gBAAA,EACE,uYAAA;AAAA,EACF,oBAAA,EACE,EAAA;AAAA,IACE,mFAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EACE,iMAAA;AAAA,EACF,WAAA,EAAa,qBAAA;AAAA,EACb,WAAA,EACE,gPAAA;AAAA,EACF,SAAA,EAAW,uDAAA;AAAA,EACX,aAAA,EAAe,2BAAA;AAAA,EACf,QAAA,EACE,EAAA;AAAA,IACE,mSAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iEAAA;AAAA,EACjB,eAAA,EACE,+IAAA;AAAA,EACF,eAAA,EACE,6KAAA;AAAA,EACF,cAAA,EACE,4FAAA;AAAA,EACF,aAAA,EACE,gFAAA;AAAA,EACF,gBAAA,EACE,oEAAA;AAAA,EACF,YAAA,EAAc,0DAAA;AAAA,EACd,aAAA,EAAe,yBAAA;AAAA,EACf,gBAAA,EACE,yDAAA;AAAA,EACF,qBAAA,EACE,8EAAA;AAAA,EACF,kBAAA,EACE,8EAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,wWAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EACE,wFAAA;AAAA,EACF,cAAA,EACE,gPAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,sIAAA;AAAA,IACA,oFAAA;AAAA,IACA,iHAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,SAAA,EAAW,gFAAA;AAAA,EACX,YAAA,EAAc,oCAAA;AAAA,EACd,WAAA,EACE,EAAA;AAAA,IACE,qDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,SAAA,EAAW,gCAAA;AAAA,EACX,WAAA,EAAa,qEAAA;AAAA,EACb,cAAA,EACE,EAAA;AAAA,IACE,wJAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,sBAAA,EACE,6DAAA;AAAA,EACF,qBAAA,EAAuB,iCAAA;AAAA,EACvB,qBAAA,EAAuB,gBAAA;AAAA,EACvB,qBAAA,EAAuB,oDAAA;AAAA,EACvB,cAAA,EACE,2JAAA;AAAA,EACF,gBAAA,EACE,kFAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,sGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,gBAAA,EACE,mEAAA;AAAA,EACF,aAAA,EACE,iFAAA;AAAA,EACF,cAAA,EAAgB,8BAAA;AAAA,EAChB,cAAA,EAAgB,wDAAA;AAAA,EAChB,QAAA,EACE,EAAA;AAAA,IACE,mHAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EACE,+JAAA;AAAA,EACF,gBAAA,EAAkB,iCAAA;AAAA,EAClB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,SAAA,EACE,yKAAA;AAAA,EACF,gBAAA,EAAkB,iDAAA;AAAA,EAClB,aAAA,EAAe,iCAAA;AAAA,EACf,aAAA,EAAe,gFAAA;AAAA,EACf,aAAA,EAAe,sBAAA;AAAA,EACf,cAAA,EAAgB,kEAAA;AAAA,EAChB,oBAAA,EAAsB,0EAAA;AAAA,EACtB,aAAA,EAAe,wDAAA;AAAA,EACf,gBAAA,EAAkB,kCAAA;AAAA,EAClB,mBAAA,EACE,EAAA;AAAA,IACE,2MAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,iBAAA,EACE,EAAA;AAAA,IACE,gFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EACE,EAAA;AAAA,IACE,4QAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,qBAAA,EACE,EAAA;AAAA,IACE,+WAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,SAAA,EAAW,iFAAA;AAAA,EACX,oBAAA,EAAsB,aAAA;AAAA,EACtB,mBAAA,EAAqB,YAAA;AAAA,EACrB,aAAA,EAAe,uCAAA;AAAA,EACf,cAAA,EAAgB,wBAAA;AAAA,EAChB,iBAAA,EAAmB,wEAAA;AAAA,EACnB,cAAA,EACE,6FAAA;AAAA,EACF,eAAA,EAAiB,uCAAA;AAAA,EACjB,qBAAA,EAAuB,8CAAA;AAAA,EACvB,iBAAA,EAAmB,uDAAA;AAAA,EACnB,eAAA,EAAiB,uCAAA;AAAA,EACjB,gBAAA,EAAkB,WAAA;AAAA,EAClB,oBAAA,EAAsB,mCAAA;AAAA,EACtB,UAAA,EACE,EAAA;AAAA,IACE,6IAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EAAgB,gBAAA;AAAA,EAChB,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EAAY,4CAAA;AAAA,EACZ,aAAA,EAAe,iCAAA;AAAA,EACf,UAAA,EAAY,iCAAA;AAAA,EACZ,WAAA,EAAa,iCAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EACE,EAAA;AAAA,IACE,4FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,oBAAA,EAAsB,eAAA;AAAA,EACtB,kBAAA,EAAoB,yBAAA;AAAA,EACpB,eAAA,EAAiB,aAAA;AAAA,EACjB,cAAA,EAAgB,4BAAA;AAAA,EAChB,qBAAA,EAAuB,4BAAA;AAAA,EACvB,eAAA,EAAiB,sCAAA;AAAA,EACjB,qBAAA,EAAuB,eAAA;AAAA,EACvB,mBAAA,EAAqB,eAAA;AAAA,EACrB,eAAA,EAAiB,iCAAA;AAAA,EACjB,kBAAA,EAAoB,EAAA;AAAA,EACpB,oBAAA,EAAsB,EAAA;AAAA,EACtB,kBAAA,EACE,EAAA;AAAA,IACE,2PAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,4BAAA,EAA8B,uBAAA;AAAA,EAC9B,0BAAA,EAA4B,uBAAA;AAAA,EAC5B,0BAAA,EAA4B,2BAAA;AAAA,EAC5B,2BAAA,EACE;AACJ,CAAA;AAEA,IAAM,YAAA,GAA6D;AAAA,EACjE,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,oBAAA;AAAA,IACZ,cAAA,EAAgB,cAAA;AAAA,IAChB,SAAA,EAAW,yBAAA;AAAA,IACX,WAAA,EAAa,KAAA;AAAA,IACb,SAAA,EAAW,mBAAA;AAAA,IACX,mBAAA,EAAqB,MAAA;AAAA,IACrB,WAAA,EAAa,WAAA;AAAA,IACb,SAAA,EAAW,oBAAA;AAAA,IACX,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,UAAA,EAAY,SAAA;AAAA,IACZ,gBAAA,EAAkB,mBAAA;AAAA,IAClB,YAAA,EAAc,mBAAA;AAAA,IACd,YAAA,EAAc,aAAA;AAAA,IACd,eAAA,EAAiB,kBAAA;AAAA,IACjB,aAAA,EAAe,aAAA;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,YAAA,EAAc,2BAAA;AAAA,IACd,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,aAAA,EAAe,SAAA;AAAA,IACf,mBAAA,EAAqB,mBAAA;AAAA,IACrB,WAAA,EAAa,qBAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,SAAA;AAAA,IACZ,gBAAA,EAAkB,mBAAA;AAAA,IAClB,WAAA,EAAa,UAAA;AAAA,IACb,YAAA,EAAc,WAAA;AAAA,IACd,WAAA,EAAa,mBAAA;AAAA,IACb,iBAAA,EAAmB,mBAAA;AAAA,IACnB,UAAA,EAAY,mBAAA;AAAA,IACZ,YAAA,EAAc,WAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,qBAAA;AAAA,IACd,cAAA,EAAgB,uBAAA;AAAA,IAChB,UAAA,EAAY,mBAAA;AAAA,IACZ,YAAA,EAAc,aAAA;AAAA,IACd,iBAAA,EAAmB,OAAA;AAAA,IACnB,kBAAA,EAAoB,mBAAA;AAAA,IACpB,wBAAA,EAA0B,mBAAA;AAAA,IAC1B,QAAA,EAAU,eAAA;AAAA,IACV,WAAA,EAAa,mBAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,eAAA;AAAA,IACf,aAAA,EAAe,mBAAA;AAAA,IACf,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,iBAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,kBAAA,EAAoB,mBAAA;AAAA,IACpB,gBAAA,EAAkB,0BAAA;AAAA,IAClB,cAAA,EAAgB,0BAAA;AAAA,IAChB,mBAAA,EAAqB,eAAA;AAAA,IACrB,mBAAA,EAAqB,aAAA;AAAA,IACrB,mBAAA,EAAqB,aAAA;AAAA,IACrB,oBAAA,EAAsB,mBAAA;AAAA,IACtB,gBAAA,EAAkB,mBAAA;AAAA,IAClB,cAAA,EAAgB,6BAAA;AAAA,IAChB,WAAA,EAAa,wBAAA;AAAA,IACb,cAAA,EAAgB,wBAAA;AAAA,IAChB,SAAA,EAAW,uBAAA;AAAA,IACX,QAAA,EAAU,2BAAA;AAAA,IACV,cAAA,EAAgB,2BAAA;AAAA,IAChB,gBAAA,EAAkB,aAAA;AAAA,IAClB,cAAA,EAAgB,sCAAA;AAAA,IAChB,SAAA,EAAW,6BAAA;AAAA,IACX,SAAA,EAAW,qBAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,oBAAA,EAAsB,uBAAA;AAAA,IACtB,gBAAA,EAAkB,aAAA;AAAA,IAClB,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,OAAA;AAAA,IACZ,UAAA,EAAY,oBAAA;AAAA,IACZ,4BAAA,EAA8B,OAAA;AAAA,IAC9B,0BAAA,EAA4B;AAAA,GAC9B;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAA,EAAY,aAAA;AAAA,IACZ,cAAA,EAAgB,gBAAA;AAAA,IAChB,SAAA,EAAW,aAAA;AAAA,IACX,WAAA,EAAa,KAAA;AAAA,IACb,SAAA,EAAW,WAAA;AAAA,IACX,mBAAA,EAAqB,MAAA;AAAA,IACrB,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,qBAAA;AAAA,IACX,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,YAAA,EAAc,MAAA;AAAA,IACd,eAAA,EAAiB,UAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,OAAA;AAAA,IACZ,YAAA,EAAc,mBAAA;AAAA,IACd,WAAA,EAAa,UAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,WAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,WAAA,EAAa,UAAA;AAAA,IACb,YAAA,EAAc,WAAA;AAAA,IACd,UAAA,EAAY,WAAA;AAAA,IACZ,YAAA,EAAc,WAAA;AAAA,IACd,YAAA,EAAc,UAAA;AAAA,IACd,YAAA,EAAc,aAAA;AAAA,IACd,UAAA,EAAY,WAAA;AAAA,IACZ,kBAAA,EAAoB,mBAAA;AAAA,IACpB,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,KAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,aAAA,EAAe,OAAA;AAAA,IACf,WAAA,EAAa,WAAA;AAAA,IACb,gBAAA,EAAkB,kBAAA;AAAA,IAClB,cAAA,EAAgB,kBAAA;AAAA,IAChB,mBAAA,EAAqB,WAAA;AAAA,IACrB,gBAAA,EAAkB,WAAA;AAAA,IAClB,cAAA,EAAgB,WAAA;AAAA,IAChB,WAAA,EAAa,gBAAA;AAAA,IACb,cAAA,EAAgB,gBAAA;AAAA,IAChB,QAAA,EAAU,mBAAA;AAAA,IACV,cAAA,EAAgB,mBAAA;AAAA,IAChB,cAAA,EAAgB,mCAAA;AAAA,IAChB,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,WAAA;AAAA,IAClB,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,OAAA;AAAA,IACZ,UAAA,EAAY,YAAA;AAAA,IACZ,4BAAA,EAA8B,OAAA;AAAA,IAC9B,0BAAA,EAA4B;AAAA;AAEhC,CAAA;AAEA,IAAM,WAAA,GAA2D;AAAA,EAC/D,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,cAAA;AAAA,IACZ,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,YAAA,EAAc,cAAA;AAAA,IACd,YAAA,EAAc,cAAA;AAAA,IACd,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,cAAA;AAAA,IACZ,QAAA,EAAU,cAAA;AAAA,IACV,WAAA,EAAa,cAAA;AAAA,IACb,SAAA,EAAW,cAAA;AAAA,IACX,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,cAAA;AAAA,IACd,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,gBAAA,EAAkB,cAAA;AAAA,IAClB,cAAA,EAAgB,cAAA;AAAA,IAChB,mBAAA,EAAqB,cAAA;AAAA,IACrB,aAAA,EAAe,cAAA;AAAA,IACf,WAAA,EAAa,cAAA;AAAA,IACb,QAAA,EAAU,cAAA;AAAA,IACV,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,oBAAA,EAAsB,cAAA;AAAA,IACtB,UAAA,EAAY,cAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,QAAA,EAAU,YAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,iBAAA,EAAmB,YAAA;AAAA,IACnB,YAAA,EAAc,YAAA;AAAA,IACd,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,gBAAA,EAAkB,YAAA;AAAA,IAClB,cAAA,EAAgB,YAAA;AAAA,IAChB,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,YAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,YAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,IAAI,EAAC;AAAA,EACL,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,QAAA,EAAU,YAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,YAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,YAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,aAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,aAAA;AAAA,IACb,gBAAA,EAAkB,YAAA;AAAA,IAClB,cAAA,EAAgB,YAAA;AAAA,IAChB,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,aAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,cAAA;AAAA,IACZ,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,YAAA,EAAc,aAAA;AAAA,IACd,YAAA,EAAc,cAAA;AAAA,IACd,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,cAAA;AAAA,IACV,WAAA,EAAa,cAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,cAAA;AAAA,IACd,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,aAAA;AAAA,IACb,gBAAA,EAAkB,cAAA;AAAA,IAClB,cAAA,EAAgB,cAAA;AAAA,IAChB,mBAAA,EAAqB,aAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,aAAA;AAAA,IACb,QAAA,EAAU,cAAA;AAAA,IACV,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,oBAAA,EAAsB,cAAA;AAAA,IACtB,UAAA,EAAY,aAAA;AAAA,IACZ,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEA,IAAM,WAAA,GAA2D;AAAA,EAC/D,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,SAAA,EAAW,oBAAA;AAAA,IACX,WAAA,EAAa,oBAAA;AAAA,IACb,SAAA,EAAW,oBAAA;AAAA,IACX,cAAA,EAAgB,oBAAA;AAAA,IAChB,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,YAAA,EAAc,oBAAA;AAAA,IACd,YAAA,EAAc,oBAAA;AAAA,IACd,YAAA,EAAc,oBAAA;AAAA,IACd,cAAA,EAAgB,oBAAA;AAAA,IAChB,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,QAAA,EAAU,oBAAA;AAAA,IACV,SAAA,EAAW,oBAAA;AAAA,IACX,aAAA,EAAe,oBAAA;AAAA,IACf,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,gBAAA,EAAkB,oBAAA;AAAA,IAClB,mBAAA,EAAqB,oBAAA;AAAA,IACrB,aAAA,EAAe,oBAAA;AAAA,IACf,cAAA,EAAgB,oBAAA;AAAA,IAChB,WAAA,EAAa,oBAAA;AAAA,IACb,aAAA,EAAe,gBAAA;AAAA,IACf,cAAA,EAAgB,oBAAA;AAAA,IAChB,cAAA,EAAgB,gEAAA;AAAA,IAChB,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,6BAAA;AAAA,IACb,cAAA,EAAgB,oBAAA;AAAA,IAChB,sBAAA,EAAwB,6BAAA;AAAA,IACxB,QAAA,EAAU,0BAAA;AAAA,IACV,aAAA,EAAe,0BAAA;AAAA,IACf,eAAA,EAAiB,0BAAA;AAAA,IACjB,UAAA,EAAY,oBAAA;AAAA,IACZ,kBAAA,EAAoB,oBAAA;AAAA,IACpB,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,aAAA,EAAe,kBAAA;AAAA,IACf,YAAA,EAAc,kBAAA;AAAA,IACd,SAAA,EAAW,kBAAA;AAAA,IACX,WAAA,EAAa,kBAAA;AAAA,IACb,SAAA,EAAW,kBAAA;AAAA,IACX,cAAA,EAAgB,kBAAA;AAAA,IAChB,UAAA,EAAY,kBAAA;AAAA,IACZ,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,cAAA,EAAgB,kBAAA;AAAA,IAChB,aAAA,EAAe,kBAAA;AAAA,IACf,WAAA,EAAa,kBAAA;AAAA,IACb,QAAA,EAAU,kBAAA;AAAA,IACV,SAAA,EAAW,kBAAA;AAAA,IACX,aAAA,EAAe,kBAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,WAAA,EAAa,kBAAA;AAAA,IACb,gBAAA,EAAkB,kBAAA;AAAA,IAClB,mBAAA,EAAqB,kBAAA;AAAA,IACrB,aAAA,EAAe,kBAAA;AAAA,IACf,cAAA,EAAgB,kBAAA;AAAA,IAChB,WAAA,EAAa,kBAAA;AAAA,IACb,aAAA,EAAe,cAAA;AAAA,IACf,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,2EAAA;AAAA,IAChB,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,2BAAA;AAAA,IACb,cAAA,EAAgB,kBAAA;AAAA,IAChB,sBAAA,EAAwB,2BAAA;AAAA,IACxB,QAAA,EAAU,wBAAA;AAAA,IACV,aAAA,EAAe,wBAAA;AAAA,IACf,eAAA,EAAiB,wBAAA;AAAA,IACjB,UAAA,EAAY,kBAAA;AAAA,IACZ,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,OAAO,EAAC;AAAA,EACR,MAAA,EAAQ;AAAA,IACN,aAAA,EAAe,sBAAA;AAAA,IACf,YAAA,EAAc,sBAAA;AAAA,IACd,SAAA,EAAW,sBAAA;AAAA,IACX,WAAA,EAAa,sBAAA;AAAA,IACb,SAAA,EAAW,sBAAA;AAAA,IACX,cAAA,EAAgB,sBAAA;AAAA,IAChB,UAAA,EAAY,sBAAA;AAAA,IACZ,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,YAAA,EAAc,sBAAA;AAAA,IACd,YAAA,EAAc,sBAAA;AAAA,IACd,YAAA,EAAc,sBAAA;AAAA,IACd,cAAA,EAAgB,sBAAA;AAAA,IAChB,aAAA,EAAe,sBAAA;AAAA,IACf,WAAA,EAAa,sBAAA;AAAA,IACb,QAAA,EAAU,sBAAA;AAAA,IACV,SAAA,EAAW,sBAAA;AAAA,IACX,aAAA,EAAe,sBAAA;AAAA,IACf,UAAA,EAAY,sBAAA;AAAA,IACZ,WAAA,EAAa,sBAAA;AAAA,IACb,gBAAA,EAAkB,sBAAA;AAAA,IAClB,mBAAA,EAAqB,sBAAA;AAAA,IACrB,aAAA,EAAe,sBAAA;AAAA,IACf,cAAA,EAAgB,sBAAA;AAAA,IAChB,WAAA,EAAa,sBAAA;AAAA,IACb,aAAA,EAAe,kBAAA;AAAA,IACf,cAAA,EAAgB,sBAAA;AAAA,IAChB,cAAA,EACE,oFAAA;AAAA,IACF,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,+BAAA;AAAA,IACb,cAAA,EAAgB,sBAAA;AAAA,IAChB,sBAAA,EAAwB,+BAAA;AAAA,IACxB,QAAA,EAAU,4BAAA;AAAA,IACV,aAAA,EAAe,4BAAA;AAAA,IACf,eAAA,EAAiB,4BAAA;AAAA,IACjB,UAAA,EAAY,sBAAA;AAAA,IACZ,kBAAA,EAAoB,sBAAA;AAAA,IACpB,kBAAA,EAAoB;AAAA;AAExB,CAAA;AAEA,IAAM,eAAA,GAAmE;AAAA,EACvE,OAAO,EAAC;AAAA,EACR,KAAA,EAAO;AAAA,IACL,aAAA,EAAe,+BAAA;AAAA,IACf,SAAA,EAAW,SAAA;AAAA,IACX,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,eAAA;AAAA,IACZ,kBAAA,EAAoB,6BAAA;AAAA,IACpB,WAAA,EAAa,eAAA;AAAA,IACb,WAAA,EAAa,2BAAA;AAAA,IACb,WAAA,EAAa,eAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,eAAA;AAAA,IACd,YAAA,EAAc,mBAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EAAU,aAAA;AAAA,IACV,iBAAA,EAAmB,eAAA;AAAA,IACnB,SAAA,EAAW,SAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,YAAA,EAAc,UAAA;AAAA,IACd,WAAA,EAAa,SAAA;AAAA,IACb,gBAAA,EAAkB,iCAAA;AAAA,IAClB,cAAA,EAAgB,aAAA;AAAA,IAChB,mBAAA,EAAqB,SAAA;AAAA,IACrB,aAAA,EAAe,SAAA;AAAA,IACf,WAAA,EAAa,eAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,cAAA,EACE,gFAAA;AAAA,IACF,cAAA,EAAgB,eAAA;AAAA,IAChB,cAAA,EAAgB,4CAAA;AAAA,IAChB,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,yBAAA;AAAA,IAChB,mBAAA,EAAqB,qEAAA;AAAA,IACrB,oBAAA,EAAsB,UAAA;AAAA,IACtB,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,eAAA,EAAiB,aAAA;AAAA,IACjB,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,aAAA,EAAe,+BAAA;AAAA,IACf,SAAA,EAAW,4BAAA;AAAA,IACX,SAAA,EAAW,4BAAA;AAAA,IACX,cAAA,EAAgB,kBAAA;AAAA,IAChB,UAAA,EAAY,4BAAA;AAAA,IACZ,kBAAA,EAAoB,6BAAA;AAAA,IACpB,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,8CAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,4BAAA;AAAA,IACb,YAAA,EAAc,4BAAA;AAAA,IACd,YAAA,EAAc,mBAAA;AAAA,IACd,cAAA,EAAgB,sBAAA;AAAA,IAChB,aAAA,EAAe,4BAAA;AAAA,IACf,QAAA,EAAU,4BAAA;AAAA,IACV,iBAAA,EAAmB,eAAA;AAAA,IACnB,SAAA,EAAW,4BAAA;AAAA,IACX,aAAA,EAAe,4BAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,YAAA,EAAc,kBAAA;AAAA,IACd,WAAA,EAAa,4BAAA;AAAA,IACb,gBAAA,EAAkB,oCAAA;AAAA,IAClB,mBAAA,EAAqB,4BAAA;AAAA,IACrB,aAAA,EAAe,4BAAA;AAAA,IACf,WAAA,EAAa,4BAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,cAAA,EACE,gFAAA;AAAA,IACF,cAAA,EAAgB,4BAAA;AAAA,IAChB,cAAA,EACE,sDAAA;AAAA,IACF,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,yBAAA;AAAA,IAChB,mBAAA,EAAqB,qEAAA;AAAA,IACrB,oBAAA,EAAsB,aAAA;AAAA,IACtB,UAAA,EAAY,4BAAA;AAAA,IACZ,UAAA,EAAY,4BAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,kBAAA;AAAA,IACZ,aAAA,EACE,uEAAA;AAAA,IACF,YAAA,EAAc,iDAAA;AAAA,IACd,SAAA,EAAW,8DAAA;AAAA,IACX,WAAA,EAAa,iCAAA;AAAA,IACb,SAAA,EAAW,8DAAA;AAAA,IACX,SAAA,EAAW,6BAAA;AAAA,IACX,cAAA,EACE,kEAAA;AAAA,IACF,UAAA,EACE,yHAAA;AAAA,IACF,YAAA,EAAc,iBAAA;AAAA,IACd,kBAAA,EAAoB,iCAAA;AAAA,IACpB,oBAAA,EAAsB,iCAAA;AAAA,IACtB,WAAA,EAAa,kDAAA;AAAA,IACb,WAAA,EAAa,kDAAA;AAAA,IACb,kBAAA,EAAoB,iDAAA;AAAA,IACpB,WAAA,EAAa,wEAAA;AAAA,IACb,WAAA,EAAa,kDAAA;AAAA,IACb,kBAAA,EAAoB,iCAAA;AAAA,IACpB,aAAA,EAAe,mCAAA;AAAA,IACf,WAAA,EAAa,6DAAA;AAAA,IACb,YAAA,EAAc,iBAAA;AAAA,IACd,YAAA,EAAc,iBAAA;AAAA,IACd,YAAA,EACE,yHAAA;AAAA,IACF,YAAA,EAAc,uCAAA;AAAA,IACd,cAAA,EACE,yHAAA;AAAA,IACF,aAAA,EACE,kEAAA;AAAA,IACF,WAAA,EAAa,iBAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,WAAA,EAAa,mEAAA;AAAA,IACb,iBAAA,EAAmB,6CAAA;AAAA,IACnB,SAAA,EACE,8DAAA;AAAA,IACF,aAAA,EAAe,kDAAA;AAAA,IACf,aAAA,EAAe,mEAAA;AAAA,IACf,mBAAA,EAAqB,6CAAA;AAAA,IACrB,aAAA,EAAe,iBAAA;AAAA,IACf,YAAA,EAAc,iBAAA;AAAA,IACd,UAAA,EAAY,iDAAA;AAAA,IACZ,cAAA,EAAgB,iCAAA;AAAA,IAChB,YAAA,EAAc,mBAAA;AAAA,IACd,WAAA,EACE,8DAAA;AAAA,IACF,gBAAA,EACE,uEAAA;AAAA,IACF,cAAA,EAAgB,iCAAA;AAAA,IAChB,mBAAA,EACE,8DAAA;AAAA,IACF,aAAA,EACE,8DAAA;AAAA,IACF,cAAA,EAAgB,iBAAA;AAAA,IAChB,WAAA,EACE,yHAAA;AAAA,IACF,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EACE,mIAAA;AAAA,IACF,cAAA,EACE,qKAAA;AAAA,IACF,cAAA,EACE,yHAAA;AAAA,IACF,cAAA,EACE,0NAAA;AAAA,IACF,WAAA,EAAa,iBAAA;AAAA,IACb,WAAA,EAAa,0CAAA;AAAA,IACb,cAAA,EACE,8DAAA;AAAA,IACF,sBAAA,EAAwB,0BAAA;AAAA,IACxB,QAAA,EAAU,uBAAA;AAAA,IACV,mBAAA,EAAqB,wEAAA;AAAA,IACrB,cAAA,EAAgB,iBAAA;AAAA,IAChB,oBAAA,EAAsB,iBAAA;AAAA,IACtB,UAAA,EACE,8DAAA;AAAA,IACF,UAAA,EACE,8DAAA;AAAA,IACF,eAAA,EAAiB,iBAAA;AAAA,IACjB,cAAA,EAAgB,8CAAA;AAAA,IAChB,kBAAA,EAAoB,mFAAA;AAAA,IACpB,2BAAA,EAA6B;AAAA,GAC/B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,UAAA,EACE,oDAAA;AAAA,IACF,aAAA,EAAe,mCAAA;AAAA,IACf,aAAA,EAAe,0DAAA;AAAA,IACf,WAAA,EACE,kFAAA;AAAA,IACF,YAAA,EAAc,4CAAA;AAAA,IACd,UAAA,EAAY,2CAAA;AAAA,IACZ,SAAA,EAAW,qDAAA;AAAA,IACX,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,SAAA,EAAW,eAAA;AAAA,IACX,WAAA,EAAa,iCAAA;AAAA,IACb,SAAA,EAAW,qDAAA;AAAA,IACX,SAAA,EAAW,2BAAA;AAAA,IACX,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,YAAA,EAAc,eAAA;AAAA,IACd,cAAA,EACE,6FAAA;AAAA,IACF,WAAA,EAAa,sCAAA;AAAA,IACb,aAAA,EAAe,eAAA;AAAA,IACf,UAAA,EAAY,oDAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,kBAAA,EAAoB,4BAAA;AAAA,IACpB,oBAAA,EAAsB,4BAAA;AAAA,IACtB,iBAAA,EAAmB,eAAA;AAAA,IACnB,WAAA,EAAa,qDAAA;AAAA,IACb,aAAA,EAAe,wCAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,iBAAA,EAAmB,eAAA;AAAA,IACnB,WAAA,EAAa,gEAAA;AAAA,IACb,kBAAA,EAAoB,wCAAA;AAAA,IACpB,aAAA,EAAe,YAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,WAAA,EAAa,kEAAA;AAAA,IACb,WAAA,EAAa,gEAAA;AAAA,IACb,kBAAA,EAAoB,6BAAA;AAAA,IACpB,cAAA,EAAgB,UAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,aAAA,EAAe,iBAAA;AAAA,IACf,WAAA,EAAa,oDAAA;AAAA,IACb,YAAA,EAAc,iBAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,iBAAA,EAAmB,eAAA;AAAA,IACnB,UAAA,EAAY,eAAA;AAAA,IACZ,YAAA,EAAc,iBAAA;AAAA,IACd,WAAA,EAAa,sDAAA;AAAA,IACb,YAAA,EAAc,oDAAA;AAAA,IACd,aAAA,EAAe,eAAA;AAAA,IACf,iBAAA,EAAmB,aAAA;AAAA,IACnB,YAAA,EAAc,kCAAA;AAAA,IACd,uBAAA,EAAyB,eAAA;AAAA,IACzB,oBAAA,EAAsB,eAAA;AAAA,IACtB,cAAA,EAAgB,oDAAA;AAAA,IAChB,aAAA,EAAe,4CAAA;AAAA,IACf,WAAA,EAAa,2CAAA;AAAA,IACb,WAAA,EAAa,iBAAA;AAAA,IACb,YAAA,EAAc,eAAA;AAAA,IACd,oBAAA,EAAsB,eAAA;AAAA,IACtB,kBAAA,EAAoB,YAAA;AAAA,IACpB,wBAAA,EAA0B,eAAA;AAAA,IAC1B,QAAA,EAAU,iCAAA;AAAA,IACV,WAAA,EAAa,sDAAA;AAAA,IACb,iBAAA,EAAmB,wCAAA;AAAA,IACnB,SAAA,EAAW,4CAAA;AAAA,IACX,aAAA,EAAe,iCAAA;AAAA,IACf,aAAA,EAAe,sDAAA;AAAA,IACf,mBAAA,EAAqB,wCAAA;AAAA,IACrB,aAAA,EAAe,iBAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,eAAA;AAAA,IACf,YAAA,EAAc,iBAAA;AAAA,IACd,UAAA,EAAY,4CAAA;AAAA,IACZ,cAAA,EAAgB,+BAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,kBAAA;AAAA,IACd,WAAA,EAAa,4CAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,kBAAA,EAAoB,eAAA;AAAA,IACpB,cAAA,EAAgB,gCAAA;AAAA,IAChB,iBAAA,EAAmB,YAAA;AAAA,IACnB,mBAAA,EAAqB,eAAA;AAAA,IACrB,cAAA,EAAgB,eAAA;AAAA,IAChB,gBAAA,EAAkB,kEAAA;AAAA,IAClB,cAAA,EAAgB,4BAAA;AAAA,IAChB,mBAAA,EAAqB,iCAAA;AAAA,IACrB,mBAAA,EAAqB,eAAA;AAAA,IACrB,oBAAA,EAAsB,YAAA;AAAA,IACtB,aAAA,EAAe,iCAAA;AAAA,IACf,gBAAA,EAAkB,kCAAA;AAAA,IAClB,cAAA,EAAgB,+BAAA;AAAA,IAChB,cAAA,EACE,kNAAA;AAAA,IACF,SAAA,EAAW,YAAA;AAAA,IACX,WAAA,EAAa,iBAAA;AAAA,IACb,WAAA,EAAa,0CAAA;AAAA,IACb,cAAA,EAAgB,+CAAA;AAAA,IAChB,sBAAA,EAAwB,0BAAA;AAAA,IACxB,QAAA,EAAU,uBAAA;AAAA,IACV,mBAAA,EAAqB,wEAAA;AAAA,IACrB,SAAA,EAAW,eAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,eAAA;AAAA,IACtB,aAAA,EAAe,eAAA;AAAA,IACf,aAAA,EAAe,eAAA;AAAA,IACf,iBAAA,EAAmB,eAAA;AAAA,IACnB,mBAAA,EAAqB,qCAAA;AAAA,IACrB,qBAAA,EAAuB,2CAAA;AAAA,IACvB,SAAA,EAAW,eAAA;AAAA,IACX,cAAA,EAAgB,2BAAA;AAAA,IAChB,eAAA,EAAiB,YAAA;AAAA,IACjB,qBAAA,EAAuB,eAAA;AAAA,IACvB,WAAA,EAAa,oDAAA;AAAA,IACb,SAAA,EAAW,eAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EACE,oHAAA;AAAA,IACF,eAAA,EAAiB,YAAA;AAAA,IACjB,eAAA,EAAiB,iEAAA;AAAA,IACjB,eAAA,EACE,+IAAA;AAAA,IACF,eAAA,EACE,6KAAA;AAAA,IACF,cAAA,EACE,4FAAA;AAAA,IACF,aAAA,EACE,8DAAA;AAAA,IACF,gBAAA,EAAkB,eAAA;AAAA,IAClB,cAAA,EACE,sJAAA;AAAA,IACF,kBAAA,EAAoB,eAAA;AAAA,IACpB,cAAA,EAAgB,oDAAA;AAAA,IAChB,oBAAA,EAAsB,iBAAA;AAAA,IACtB,UAAA,EAAY,qDAAA;AAAA,IACZ,UAAA,EAAY,qDAAA;AAAA,IACZ,eAAA,EAAiB,iBAAA;AAAA,IACjB,cAAA,EAAgB,6BAAA;AAAA,IAChB,kBAAA,EAAoB,8EAAA;AAAA,IACpB,2BAAA,EAA6B;AAAA;AAEjC,CAAA;AAEA,IAAM,cAAA,GAGF;AAAA,EACF,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,OAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEA,IAAM,WAAA,GAAuD;AAAA,EAC3D,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,aAAA;AAAA,IACZ,SAAA,EAAW,kBAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,WAAA,EAAa,aAAA;AAAA,IACb,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,kBAAA;AAAA,IACb,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,eAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,SAAA;AAAA,IACZ,SAAA,EAAW,aAAA;AAAA,IACX,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,QAAA,EAAU,SAAA;AAAA,IACV,cAAA,EAAgB,SAAA;AAAA,IAChB,UAAA,EAAY,SAAA;AAAA,IACZ,kBAAA,EAAoB,SAAA;AAAA,IACpB,WAAA,EAAa,SAAA;AAAA,IACb,aAAA,EAAe,SAAA;AAAA,IACf,YAAA,EAAc,SAAA;AAAA,IACd,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,aAAA,EAAe,6EAAA;AAAA,IACf,YAAA,EAAc,yDAAA;AAAA,IACd,aAAA,EAAe,yDAAA;AAAA,IACf,iBAAA,EAAmB,YAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,kDAAA;AAAA,IACX,SAAA,EAAW,kDAAA;AAAA,IACX,UAAA,EAAY,kDAAA;AAAA,IACZ,SAAA,EAAW,kDAAA;AAAA,IACX,WAAA,EAAa,kDAAA;AAAA,IACb,mBAAA,EAAqB,kDAAA;AAAA,IACrB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAA,EAAY,aAAA;AAAA,IACZ,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,aAAA;AAAA,IACV,iBAAA,EAAmB,aAAA;AAAA,IACnB,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,mBAAA,EAAqB,aAAA;AAAA,IACrB,WAAA,EAAa,aAAA;AAAA,IACb,mBAAA,EAAqB,aAAA;AAAA,IACrB,aAAA,EAAe;AAAA;AAEnB,CAAA;AAEA,SAAS,kBAAkB,MAAA,EAA2B;AACpD,EAAA,OACE,cAAA,CAAe,MAAqC,CAAA,IAAK,cAAA,CAAe,OAAA;AAE5E;AAEA,IAAM,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAEtC,SAAS,cACJ,OAAA,EACY;AACf,EAAA,OAAO,QAAA,CAAS,MAAA,CAAO,CAAC,QAAA,EAAU,GAAA,KAAQ;AACxC,IAAA,QAAA,CAAS,GAAG,CAAA,GAAI,EAAA,CAAG,GAAG,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,GAAS,GAAG,CAAC,CAAC,CAAA;AAC5D,IAAA,OAAO,QAAA;AAAA,EACT,CAAA,EAAG,EAAmB,CAAA;AACxB;AAEA,SAAS,eAAe,SAAA,EAA+C;AACrE,EAAA,OAAO,MAAA,CAAO,OAAO,EAAC,EAAG,GAAG,SAAA,CAAU,MAAA,CAAO,OAAO,CAAC,CAAA;AACvD;AAEO,SAAS,sBACd,UAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,YAAY,MAAA,IAAU,SAAA;AACrC,EAAA,MAAM,OAAA,GAAU,YAAY,OAAA,IAAW,SAAA;AACvC,EAAA,MAAM,QAAA,GAAW,kBAAkB,MAAM,CAAA;AACzC,EAAA,MAAM,OAAA,GAAU,UAAA,EAAY,OAAA,IAAW,QAAA,CAAS,OAAA,IAAW,SAAA;AAC3D,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAA,IAAS,MAAA;AACnC,EAAA,MAAM,MAAA,GAAS,UAAA,EAAY,MAAA,IAAU,QAAA,CAAS,MAAA,IAAU,IAAA;AACxD,EAAA,MAAM,MAAA,GAAS,UAAA,EAAY,MAAA,IAAU,QAAA,CAAS,MAAA,IAAU,OAAA;AACxD,EAAA,MAAM,UAAA,GAAa,UAAA,EAAY,UAAA,IAAc,QAAA,CAAS,UAAA,IAAc,OAAA;AAEpE,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA,EAAQ,WAAA,CAAY,WAAA,EAAa,UAAA,EAAY,MAAM,CAAA;AAAA,IACnD,KAAA,EAAO,UAAA;AAAA,MACL,SAAA;AAAA,MACA,YAAY,MAAM,CAAA;AAAA,MAClB,aAAa,OAAO,CAAA;AAAA,MACpB,YAAY,MAAM,CAAA;AAAA,MAClB,YAAY,MAAM,CAAA;AAAA,MAClB,gBAAgB,UAAU,CAAA;AAAA,MAC1B,UAAA,EAAY;AAAA;AACd,GACF;AACF;AAEO,SAAS,0BAAA,CACd,KAAA,EACA,IAAA,GAAwB,SAAA,EACxB,SAAS,KAAA,EACT;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IACjC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,WAAA;AAAA,IAChC,MAAA,IAAU,MAAM,KAAA,CAAM;AAAA,GACxB;AACF;AAEO,SAAS,yBAAA,CACd,KAAA,EACA,IAAA,GAAwB,SAAA,EACxB;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,WAAA;AAAA,IACjC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM;AAAA,GAClC;AACF;AAEO,SAAS,0BAAA,CACd,KAAA,EACA,IAAA,GAAwB,SAAA,EACxB;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IACjC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM;AAAA,GAClC;AACF;AAEO,SAAS,4BAAA,CACd,KAAA,EACA,IAAA,GAAwB,SAAA,EACxB;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,eAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,eAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,eAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,eAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,cAAA;AAAA,IACjC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM;AAAA,GAClC;AACF;AAEO,SAAS,8BAAA,CACd,KAAA,EACA,IAAA,GAA2B,SAAA,EAC3B;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,IAClC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,IAChC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,IACjC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM;AAAA,GACpC;AACF;AAEO,SAAS,wBAAA,CACd,KAAA,EACA,IAAA,GAA2B,IAAA,EAC3B;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,UAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,UAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,UAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,UAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM;AAAA,GAC/B;AACF;AAEO,SAAS,2BAAA,CACd,KAAA,EACA,IAAA,GAAwB,IAAA,EACxB;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAC7B,IAAA,KAAS,IAAA,IAAQ,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAC7B,IAAA,KAAS,KAAA,IAAS,KAAA,CAAM,KAAA,CAAM;AAAA,GAChC;AACF;AAEO,SAAS,2BAAA,CACd,KAAA,EACA,OAAA,GAA2B,SAAA,EAC3B;AACA,EAAA,OAAO,EAAA;AAAA,IACL,OAAA,KAAY,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,kBAAA;AAAA,IACrC,OAAA,KAAY,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,kBAAA;AAAA,IACrC,OAAA,KAAY,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM;AAAA,GACvC;AACF;AAEO,SAAS,0BAAA,CACd,OACA,MAAA,EACA;AACA,EAAA,OAAO,EAAA;AAAA,IACL,MAAA,KAAW,MAAA,IAAU,KAAA,CAAM,KAAA,CAAM,cAAA;AAAA,IACjC,MAAA,KAAW,MAAA,IAAU,KAAA,CAAM,KAAA,CAAM,cAAA;AAAA,IACjC,MAAA,KAAW,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,gBAAA;AAAA,IACnC,MAAA,KAAW,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,gBAAA;AAAA,IACnC,MAAA,KAAW,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,iBAAA;AAAA,IACpC,MAAA,KAAW,aAAA,IAAiB,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,IACxC,MAAA,KAAW,aAAA,IAAiB,KAAA,CAAM,KAAA,CAAM;AAAA,GAC1C;AACF;AAEA,IAAM,gBAAA,GAAmB,sKAAA;AACzB,IAAM,kBAAA,uBAAyB,GAAA,CAAI,CAAC,QAAQ,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,KAAK,CAAC,CAAA;AACzE,IAAM,qBAAA,GAAwB,gCAAA;AAC9B,IAAM,wBAAA,GAA2B,4SAAA;AAEjC,SAAS,sBAAsB,KAAA,EAAe;AAC5C,EAAA,MAAM,KAAA,GAAgC,EAAE,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAI;AAC3D,EAAA,MAAM,QAAkB,EAAC;AAEzB,EAAA,KAAA,MAAW,aAAa,KAAA,EAAO;AAC7B,IAAA,IAAI,SAAA,KAAc,GAAA,IAAO,SAAA,KAAc,GAAA,EAAK;AAC1C,MAAA,KAAA,CAAM,KAAK,SAAS,CAAA;AAAA,IACtB,CAAA,MAAA,IAAW,SAAA,KAAc,GAAA,IAAO,SAAA,KAAc,GAAA,EAAK;AACjD,MAAA,IAAI,MAAM,GAAA,EAAI,KAAM,KAAA,CAAM,SAAS,GAAG,OAAO,KAAA;AAAA,IAC/C;AAAA,EACF;AAEA,EAAA,OAAO,MAAM,MAAA,KAAW,CAAA;AAC1B;AAEA,SAAS,6BAA6B,KAAA,EAAe;AACnD,EAAA,MAAM,KAAA,GAAQ,0BAAA,CAA2B,IAAA,CAAK,KAAK,CAAA;AACnD,EAAA,IAAI,CAAC,KAAA,IAAS,CAAC,kBAAA,CAAmB,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,EAAG,OAAO,KAAA;AACtE,EAAA,IAAI,CAAC,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,MAAU,CAAC,qBAAA,CAAsB,KAAK,CAAA,EAAG,OAAO,KAAA;AAE9D,EAAA,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,WAAA,OAAkB,KAAA,EAAO;AACpC,IAAA,OAAO,wCAAA,CAAyC,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,EAC/D;AAEA,EAAA,OAAO,iBAAiB,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,EAAM,CAAA,IAAK,oCAAA,CAAqC,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,IAAK,6LAA6L,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACpT;AAEO,SAAS,uBAAA,CACd,aAAA,EACA,QAAA,EACA,KAAA,EACA;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,UAAA;AAAA,QACR,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,wEAAA;AAAA,OAC9B;AAAA,IACF;AACA,IAAA,OAAO,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,EACjB;AAEA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,wEAAA;AAAA,KAC9B;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,MAAM,IAAA,EAAK;AAC9B,EAAA,IACE,CAAC,UAAA,IACD,qBAAA,CAAsB,IAAA,CAAK,UAAU,CAAA,IACpC,CAAC,gBAAA,CAAiB,IAAA,CAAK,UAAU,CAAA,IAChC,CAAC,4BAAA,CAA6B,UAAU,CAAA,EAC1C;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,4FAAA;AAAA,KAC9B;AAAA,EACF;AAEA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,uBAAuB,KAAA,EAAwB;AAC7D,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA,IAAK,SAAS,CAAA,EAAG;AAC1C,MAAA,MAAM,IAAI,UAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,OAAO,UAAU,KAAK,CAAA,iBAAA,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,MAAM,IAAA,EAAK;AAC9B,EAAA,IACE,CAAC,UAAA,IACD,qBAAA,CAAsB,KAAK,UAAU,CAAA,IACrC,cAAc,IAAA,CAAK,UAAU,CAAA,IAC7B,CAAC,sBAAsB,UAAU,CAAA,IACjC,CAAC,wBAAA,CAAyB,IAAA,CAAK,UAAU,CAAA,EACzC;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO,UAAA;AACT;AAiBA,IAAM,iBAAA,GAAmE;AAAA,EACvE,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,UAAA;AAAA,EACL,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,mBAAA,GAGF;AAAA,EACF,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,UAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,MAAA,EAAQ,cAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,sBAAA,CACd,eACA,KAAA,EACsB;AACtB,EAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,iBAAA,EAAmB,KAAK,CAAA,EAAG;AACnE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,GAAG,aAAa,CAAA,6DAAA;AAAA,KAClB;AAAA,EACF;AACA,EAAA,OAAO,kBAAkB,KAAK,CAAA;AAChC;AAEO,SAAS,wBAAA,CACd,eACA,KAAA,EACwB;AACxB,EAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,mBAAA,EAAqB,KAAK,CAAA,EAAG;AACrE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,GAAG,aAAa,CAAA,qEAAA;AAAA,KAClB;AAAA,EACF;AACA,EAAA,OAAO,oBAAoB,KAAK,CAAA;AAClC;ACv3DO,SAAS,0BAAA,CAA2B;AAAA,EACzC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAOG;AACD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,UAAU,uCAAuC,CAAA;AAAA,EAC7D;AACA,EAAA,IAAI,KAAA,KAAU,WAAc,OAAO,KAAA,KAAU,YAAY,CAAC,KAAA,CAAM,MAAK,CAAA,EAAI;AACvE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IACE,YAAA,KAAiB,WAChB,OAAO,YAAA,KAAiB,YAAY,CAAC,YAAA,CAAa,MAAK,CAAA,EACxD;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,OAAO,kBAAkB,SAAA,EAAW;AACtC,IAAA,MAAM,IAAI,UAAU,gDAAgD,CAAA;AAAA,EACtE;AACA,EAAA,IAAI,OAAO,uBAAuB,SAAA,EAAW;AAC3C,IAAA,MAAM,IAAI,UAAU,qDAAqD,CAAA;AAAA,EAC3E;AAEA,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAY;AAC/B,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,IAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,+BAA+B,KAAK,CAAA,mBAAA;AAAA,OACtC;AAAA,IACF;AACA,IAAA,IAAI,OAAO,KAAK,KAAA,KAAU,QAAA,IAAY,CAAC,IAAA,CAAK,KAAA,CAAM,MAAK,EAAG;AACxD,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,qCAAqC,KAAK,CAAA,4BAAA;AAAA,OAC5C;AAAA,IACF;AACA,IAAA,IAAI,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,+DACqB,IAAA,CAAK,SAAA,CAAU,KAAK,KAAK,CAAC,aAAa,KAAK,CAAA,CAAA;AAAA,OACnE;AAAA,IACF;AACA,IAAA,IAAI,KAAK,QAAA,KAAa,MAAA,IAAa,OAAO,IAAA,CAAK,aAAa,SAAA,EAAW;AACrE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,wCAAwC,KAAK,CAAA,mBAAA;AAAA,OAC/C;AAAA,IACF;AACA,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,EACvB,CAAC,CAAA;AACH;AAEA,SAAS,QAAQ,KAAA,EAAe;AAC9B,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,GAAG,CAAA;AAC7C;AAEA,SAAS,kBAAkB,KAAA,EAA4B;AACrD,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAAY;AAEtC,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAChC,IAAA,MAAM,eAAe,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,IAAK,QAAQ,KAAK,CAAA,CAAA;AACzD,IAAA,IAAI,QAAA,GAAW,YAAA;AAEf,IAAA,IAAI,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC/B,MAAA,QAAA,GAAW,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AACnC,MAAA,OAAO,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,EAAG;AAClC,QAAA,QAAA,GAAW,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,MACjC;AAAA,IACF;AAEA,IAAA,aAAA,CAAc,IAAI,QAAQ,CAAA;AAC1B,IAAA,OAAO,QAAA;AAAA,EACT,CAAC,CAAA;AACH;AAEO,IAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,SAASA,cAAAA,CACP;AAAA,IACE,QAAQ,EAAC;AAAA,IACT,KAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA,GAAgB,IAAA;AAAA,IAChB,kBAAA,GAAqB,IAAA;AAAA,IACrB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,EAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,0BAAA,CAA2B;AAAA,MACzB,KAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,SAAS,EAAA,IAAM,WAAA;AACrB,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,YAAY,CAAA;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA,EAAiB;AACzD,IAAA,MAAM,WAAA,GAAc,MAAA,iBAAO,IAAI,GAAA,EAAgC,CAAA;AAC/D,IAAA,MAAM,mBAAA,GAAsB,OAAO,KAAK,CAAA;AACxC,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,SAAA,GAAY,eAAe,KAAA,GAAQ,iBAAA;AACzC,IAAA,MAAM,WAAA,GAAc,kBAAkB,KAAK,CAAA;AAC3C,IAAA,MAAM,eAAe,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAS,CAAC,KAAK,QAAQ,CAAA;AAC1D,IAAA,MAAM,WAAW,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU,SAAS,CAAA;AAC9D,IAAA,MAAM,iBACJ,OAAO,cAAA,CAAe,QAAQ,QAAA,GAC1B,cAAA,CAAe,MACf,mBAAA,CAAoB,GAAA;AAE1B,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,mBAAA,CAAoB,OAAA,IAAW,YAAA,KAAiB,MAAA,EAAW;AAChE,MAAA,MAAM,cAAc,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU,YAAY,CAAA;AACpE,MAAA,IAAI,WAAA,IAAe,CAAC,WAAA,CAAY,QAAA,EAAU;AAE1C,MAAA,MAAM,YAAA,GACJ,YAAA,CAAa,IAAA,CAAK,CAAC,IAAA,KAAS,KAAK,KAAA,KAAU,SAAS,CAAA,IAAK,YAAA,CAAa,CAAC,CAAA;AACzE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,mBAAA,CAAoB,OAAA,GAAU,KAAA;AAC9B,QAAA;AAAA,MACF;AAEA,MAAA,eAAA,CAAgB,aAAa,KAAK,CAAA;AAClC,MAAA,WAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,YAAA,CAAa,KAAK,GAAG,KAAA,EAAM;AAAA,IACrD,GAAG,CAAC,YAAA,EAAc,YAAA,EAAc,KAAA,EAAO,SAAS,CAAC,CAAA;AAEjD,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAA4B;AAChD,MAAA,IAAI,KAAK,QAAA,EAAU;AAEnB,MAAA,MAAM,MAAA,GAAS,cAAc,IAAA,CAAK,KAAA;AAClC,MAAA,IAAI,MAAA,IAAU,CAAC,aAAA,EAAe;AAC5B,QAAA,aAAA,GAAgB,KAAK,KAAK,CAAA;AAC1B,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAA,GAAS,MAAA,GAAY,IAAA,CAAK,KAAA;AAChD,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,oBAAA,CAAqB,aAAa,CAAA;AAAA,MACpC;AACA,MAAA,aAAA,GAAgB,aAAa,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,MAAM,SAAA,GAAY,CAChB,KAAA,EACA,IAAA,EACA,IAAA,KACG;AACH,MAAA,IAAI,CAAC,kBAAA,IAAsB,YAAA,CAAa,MAAA,KAAW,CAAA,EAAG;AAEtD,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,UAAA,GAAa,aAAa,CAAC,CAAA;AAAA,MAC7B,CAAA,MAAA,IAAW,SAAS,MAAA,EAAQ;AAC1B,QAAA,UAAA,GAAa,YAAA,CAAa,YAAA,CAAa,MAAA,GAAS,CAAC,CAAA;AAAA,MACnD,CAAA,MAAO;AACL,QAAA,MAAM,eAAe,YAAA,CAAa,SAAA;AAAA,UAChC,CAAC,WAAA,KAAgB,WAAA,CAAY,KAAA,KAAU,IAAA,CAAK;AAAA,SAC9C;AACA,QAAA,MAAM,SAAA,GAAA,CACH,YAAA,GAAe,IAAA,GAAO,YAAA,CAAa,UAAU,YAAA,CAAa,MAAA;AAC7D,QAAA,UAAA,GAAa,aAAa,SAAS,CAAA;AAAA,MACrC;AAEA,MAAA,IAAI,CAAC,UAAA,EAAY;AACjB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,eAAA,CAAgB,WAAW,KAAK,CAAA;AAChC,MAAA,WAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,UAAA,CAAW,KAAK,GAAG,KAAA,EAAM;AAAA,IACnD,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,EACA,IAAA,KACG;AACH,MAAA,IAAI,KAAK,QAAA,EAAU;AACnB,MAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAC7B,QAAA,SAAA,CAAU,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,MAC1B,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,SAAA,EAAW;AAClC,QAAA,SAAA,CAAU,KAAA,EAAO,MAAM,EAAE,CAAA;AAAA,MAC3B,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,MAAA,EAAQ;AAC/B,QAAA,SAAA,CAAU,KAAA,EAAO,MAAM,OAAO,CAAA;AAAA,MAChC,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,KAAA,EAAO;AAC9B,QAAA,SAAA,CAAU,KAAA,EAAO,MAAM,MAAM,CAAA;AAAA,MAC/B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,iBAAiB,CAAC,MAAA,KACtB,kBAAkB,WAAA,IAClB,MAAA,CAAO,QAAQ,cAAA,KAAmB,MAAA;AAEpC,IAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAsC;AAChE,MAAA,IAAI,cAAA,CAAe,KAAA,CAAM,MAAM,CAAA,EAAG;AAChC,QAAA,mBAAA,CAAoB,OAAA,GAAU,IAAA;AAAA,MAChC;AACA,MAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,IACxB,CAAA;AAEA,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAsC;AAC/D,MAAA,IACE,cAAA,CAAe,MAAM,MAAM,CAAA,IAC3B,CAAC,cAAA,CAAe,KAAA,CAAM,aAAa,CAAA,EACnC;AACA,QAAA,mBAAA,CAAoB,OAAA,GAAU,KAAA;AAAA,MAChC;AACA,MAAA,aAAA,GAAgB,KAAK,CAAA;AAAA,IACvB,CAAA;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,cAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA,EAAK,cAAA;AAAA,QACL,wBAAA,EAAuB,WAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,WAAW,MAAA,GAAS,QAAA;AAAA,QAChC,kBAAA,EAAkB,aAAA;AAAA,QAClB,0BAAA,EAA0B,kBAAA;AAAA,QAC1B,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,aAAA,EAAe,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACpE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QACA,cAAA,EAAgB,kBAAA;AAAA,QAChB,aAAA,EAAe,iBAAA;AAAA,QAEd,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,UAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,UAAA,MAAM,SAAA,GAAY,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,QAAA,CAAA;AACrC,UAAA,MAAM,OAAA,GAAU,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,MAAA,CAAA;AACnC,UAAA,MAAM,IAAA,GAAO,KAAK,KAAA,KAAU,SAAA;AAC5B,UAAA,MAAM,KAAA,GAAQ,OAAO,MAAA,GAAS,QAAA;AAE9B,UAAA,uBACE,aAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,KAAK,IAAA,CAAK,KAAA;AAAA,cACV,GAAA,EAAK,cAAA;AAAA,cACL,wBAAA,EAAuB,WAAA;AAAA,cACvB,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,cAChC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,IAAI;AAAA,aAAA;AAAA,4BAEzD,IAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACE,GAAG,mBAAA;AAAA,gBACJ,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,kBAAA,IAAI,IAAA,EAAM;AACR,oBAAA,WAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,IAAI,CAAA;AAAA,kBAC1C,CAAA,MAAO;AACL,oBAAA,WAAA,CAAY,OAAA,CAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,kBACvC;AAAA,gBACF,CAAA;AAAA,gBACA,EAAA,EAAI,SAAA;AAAA,gBACJ,IAAA,EAAK,QAAA;AAAA,gBACL,eAAA,EAAe,IAAA;AAAA,gBACf,eAAA,EAAe,OAAA;AAAA,gBACf,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,gBAChC,UAAU,IAAA,CAAK,QAAA;AAAA,gBACf,GAAA,EAAK,cAAA;AAAA,gBACL,sBAAA,EAAsB,MAAA;AAAA,gBACtB,wBAAA,EAAuB,WAAA;AAAA,gBACvB,WAAA,EAAU,SAAA;AAAA,gBACV,YAAA,EAAY,KAAA;AAAA,gBACZ,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,gBAChC,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,gBAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBACA,OAAA,EAAS,MAAM,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAAA,gBACzC,SAAA,EAAW,CAAC,KAAA,KAAU,aAAA,CAAc,OAAO,IAAI,CAAA;AAAA,gBAC/C,OAAA,EAAS,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,gBAEhC,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,kCAC/C,GAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,aAAA,EAAY,MAAA;AAAA,sBACZ,wBAAA,EAAuB,WAAA;AAAA,sBACvB,WAAA,EAAU,cAAA;AAAA,sBACV,YAAA,EAAY,KAAA;AAAA,sBACZ,SAAA,EAAW,EAAA;AAAA,wBACT,MAAM,KAAA,CAAM,oBAAA;AAAA,wBACZ,IAAA,IAAQ,iBAAA;AAAA,wBACR,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA;AAAA,aACF;AAAA,YACC,IAAA,mBACC,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACE,GAAG,mBAAA;AAAA,gBACJ,EAAA,EAAI,OAAA;AAAA,gBACJ,IAAA,EAAK,QAAA;AAAA,gBACL,iBAAA,EAAiB,SAAA;AAAA,gBACjB,GAAA,EAAK,cAAA;AAAA,gBACL,wBAAA,EAAuB,WAAA;AAAA,gBACvB,WAAA,EAAU,OAAA;AAAA,gBACV,YAAA,EAAW,MAAA;AAAA,gBACX,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,cAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA,iBAAA,CAAkB,IAAA,CAAK,OAAO,CAAA,GAAI,KAAK,OAAA,GAAU;AAAA;AAAA,aACpD,GACE;AAAA,WACN;AAAA,QAEJ,CAAC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACtVA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAAmB;AAAA,EACvB,MAAA,EAAQ,sCAAA;AAAA,EACR,IAAA,EAAM,qCAAA;AAAA,EACN,OAAA,EAAS,qBAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEA,SAAS,eAAe,MAAA,EAA0D;AAChF,EAAA,OAAO,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,IAAU,gBAAA;AACjD;AAEA,SAAS,YAAY,IAAA,EAAe;AAClC,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,MAAM,KAAA,GAAQ,KAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,EAAQ,OAAO,MAAA;AAC1B,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,CAAA,EAAG,CAAC,EACV,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,CAAC,CAAA,EAAG,WAAA,EAAa,CAAA,CACpC,KAAK,EAAE,CAAA;AACZ;AAEO,IAAM,UAAA,GAAaC,UAAAA;AAAA,EACxB,SAASC,WAAAA,CACP;AAAA,IACE,GAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,IAAA,IAAQ,SAAS,IAAA,EAAM;AACnD,MAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AAAA,IACpE;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,QAAAA,EAAiB;AACnD,IAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,GAAA,IAAO,SAAA,KAAc,GAAG,CAAA;AACpD,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,GAAG,CAAA,IAAK,CAAC,WAAA;AACnC,IAAA,MAAM,iBAAA,GAAoB,YAAY,IAAI,CAAA;AAC1C,IAAA,MAAM,eAAe,iBAAA,CAAkB,QAAQ,CAAA,GAC3C,UAAA,GACA,kBAAkB,QAAQ,CAAA,GACxB,UAAA,GACA,iBAAA,CAAkB,iBAAiB,CAAA,GACjC,MAAA,GACA,iBAAA,CAAkB,IAAI,IACpB,MAAA,GACA,SAAA;AACV,IAAA,MAAM,WAAW,iBAAA,CAAkB,QAAQ,CAAA,GACvC,QAAA,GACA,kBAAkB,QAAQ,CAAA,GACxB,QAAA,GACA,iBAAA,CAAkB,iBAAiB,CAAA,GACjC,iBAAA,GACA,iBAAA,CAAkB,IAAI,IACpB,IAAA,GACA,GAAA;AACV,IAAA,MAAM,UAAA,GAAa,eAAe,MAAM,CAAA,GACpC,SACA,iBAAA,CAAkB,MAAM,IACtB,QAAA,GACA,MAAA;AAEN,IAAAC,UAAU,MAAM;AACd,MAAA,YAAA,CAAa,MAAS,CAAA;AAAA,IACxB,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,IAAA,uBACEC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,OAAO,KAAA,IAAS,IAAA;AAAA,QAChB,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,YAAY,OAAA,GAAU,UAAA;AAAA,QAClC,WAAA,EAAW,IAAA;AAAA,QACX,aAAA,EAAa,UAAA;AAAA,QACb,eAAA,EAAe,YAAY,MAAA,GAAY,YAAA;AAAA,QACvC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,eAAe,IAAI,CAAA;AAAA,UACnB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,SAAA,mBACCC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA,EAAK,OAAO,IAAA,IAAQ,EAAA;AAAA,cACpB,WAAA,EAAU,OAAA;AAAA,cACV,WAAA,EAAW,IAAA;AAAA,cACX,aAAA,EAAa,UAAA;AAAA,cACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,cACxD,OAAA,EAAS,MAAM,YAAA,CAAa,GAAG;AAAA;AAAA,8BAGjCA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,UAAA;AAAA,cACV,WAAA,EAAW,IAAA;AAAA,cACX,aAAA,EAAa,UAAA;AAAA,cACb,eAAA,EAAe,YAAA;AAAA,cACf,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,cAAA;AAAA,gBACZ,UAAA,EAAY,QAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAGD,cAAA,CAAe,MAAM,CAAA,mBACpBA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,WAAA,EAAU,QAAA;AAAA,cACV,WAAA,EAAW,IAAA;AAAA,cACX,aAAA,EAAa,MAAA;AAAA,cACb,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,YAAA;AAAA,gBACZ,iBAAiB,MAAM,CAAA;AAAA,gBACvB,UAAA,EAAY;AAAA;AACd;AAAA,WACF,GACE,iBAAA,CAAkB,MAAM,CAAA,mBAC1BA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,QAAA;AAAA,cACV,WAAA,EAAW,IAAA;AAAA,cACX,aAAA,EAAY,QAAA;AAAA,cACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,MAAM,CAAA;AAAA,cAEzD,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AChKA,SAAS,mBAAmB,KAAA,EAAe;AACzC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,SAAS,CAAA,EAAG;AACzC,IAAA,MAAM,IAAI,WAAW,yDAAyD,CAAA;AAAA,EAChF;AACA,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEO,IAAM,eAAA,GAAkBL,UAAAA,CAG7B,SAASM,gBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,QAAQ,EAAA,GAAK,CAAA;AAAA,EACb,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACED,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,gBAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,eAAA,EAAiB,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACtE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,WAAA,EAAa,mBAAmB,KAAK,CAAA;AAAA,QACrC,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AC5CM,IAAM,SAAA,GAAYL,UAAAA;AAAA,EACvB,SAASO,UAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IACE,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,QAAA,IACT,SAAS,OAAA,EACT;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,QAAQ,qBAAA,CAAsB;AAAA,MAClC,GAAG,kBAAA;AAAA,MACH,OAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,MAAM,gBAAgB,QAAA,IAAY,KAAA;AAClC,IAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAE7B,IAAA,uBACEH,IAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAA,EAAW,YAAA;AAAA,QACX,gBAAc,KAAA,CAAM,OAAA;AAAA,QACpB,gBAAc,KAAA,CAAM,OAAA;AAAA,QACpB,cAAY,KAAA,CAAM,KAAA;AAAA,QAClB,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,yBAAA,CAA0B,OAAO,IAAI,CAAA;AAAA,UACrC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,mBACCC,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,WAAA,EAAW,YAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,cAEpD,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,aAAA,KAAkB,MAAA,IAAa,aAAA,KAAkB,IAAA,mBAChDA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,WAAA,EAAW,YAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,cAEtD,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC1FA,SAAS,aAAA,CAAc,IAAA,EAA0B,KAAA,EAAe,MAAA,EAAgB;AAC9E,EAAA,OAAO,IAAA,CAAK,OAAA,IAAW,KAAA,KAAU,MAAA,GAAS,CAAA;AAC5C;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,QAAQ,EAAC;AAAA,EACT,SAAA,GAAY,GAAA;AAAA,EACZ,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAE9C,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,EACA,IAAA,EACA,KAAA,KACG;AACH,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,GAAW,MAAM,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,eAAA;AAAA,MACJ,YAAA,EAAY,eAAA,CAAgB,YAAY,CAAA,IAAK,YAAA;AAAA,MAC7C,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACrE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,IAAI,CAAA,EAC3D,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AAC1B,QAAA,MAAM,OAAA,GAAU,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,MAAM,MAAM,CAAA;AACvD,QAAA,uBACED,IAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,IAAI,CAAA;AAAA,YAEzD,QAAA,EAAA;AAAA,cAAA,OAAA,mBACCC,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,cAAA,EAAa,MAAA;AAAA,kBACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,YAAY,OAAO,CAAA;AAAA,kBAE/D,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR,GACE,IAAA,CAAK,IAAA,mBACPA,GAAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,kBAChC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,IAAI,CAAA;AAAA,kBAC1D,SAAS,CAAC,KAAA,KAAU,WAAA,CAAY,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,kBAEjD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,kCAGRA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,UAAU,IAAA,CAAK,QAAA;AAAA,kBACf,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,cAAA;AAAA,oBACZ,oBAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,SAAS,CAAC,KAAA,KAAU,WAAA,CAAY,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,kBAEjD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,cAED,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,mBACtBA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAY,MAAA;AAAA,kBACZ,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,mBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE;AAAA;AAAA,WAAA;AAAA,UA3CC,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAA,CAAK,KAAA,IAAS,KAAK,IAAA,IAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,SA4ChE;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA;AAAA,GACF;AAEJ;ACrFA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,kBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,sBAAA,GAAyB;AAAA,EAC7B,EAAA,EAAI,cAAA;AAAA,EACJ,EAAA,EAAI,cAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,SAAS,aAAa,KAAA,EAA2B;AAC/C,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,KAAS,KAAA,GAAQ,MAAA;AAC7D;AAEA,SAAS,WAAA,GAAc;AACrB,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,mEAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,SAAA,EAAU,YAAA;AAAA,YACV,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY;AAAA;AAAA,SACd;AAAA,wBACAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,YAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,UAAA,GAAaL,UAAAA;AAAA,EACxB,SAASQ,WAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,KAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,eAAA,GAAkB,KAAA;AAAA,IAClB,UAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA,EAAc,eAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,MAC1B,CAAC,UAAU,MAAM,CAAA;AAAA,MACjB,CAAC,YAAY,QAAQ,CAAA;AAAA,MACrB,CAAC,YAAY,QAAQ,CAAA;AAAA,MACrB,CAAC,WAAW,OAAO,CAAA;AAAA,MACnB,CAAC,mBAAmB,eAAe;AAAA,KACrC,EAAY;AACV,MAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,WAAA,EAAc,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC7D;AAAA,IACF;AACA,IAAA,IAAI,SAAS,MAAA,IAAa,IAAA,KAAS,QAAQ,IAAA,KAAS,IAAA,IAAQ,SAAS,IAAA,EAAM;AACzE,MAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AAAA,IACpE;AACA,IAAA,IACE,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,QAAA,IACT,SAAS,OAAA,EACT;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,QAAQ,qBAAA,CAAsB;AAAA,MAClC,GAAG,kBAAA;AAAA,MACH,OAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,MAAM,gBAAgB,QAAA,IAAY,KAAA;AAClC,IAAA,MAAM,QAAA,GACJ,iBAAA,CAAkB,aAAa,CAAA,KAC9B,OAAO,kBAAkB,QAAA,IAAY,OAAA,CAAQ,aAAA,CAAc,IAAA,EAAM,CAAA,CAAA;AACpE,IAAA,MAAM,iBAAA,GACJ,YAAA,CAAa,SAAS,CAAA,IAAK,aAAa,eAAe,CAAA;AACzD,IAAA,MAAM,YACJ,OAAO,aAAA,KAAkB,QAAA,GACrB,YAAA,CAAa,aAAa,CAAA,GAC1B,MAAA;AACN,IAAA,MAAM,aAAA,GAAgB,aAAa,KAAK,CAAA;AACxC,IAAA,IAAI,YAAY,CAAC,QAAA,IAAY,CAAC,iBAAA,IAAqB,CAAC,aAAA,EAAe;AACjE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,MAAM,iBAAA,GACJ,qBACA,SAAA,IACA,aAAA;AACF,IAAA,MAAM,mBAAmB,QAAA,IAAY,OAAA;AACrC,IAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,IAAA,MAAM,gBAAgB,KAAA,KAAU,OAAA,GAC5B,YACA,QAAA,GACE,UAAA,GACA,SACE,QAAA,GACA,MAAA,CAAA;AAER,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,MACxB;AACA,MAAA,IAAI,gBAAA,EAAkB;AACtB,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,uBACEJ,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA,EAAY,iBAAA;AAAA,QACZ,gBAAc,MAAA,IAAU,MAAA;AAAA,QACxB,aAAW,OAAA,IAAW,MAAA;AAAA,QACtB,gBAAc,KAAA,CAAM,OAAA;AAAA,QACpB,gBAAc,KAAA,CAAM,OAAA;AAAA,QACpB,QAAA,EAAU,gBAAA;AAAA,QACV,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,aAAA;AAAA,QACZ,WAAA,EAAW,YAAA;AAAA,QACX,WAAA,EAAW,IAAA;AAAA,QACX,eAAa,MAAA,IAAU,MAAA;AAAA,QACvB,gBAAc,OAAA,IAAW,MAAA;AAAA,QACzB,iBAAe,gBAAA,IAAoB,MAAA;AAAA,QACnC,kBAAgB,QAAA,IAAY,MAAA;AAAA,QAC5B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,QAAA,IAAY,MAAM,KAAA,CAAM,cAAA;AAAA,UACxB,IAAA,IAAQ,qBAAqB,IAAI,CAAA;AAAA,UACjC,QAAA,IAAY,IAAA,IAAQ,sBAAA,CAAuB,IAAI,CAAA;AAAA,UAC/C,0BAAA,CAA2B,KAAA,EAAO,IAAA,EAAM,MAAM,CAAA;AAAA,UAC9C,gBAAA,IAAoB,MAAM,KAAA,CAAM,cAAA;AAAA,UAChC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,UAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,YAAA,GAAe,MAAA;AAAA,UACzC,GAAI,gBAAA,GAAmB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UACrD,GAAG;AAAA,SACL;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QAER,QAAA,EAAA;AAAA,UAAA,OAAA,mBACCC,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAY,aAAA;AAAA,cACZ,WAAA,EAAW,YAAA;AAAA,cACX,WAAA,EAAW,IAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,UAAA;AAAA,gBACZ,IAAA,IAAQ,mBAAmB,IAAI,CAAA;AAAA,gBAC/B,UAAA,EAAY;AAAA,eACd;AAAA,cAEA,QAAA,kBAAAA,IAAC,WAAA,EAAA,EAAY;AAAA;AAAA,WACf,GACE,uBACFA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAY,aAAA;AAAA,cACZ,WAAA,EAAW,YAAA;AAAA,cACX,WAAA,EAAW,IAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,UAAA;AAAA,gBACZ,IAAA,IAAQ,mBAAmB,IAAI,CAAA;AAAA,gBAC/B,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,QAAA,GACC,iBAAA,CAAkB,aAAa,CAAA,mBAC7BA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAY,aAAA;AAAA,cACZ,WAAA,EAAW,YAAA;AAAA,cACX,WAAA,EAAW,IAAA;AAAA,cACX,SAAA,EAAU,SAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA,GACF,iBAAA,CAAkB,aAAa,oBACjCA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAY,aAAA;AAAA,cACZ,WAAA,EAAW,YAAA;AAAA,cACX,WAAA,EAAW,IAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,cAEvD,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,CAAC,OAAA,IAAW,OAAA,mBACXA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,UAAA;AAAA,cACV,YAAA,EAAY,aAAA;AAAA,cACZ,WAAA,EAAW,YAAA;AAAA,cACX,WAAA,EAAW,IAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,UAAA;AAAA,gBACZ,IAAA,IAAQ,mBAAmB,IAAI,CAAA;AAAA,gBAC/B,UAAA,EAAY,IAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC1QO,SAAS,iCAAiC,MAAA,EAAiB;AAChE,EAAA,IAAI,MAAA,KAAW,MAAM,OAAO,IAAA;AAC5B,EAAA,IAAI,OAAO,WAAW,QAAA,IAAY,MAAA,CAAO,MAAK,CAAE,MAAA,GAAS,GAAG,OAAO,MAAA;AACnE,EAAA,MAAM,IAAI,SAAA;AAAA,IACR;AAAA,GACF;AACF;AASO,IAAM,gBAAA,GAAmBI,aAAAA;AAAA,EAC9B;AACF,CAAA;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,MAAM,OAAA,GAAUC,WAAW,gBAAgB,CAAA;AAC3C,EAAA,MAAM,aAAA,GAAgBC,OAAsB,IAAI,CAAA;AAChD,EAAA,IAAI,aAAA,CAAc,YAAY,IAAA,EAAM;AAClC,IAAA,aAAA,CAAc,OAAA,0BAAiB,kBAAkB,CAAA;AAAA,EACnD;AAEA,EAAA,MAAM,kBAAkB,OAAA,EAAS,eAAA;AACjC,EAAAR,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,eAAA,IAAmB,aAAA,CAAc,OAAA,KAAY,MAAM,OAAO,MAAA;AAC/D,IAAA,OAAO,eAAA,CAAgB,cAAc,OAAO,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,eAAe,CAAC,CAAA;AAEpB,EAAA,MAAM,aAAa,OAAA,EAAS,UAAA;AAC5B,EAAA,MAAM,eAAe,OAAA,EAAS,YAAA;AAE9B,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,SAAS,OAAA,IAAW,KAAA;AAAA,IAC7B,UAAA,EAAY,WAAA;AAAA,MACV,CAAC,KAAA,KAAiC,UAAA,GAAa,KAAK,CAAA;AAAA,MACpD,CAAC,UAAU;AAAA,KACb;AAAA,IACA,YAAA,EAAc,WAAA;AAAA,MACZ,CAAC,KAAA,KAAiC,YAAA,GAAe,KAAK,CAAA;AAAA,MACtD,CAAC,YAAY;AAAA;AACf,GACF;AACF;ACrCA,IAAM,iBAAA,GAAoB;AAAA,EACxB,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,uBAAA,GAA0B;AAAA,EAC9B,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,SAAS,OAAA,CACP,YACG,IAAA,EACH;AACA,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,MAAA,GAAA,CAAI,OAAO,CAAA;AACX,MAAA;AAAA,IACF;AACA,IAAC,IAAqC,OAAA,GAAU,OAAA;AAAA,EAClD;AACF;AAEO,IAAM,YAAA,GAAeH,UAAAA;AAAA,EAC1B,SAASY,aAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA,GAAgB,KAAA;AAAA,IAChB,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,KAEL,YAAA,EACA;AACA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,MAC1B,CAAC,iBAAiB,aAAa,CAAA;AAAA,MAC/B,CAAC,WAAW,OAAO,CAAA;AAAA,MACnB,CAAC,YAAY,QAAQ;AAAA,KACvB,EAAY;AACV,MAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,aAAA,EAAgB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC/D;AAAA,IACF;AACA,IAAA,IACE,gBAAgB,MAAA,IAChB,WAAA,KAAgB,QAChB,WAAA,KAAgB,IAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,eAAe,mBAAA,EAAoB;AACzC,IAAA,MAAM,eAAA,GAAkB,WAAW,YAAA,CAAa,OAAA;AAChD,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,0BAA0B,WAAW,CAAA;AAC5D,IAAA,MAAM,QAAA,GAAWD,OAAgC,IAAI,CAAA;AACrD,IAAA,MAAM,gBAAA,GAAmBA,OAAO,aAAa,CAAA;AAC7C,IAAA,gBAAA,CAAiB,OAAA,GAAU,aAAA;AAC3B,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIT,QAAAA;AAAA,MACpD,cAAA,IAAkB;AAAA,KACpB;AACA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,YAAA,GAAe,OAAA,GAAU,mBAAmB,CAAA;AAC5E,IAAA,MAAM,SAAS,aAAA,IAAiB,eAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,aAAA,GACV,OAAA,GACA,eAAA,GACE,SAAA,GACA,WAAA;AAEN,IAAA,MAAM,WAAA,GAAcW,WAAAA;AAAA,MAClB,CAAC,OAAA,KAAqC;AACpC,QAAA,QAAA,CAAS,OAAA,GAAU,OAAA;AACnB,QAAA,IAAI,OAAA,EAAS,OAAA,CAAQ,aAAA,GAAgB,gBAAA,CAAiB,OAAA;AACtD,QAAA,OAAA,CAAQ,SAAS,YAAY,CAAA;AAAA,MAC/B,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAAV,UAAU,MAAM;AACd,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,QAAA,CAAS,QAAQ,aAAA,GAAgB,aAAA;AAAA,MACnC;AAAA,IACF,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,cAAc,OAAO,CAAA;AAAA,MACpD;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAChB,MAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,aAAA,CAAc,OAAO,CAAA;AACrD,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,QAAA,CAAS,QAAQ,aAAA,GAAgB,aAAA;AAAA,MACnC;AAAA,IACF,CAAA;AAEA,IAAA,uBACEC,IAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,wBAAA,EAAuB,UAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,WAAA,EAAW,WAAA;AAAA,QACX,gBAAc,eAAA,IAAmB,MAAA;AAAA,QACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,YAAA;AAAA,UACZ,CAAC,cAAA,IAAkB,cAAA;AAAA,UACnB,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,KAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,WAAA,EAAW,WAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,CAAC,cAAA,IAAkB,MAAA;AAAA,gBACnB,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,gBACtB,eAAA,IAAmB,MAAM,KAAA,CAAM,kBAAA;AAAA,gBAC/B,WAAA,IAAe,kBAAkB,WAAW,CAAA;AAAA,gBAC5C,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,GAAG,MAAM,MAAA,CAAO;AAAA,eAClB;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAC,GAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,aAAA;AAAA,oBACJ,GAAA,EAAK,WAAA;AAAA,oBACL,IAAA,EAAK,UAAA;AAAA,oBACL,QAAA;AAAA,oBACA,OAAA;AAAA,oBACA,cAAA;AAAA,oBACA,cAAA,EAAc,sBAAsB,eAAA,IAAmB,MAAA,CAAA;AAAA,oBACvD,cAAA,EAAc,gBAAgB,OAAA,GAAU,eAAA;AAAA,oBACxC,WAAA,EAAU,OAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,WAAA,EAAW,WAAA;AAAA,oBACX,gBAAc,eAAA,IAAmB,MAAA;AAAA,oBACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,oBAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,oBAC1D,MAAA,EAAQ,CAAC,KAAA,KAAU;AACjB,sBAAA,MAAA,GAAS,KAAK,CAAA;AACd,sBAAA,YAAA,CAAa,UAAA,CAAW,KAAA,CAAM,aAAA,CAAc,OAAO,CAAA;AAAA,oBACrD,CAAA;AAAA,oBACA,QAAA,EAAU;AAAA;AAAA,iBACZ;AAAA,gBACC,yBACCA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,aAAA,EAAY,MAAA;AAAA,oBACZ,WAAA,EAAU,WAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,WAAA,EAAW,WAAA;AAAA,oBACX,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,iBAAA;AAAA,sBACZ,WAAA,IAAe,wBAAwB,WAAW,CAAA;AAAA,sBAClD,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,0BAAgB,QAAA,GAAM;AAAA;AAAA,iBACzB,GACE;AAAA;AAAA;AAAA,WACN;AAAA,UACC,QAAA,IAAY,iCACXD,IAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,eAAA,EAAiB,YAAY,OAAO,CAAA;AAAA,cAE7D,QAAA,EAAA;AAAA,gBAAA,QAAA,mBACCC,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,OAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,oBAEzD,QAAA,EAAA;AAAA;AAAA,iBACH,GACE,IAAA;AAAA,gBACH,iCACCA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,aAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,mBAAA;AAAA,sBACZ,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA,WACN,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACrOO,IAAM,QAAA,GAAWL,UAAAA,CAAuC,SAASc,SAAAA,CACtE;AAAA,EACE,QAAA;AAAA,EACA,OAAA,GAAU,QAAA;AAAA,EACV,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,IAAI,YAAY,OAAA,EAAS;AACvB,IAAA,uBACET,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,MAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,cAAA,EAAa,OAAA;AAAA,QACb,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,SAAA,EAAW,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAChE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,MAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,IAAI,CAAA;AAAA,YACvD,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,YAEnB;AAAA;AAAA;AACH;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,MAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,cAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,UAAA;AAAA,QACZ,MAAM,KAAA,CAAM,WAAA;AAAA,QACZ,UAAA,EAAY,IAAA;AAAA,QACZ,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,QAChB,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AC/DM,IAAM,aAAA,GAAgBL,UAAAA;AAAA,EAC3B,SAASe,cAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,QAAA,GAAW,OAAA;AAAA,IACX,OAAA,GAAU,MAAA;AAAA,IACV,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,gBAAA,GAAmB,uBAAA;AAAA,MACvB,eAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,eAAA,GAAkB,uBAAA;AAAA,MACtB,eAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACEV,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,cAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,WAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,aAAA,EAAe,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACpE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,UAChB,QAAA,EAAU,gBAAA;AAAA,UACV,aAAA,EAAe,eAAA;AAAA,UACf,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACnDA,SAAS,qBAAA,CACP,OACA,MAAA,EACgB;AAChB,EAAA,MAAM,SAAA,GAAY,OAAO,KAAA,KAAU,UAAA,GAAa,OAAM,GAAI,KAAA;AAC1D,EAAA,IAAI,SAAA,KAAc,MAAM,OAAO,IAAA;AAC/B,EAAA,IACE,CAAC,SAAA,IACD,OAAO,cAAc,QAAA,IACrB,SAAA,CAAU,aAAa,CAAA,EACvB;AACA,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,EAAG,MAAM,CAAA,oCAAA,CAAsC,CAAA;AAAA,EACrE;AACA,EAAA,OAAO,SAAA;AACT;AAUO,SAAS,0BAAA,CAA2B;AAAA,EACzC,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,EAAsD;AACpD,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,OAAO,qBAAA;AAAA,MACL,iBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,OAAO,qBAAA;AAAA,MACL,iBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AAEzB,EAAA,MAAM,gBAAgB,WAAA,EAAY;AAClC,EAAA,IAAI,aAAA,KAAkB,MAAM,OAAO,IAAA;AACnC,EAAA,IACE,CAAC,aAAA,IACD,OAAO,kBAAkB,QAAA,IACzB,EAAE,UAAU,aAAA,CAAA,EACZ;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,qBAAA;AAAA,IACL,aAAA,CAAc,IAAA;AAAA,IACd;AAAA,GACF;AACF;AAEO,SAAS,WAAW,KAAA,EAAwB;AACjD,EAAA,MAAM,cAAc,qBAAA,EAAsB;AAC1C,EAAA,MAAM,gBAAgB,uBAAA,EAAwB;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIH,SAAS,KAAK,CAAA;AAE5C,EAAAC,UAAU,MAAM;AACd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,MAAM,QAAA,KAAa,MAAA,IAAa,OAAO,KAAA,CAAM,aAAa,SAAA,EAAW;AACvE,IAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,EAC9D;AACA,EAAA,IAAI,MAAM,MAAA,KAAW,MAAA,IAAa,OAAO,KAAA,CAAM,WAAW,SAAA,EAAW;AACnE,IAAA,MAAM,IAAI,UAAU,sCAAsC,CAAA;AAAA,EAC5D;AAEA,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,IAAY,aAAA,CAAc,QAAA,IAAY,KAAA;AAC7D,EAAA,IAAI,CAAC,OAAA,IAAW,QAAA,IAAY,KAAA,CAAM,MAAA,EAAQ;AACxC,IAAA,uBAAOE,GAAAA,CAAA,QAAA,EAAA,EAAG,QAAA,EAAA,KAAA,CAAM,QAAA,EAAS,CAAA;AAAA,EAC3B;AAEA,EAAA,MAAM,YAAY,0BAAA,CAA2B;AAAA,IAC3C,gBAAA,EAAkB,MAAM,SAAA,KAAc,MAAA;AAAA,IACtC,mBAAmB,KAAA,CAAM,SAAA;AAAA,IACzB,gBAAA,EAAkB,cAAc,SAAA,KAAc,MAAA;AAAA,IAC9C,mBAAmB,aAAA,CAAc,SAAA;AAAA,IACjC,aAAa,WAAA,CAAY;AAAA,GAC1B,CAAA;AAED,EAAA,OAAO,SAAA,GACH,YAAA,CAAa,KAAA,CAAM,QAAA,EAAU,SAAS,oBACtCA,GAAAA,CAAA,QAAA,EAAA,EAAG,QAAA,EAAA,KAAA,CAAM,QAAA,EAAS,CAAA;AACxB;AChEO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,OAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,EAAiE;AAC/D,EAAA,MAAM,QAAA,GAAW,oBAAoB,gBAAA,IAAoB,KAAA;AACzD,EAAA,IAAI,CAAC,WAAW,QAAA,EAAU;AACxB,IAAA,OAAO;AAAA,MACL,OAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAc,KAAA;AAAA,MACd,SAAA,EAAW,IAAA;AAAA,MACX,gBAAA,EAAkB;AAAA,KACpB;AAAA,EACF;AAEA,EAAA,MAAM,YAAY,0BAAA,CAA2B;AAAA,IAC3C,kBAAkB,iBAAA,KAAsB,MAAA;AAAA,IACxC,iBAAA;AAAA,IACA,kBAAkB,iBAAA,KAAsB,MAAA;AAAA,IACxC,iBAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc,KAAA;AAAA,MACd,SAAA,EAAW,IAAA;AAAA,MACX,gBAAA,EAAkB;AAAA,KACpB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,QAAA,EAAU,KAAA;AAAA,IACV,YAAA,EAAc,IAAA;AAAA,IACd,SAAA;AAAA,IACA,gBAAA,EAAkB,MAAA,CAAO,MAAA,CAAO,EAAE,WAAW;AAAA,GAC/C;AACF;AAOA,SAAS,kBAAA,GAAsC;AAC7C,EAAA,OAAO,WAAW,QAAA,IAAY,IAAA;AAChC;AAEO,SAAS,oBAAA,CACd,OAAA,GAAuC,EAAC,EAChB;AACxB,EAAA,MAAM,cAAc,qBAAA,EAAsB;AAC1C,EAAA,MAAM,gBAAgB,uBAAA,EAAwB;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIH,SAAS,KAAK,CAAA;AAE5C,EAAAC,UAAU,MAAM;AACd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,6BAAA,CAA8B;AAAA,IACnC,OAAA;AAAA,IACA,kBAAkB,OAAA,CAAQ,QAAA;AAAA,IAC1B,mBAAmB,OAAA,CAAQ,SAAA;AAAA,IAC3B,kBAAkB,aAAA,CAAc,QAAA;AAAA,IAChC,mBAAmB,aAAA,CAAc,SAAA;AAAA,IACjC,WAAA,EAAa,YAAY,WAAA,IAAe;AAAA,GACzC,CAAA;AACH;ACnFA,IAAM,gBAAA,GAAmB;AAAA,EACvB,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,eAAA,CAAgB,OAAgB,IAAA,EAAc;AACrD,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EAClE;AACF;AAEA,SAAS,aAAa,KAAA,EAAgB;AACpC,EAAA,IACE,KAAA,KAAU,MAAA,IACV,CAAC,gBAAA,CAAiB,QAAA;AAAA,IAChB;AAAA,GACF,EACA;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,KAAA,EAAgB;AACzC,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,KAAA,IAAS,UAAU,KAAA,EAAO;AAC7D,IAAA,MAAM,IAAI,UAAU,6CAA6C,CAAA;AAAA,EACnE;AACF;AAEA,SAAS,SAAA,GAAY;AACnB,EAAA,uBACEE,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,WAAA,EAAY,GAAA;AAAA,MAEZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B;AAAA;AAAA,GACvC;AAEJ;AAEA,SAAS,OAAA,GAAU;AACjB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,cAAA;AAAA,MAEL,QAAA,kBAAAA,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI;AAAA;AAAA,GAC9B;AAEJ;AAEA,SAAS,gBAAA,GAAmB;AAC1B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,WAAA,EAAY,GAAA;AAAA,MAEZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA,GACzB;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,gBAAgB,QAAA,IAAY,KAAA;AAElC,EAAA,uBACED,IAAAA,CAAAY,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,SAAA,GAAY,SAAA,GAAY,IAAA;AAAA,IACxB,kBAAkB,IAAI,CAAA,mBACrBX,GAAAA,CAAC,UAAK,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,EAAA,CAAG,YAAY,IAAI,CAAA,EAClD,QAAA,EAAA,IAAA,EACH,CAAA,GACE,wBACFA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAU;AAAA;AAAA,KACZ,GACE,IAAA;AAAA,IACH,iBAAA,CAAkB,aAAa,CAAA,mBAC9BA,IAAC,MAAA,EAAA,EAAK,WAAA,EAAU,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,KAAK,CAAA,EACpD,yBACH,CAAA,GACE,IAAA;AAAA,IACH,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,IAAC,MAAA,EAAA,EAAK,WAAA,EAAU,UAAA,EAAW,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,QAAQ,CAAA,EAC1D,oBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAEO,SAAS,eAAA,CAAgB;AAAA,EAC9B,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,IAAA;AAAA,EACR,GAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,eAAA,CAAgB,UAAU,UAAU,CAAA;AACpC,EAAA,eAAA,CAAgB,OAAO,OAAO,CAAA;AAC9B,EAAA,iBAAA,CAAkB,GAAG,CAAA;AACrB,EAAA,MAAM,qBAAqB,mBAAA,EAAoB;AAC/C,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAE9D,EAAA,uBACED,IAAAA;AAAA,IAAa,WAAA,CAAA,IAAA;AAAA,IAAZ;AAAA,MACC,YAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAK,GAAA,IAAO,kBAAA;AAAA,MAEX,QAAA,EAAA;AAAA,QAAA,OAAA,mBACCC,GAAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,QAAA;AAAA,YACA,UAAA,EAAY,kBAAA;AAAA,YACZ,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,OAAA,EAAS,SAAS,CAAA;AAAA,YAE3C,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,0BACCA,GAAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAY,kBAAA;AAAA,YACZ,WAAW,UAAA,EAAY,OAAA;AAAA,YAEtB,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH;AAAA;AAAA;AAAA,GACH;AAEJ;AAEO,IAAM,sBAAA,GAAyBL,UAAAA,CAGpC,SAASiB,uBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,UAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,eAAA,CAAgB,UAAU,kBAAkB,CAAA;AAC5C,EAAA,eAAA,CAAgB,SAAS,iBAAiB,CAAA;AAC1C,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEZ,GAAAA;AAAA,IAAa,WAAA,CAAA,OAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,YAAA;AAAA,MACJ,GAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,SAAA;AAAA,MACV,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,CAAC,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,WAAA;AAAA,QACxB,QAAA,IAAY,CAAC,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,gBAAA;AAAA,QACpC;AAAA,OACF;AAAA,MACA,KAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,sBAAA,GAAyBL,UAAAA,CAGpC,SAASkB,uBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,SAAS,oBAAA,EAAqB;AACpC,EAAA,MAAM,0BACJb,GAAAA;AAAA,IAAa,WAAA,CAAA,OAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,YAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,SAAA;AAAA,MACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,WAAA,EAAa,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MAClE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAGF,EAAA,OAAO,MAAA,CAAO,YAAA,mBACZA,GAAAA,CAAa,WAAA,CAAA,MAAA,EAAZ,EAAoB,GAAG,MAAA,CAAO,gBAAA,EAC5B,QAAA,EAAA,OAAA,EACH,CAAA,GACE,OAAA;AACN,CAAC;AAEM,IAAM,oBAAA,GAAuBL,UAAAA,CAGlC,SAASmB,qBAAAA,CACT,EAAE,QAAA,EAAU,UAAA,EAAY,SAAA,EAAW,KAAA,EAAO,GAAG,UAAA,EAAW,EACxD,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEd,GAAAA;AAAA,IAAa,WAAA,CAAA,KAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAW,SAAS,CAAA;AAAA,MAC9C,KAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,wBAAA,GAA2BL,UAAAA,CAGtC,SAASoB,yBAAAA,CACT,EAAE,UAAA,EAAY,SAAA,EAAW,KAAA,EAAO,GAAG,cAAA,EAAe,EAClD,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEf,GAAAA;AAAA,IAAa,WAAA,CAAA,SAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,cAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,eAAe,SAAS,CAAA;AAAA,MAClD;AAAA;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,mBAAA,GAAsBL,UAAAA,CAGjC,SAASqB,oBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,KAAA;AAAA,EACR,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,eAAA,CAAgB,UAAU,eAAe,CAAA;AACzC,EAAA,eAAA,CAAgB,OAAO,YAAY,CAAA;AACnC,EAAA,YAAA,CAAa,IAAI,CAAA;AACjB,EAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEhB,GAAAA;AAAA,IAAa,WAAA,CAAA,IAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,WAAA,EAAW,YAAA;AAAA,MACX,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,QAAA;AAAA,QACZ,4BAAA,CAA6B,OAAO,IAAI,CAAA;AAAA,QACxC,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA;AAAA,QACF;AACA,QAAA,QAAA,GAAW,KAAK,CAAA;AAAA,MAClB,CAAA;AAAA,MAEC,QAAA,EAAA,iBAAA,CAAkB;AAAA,QACjB,QAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAM,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,IAAI,CAAA;AAAA,UACnD,OAAO,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,UACtD,UAAU,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,QAAQ;AAAA;AACjE,OACD;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,2BAAA,GAA8BL,UAAAA,CAGzC,SAASsB,4BAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,eAAA,CAAgB,UAAU,uBAAuB,CAAA;AACjD,EAAA,eAAA,CAAgB,OAAO,oBAAoB,CAAA;AAC3C,EAAA,YAAA,CAAa,IAAI,CAAA;AACjB,EAAA,IACE,YAAY,MAAA,IACZ,OAAA,KAAY,eAAA,IACZ,OAAO,YAAY,SAAA,EACnB;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEjB,GAAAA;AAAA,IAAa,WAAA,CAAA,YAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,eAAA;AAAA,MACV,WAAA,EAAW,YAAA;AAAA,MACX,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,cAAA,EACE,YAAY,eAAA,GACR,OAAA,GACA,YAAY,MAAA,GACV,MAAA,GACA,OAAO,OAAO,CAAA;AAAA,MAEtB,eAAA,EAAiB,CAAC,WAAA,KAAgB;AAChC,QAAA,IAAI,QAAA,EAAU;AACd,QAAA,eAAA,GAAkB,WAAW,CAAA;AAAA,MAC/B,CAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,QAAA;AAAA,QACZ,MAAA;AAAA,QACA,4BAAA,CAA6B,OAAO,IAAI,CAAA;AAAA,QACxC,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA;AAAA,QACF;AACA,QAAA,QAAA,GAAW,KAAK,CAAA;AAAA,MAClB,CAAA;AAAA,MAEC,QAAA,EAAA,iBAAA,CAAkB;AAAA,QACjB,QAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAM,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,IAAI,CAAA;AAAA,UACnD,OAAO,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,UACtD,UAAU,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,QAAQ;AAAA,SACjE;AAAA,QACA,2BACEA,GAAAA;AAAA,UAAa,WAAA,CAAA,aAAA;AAAA,UAAZ;AAAA,YACC,WAAA,EAAU,WAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,qBAAA,EAAuB,YAAY,SAAS,CAAA;AAAA,YAEtE,QAAA,kBAAAA,IAAC,SAAA,EAAA,EAAU;AAAA;AAAA;AACb,OAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,SAAS,yBAAA,CAA0B;AAAA,EACxC,QAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAmC;AACjC,EAAA,uBACEA,GAAAA,CAAa,WAAA,CAAA,UAAA,EAAZ,EAAuB,KAAA,EAAc,eACnC,QAAA,EACH,CAAA;AAEJ;AAEO,IAAM,wBAAA,GAA2BL,UAAAA,CAGtC,SAASuB,yBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,eAAA,CAAgB,UAAU,oBAAoB,CAAA;AAC9C,EAAA,eAAA,CAAgB,OAAO,iBAAiB,CAAA;AACxC,EAAA,YAAA,CAAa,IAAI,CAAA;AACjB,EAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACElB,GAAAA;AAAA,IAAa,WAAA,CAAA,SAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,YAAA;AAAA,MACV,WAAA,EAAW,YAAA;AAAA,MACX,YAAA,EAAY,KAAA;AAAA,MACZ,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,QAAA;AAAA,QACZ,MAAA;AAAA,QACA,4BAAA,CAA6B,OAAO,IAAI,CAAA;AAAA,QACxC,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA;AAAA,QACF;AACA,QAAA,QAAA,GAAW,KAAK,CAAA;AAAA,MAClB,CAAA;AAAA,MAEC,QAAA,EAAA,iBAAA,CAAkB;AAAA,QACjB,QAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAM,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,IAAI,CAAA;AAAA,UACnD,OAAO,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,UACtD,UAAU,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,QAAQ;AAAA,SACjE;AAAA,QACA,2BACEA,GAAAA;AAAA,UAAa,WAAA,CAAA,aAAA;AAAA,UAAZ;AAAA,YACC,WAAA,EAAU,WAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,kBAAA,EAAoB,YAAY,SAAS,CAAA;AAAA,YAEnE,QAAA,kBAAAA,IAAC,OAAA,EAAA,EAAQ;AAAA;AAAA;AACX,OAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,SAAS,kBAAA,CAAmB;AAAA,EACjC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,IAAI,IAAA,KAAS,MAAA,EAAW,eAAA,CAAgB,IAAA,EAAM,UAAU,CAAA;AACxD,EAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,IAAA,eAAA,CAAgB,aAAa,iBAAiB,CAAA;AAAA,EAChD;AACA,EAAA,uBACEA,GAAAA;AAAA,IAAa,WAAA,CAAA,GAAA;AAAA,IAAZ;AAAA,MACC,IAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEO,IAAM,yBAAA,GAA4BL,UAAAA,CAGvC,SAASwB,0BAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,KAAA;AAAA,EACR,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,eAAA,CAAgB,UAAU,qBAAqB,CAAA;AAC/C,EAAA,eAAA,CAAgB,OAAO,kBAAkB,CAAA;AACzC,EAAA,YAAA,CAAa,IAAI,CAAA;AACjB,EAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,gBAAgB,QAAA,IAAY,KAAA;AAElC,EAAA,uBACEpB,IAAAA;AAAA,IAAa,WAAA,CAAA,UAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,QAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,aAAA;AAAA,MACV,WAAA,EAAW,YAAA;AAAA,MACX,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,4BAAA,CAA6B,OAAO,IAAI,CAAA;AAAA,QACxC,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,IAAI,oBACrBC,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,MAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,IAAI,CAAA;AAAA,YAEvD,QAAA,EAAA;AAAA;AAAA,SACH,GACE,wBACFA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,WAAA,EAAU,MAAA;AAAA,YACV,SAAA,EAAU;AAAA;AAAA,SACZ,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,aAAa,CAAA,mBAC9BA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,OAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,YAEzD,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,wBACJA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,eAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,kBAAA;AAAA,cACZ,UAAA,EAAY,QAAA;AAAA,cACZ;AAAA,aACF;AAAA,YAEA,QAAA,kBAAAA,IAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA;AACpB;AAAA;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,yBAAA,GAA4BL,UAAAA,CAGvC,SAASyB,0BAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA,GAAa,CAAA;AAAA,EACb,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,SAAS,oBAAA,EAAqB;AACpC,EAAA,MAAM,0BACJpB,GAAAA;AAAA,IAAa,WAAA,CAAA,UAAA;AAAA,IAAZ;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,eAAA;AAAA,MACJ,GAAA;AAAA,MACA,UAAA;AAAA,MACA,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,aAAA;AAAA,MACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACrE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAGF,EAAA,OAAO,MAAA,CAAO,YAAA,mBACZA,GAAAA,CAAa,WAAA,CAAA,MAAA,EAAZ,EAAoB,GAAG,MAAA,CAAO,gBAAA,EAC5B,QAAA,EAAA,OAAA,EACH,CAAA,GACE,OAAA;AACN,CAAC;ACvvBD,IAAM,gBAAA,GAAmB;AAAA,EACvB,CAAA,EAAG,aAAA;AAAA,EACH,CAAA,EAAG,gBAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA;AAAA,EACA,OAAA,GAAU,CAAA;AAAA,EACV,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAE9C,EAAA,uBACED,IAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,mBAAA;AAAA,QACZ,iBAAiB,OAAO,CAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,eAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,KAAA,EAAO,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBACjBA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,YAAY,IAAI,CAAA;AAAA,YAE/D,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,UAAA,EAAY,IAAI,CAAA,EAChE,QAAA,EAAA,IAAA,CAAK,IAAA,EACR,CAAA;AAAA,8BACAA,GAAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,oBAAA,EAAsB,YAAY,KAAK,CAAA;AAAA,kBAEhE,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA,WAAA;AAAA,UAVK;AAAA,SAYR,CAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ;ACtCA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,SAASqB,gBAAAA,CAAgB,OAAgB,IAAA,EAAc;AACrD,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,WAAA,EAAc,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EAC7D;AACF;AAEA,SAAS,oBAAoB,KAAA,EAAgB;AAC3C,EAAA,IACE,CAAC,kBAAA,CAAmB,QAAA;AAAA,IAClB;AAAA,GACF,EACA;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,IAAI,iBAAA,CAAkB,OAAO,CAAA,EAAG;AAC9B,IAAA,uBACErB,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,kBAAkB,EAAA,GAAK,CAAA;AAAA,QACjC,iBAAe,eAAA,IAAmB,MAAA;AAAA,QAClC,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,UAAA,IAAI,eAAA,EAAiB;AACrB,UAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,YAAA,KAAA,CAAM,cAAA,EAAe;AACrB,YAAA,KAAA,CAAM,cAAc,KAAA,EAAM;AAAA,UAC5B;AAAA,QACF,CAAA;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,IAAI,CAAC,iBAAA,CAAkB,YAAY,CAAA,EAAG,OAAO,IAAA;AAE7C,EAAA,uBACED,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,EAAU,eAAA;AAAA,MACV,cACE,OAAO,YAAA,KAAiB,YAAY,YAAA,CAAa,IAAA,KAC7C,YAAA,GACA,MAAA;AAAA,MAEN,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,UAAA;AAAA,QACZ,0BAAA,CAA2B,OAAO,WAAW,CAAA;AAAA,QAC7C,eAAA,IAAmB,MAAM,KAAA,CAAM;AAAA,OACjC;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,QAChB,GAAI,eAAA,GAAkB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB;AAAA,OACtD;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,UAAA,EAC3C,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,wBACJA,IAAC,MAAA,EAAA,EAAK,WAAA,EAAU,SAAQ,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,WAAA,EAC5C,QAAA,EAAA,YAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,UAAA,GAAaL,UAAAA;AAAA,EACxB,SAAS2B,WAAAA,CACP;AAAA,IACE,IAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd,KAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA,GAAc,SAAA;AAAA,IACd,eAAA,GAAkB,KAAA;AAAA,IAClB,UAAA;AAAA,IACA,aAAA,GAAgB,IAAA;AAAA,IAChB,mBAAA,GAAsB,IAAA;AAAA,IACtB,eAAA,GAAkB,IAAA;AAAA,IAClB,WAAA,GAAc,KAAA;AAAA,IACd,SAAA,GAAY,IAAA;AAAA,IACZ,YAAA,GAAe,IAAA;AAAA,IACf,YAAA,GAAe,mBAAA;AAAA,IACf,eAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA,GAAS,KAAA;AAAA,IACT,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,IAAA,KAAS,MAAA,EAAWD,gBAAAA,CAAgB,MAAM,MAAM,CAAA;AACpD,IAAAA,gBAAAA,CAAgB,aAAa,aAAa,CAAA;AAC1C,IAAAA,gBAAAA,CAAgB,iBAAiB,iBAAiB,CAAA;AAClD,IAAAA,gBAAAA,CAAgB,eAAe,eAAe,CAAA;AAC9C,IAAAA,gBAAAA,CAAgB,qBAAqB,qBAAqB,CAAA;AAC1D,IAAAA,gBAAAA,CAAgB,iBAAiB,iBAAiB,CAAA;AAClD,IAAAA,gBAAAA,CAAgB,aAAa,aAAa,CAAA;AAC1C,IAAAA,gBAAAA,CAAgB,WAAW,WAAW,CAAA;AACtC,IAAAA,gBAAAA,CAAgB,cAAc,cAAc,CAAA;AAC5C,IAAAA,gBAAAA,CAAgB,QAAQ,QAAQ,CAAA;AAChC,IAAA,mBAAA,CAAoB,WAAW,CAAA;AAC/B,IAAA,IACE,YAAA,KAAiB,mBAAA,IACjB,YAAA,KAAiB,WAAA,IACjB,iBAAiB,UAAA,EACjB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAI,WAAW,MAAA,IAAa,CAAC,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG;AACpD,MAAA,MAAM,IAAI,UAAU,4CAA4C,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,MAAA;AAC5C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,kBAAA,GACJ,UAAA,KAAe,MAAA,GAAY,QAAA,CAAS,KAAA,GAAQ,UAAA;AAC9C,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,gBAAgB,oBAAA,CAAqB,EAAE,QAAA,EAAU,CAAC,QAAQ,CAAA;AAChE,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIxB,SAAS,WAAW,CAAA;AACpE,IAAA,MAAM,QAAA,GAAWS,OAA8B,IAAI,CAAA;AACnD,IAAA,MAAM,cAAA,GAAiBA,OAA2B,IAAI,CAAA;AACtD,IAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,IAAA,MAAM,MAAA,GAAS,eAAe,IAAA,GAAO,gBAAA;AACrC,IAAA,MAAM,WAAA,GACJ,MAAA,IAAU,aAAA,CAAc,YAAA,GAAe,UAAA,GAAa,QAAA;AACtD,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,kBAAkB,WAAW,CAAA;AACpD,IAAA,MAAM,eAAA,GAAkB,kBAAkB,MAAM,CAAA;AAEhD,IAAA,IACE,oBACC,OAAO,kBAAA,KAAuB,YAAY,CAAC,kBAAA,CAAmB,MAAK,CAAA,EACpE;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAsB;AAC9C,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,MAC9B;AACA,MAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,IACzB,CAAA;AAEA,IAAAR,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,WAAA,EAAa,OAAO,MAAA;AACpC,MAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,MAAA,MAAM,gBAAgB,KAAA,EAAO,aAAA;AAC7B,MAAA,MAAM,cAAc,aAAA,EAAe,WAAA;AACnC,MAAA,IAAI,CAAC,KAAA,IAAS,CAAC,aAAA,IAAiB,CAAC,aAAa,OAAO,MAAA;AAErD,MAAA,cAAA,CAAe,UACb,aAAA,CAAc,aAAA,YAAyB,WAAA,CAAY,WAAA,GAC/C,cAAc,aAAA,GACd,IAAA;AACN,MAAA,MAAM,iBAAA,GAAoB;AAAA,QACxB,SAAA;AAAA,QACA,wBAAA;AAAA,QACA,uBAAA;AAAA,QACA,wBAAA;AAAA,QACA,0BAAA;AAAA,QACA;AAAA,OACF,CAAE,KAAK,GAAG,CAAA;AACV,MAAA,MAAM,eAAe,MAAM;AACzB,QAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,aAAA,CAA2B,iBAAiB,CAAA;AAC3E,QAAA,MAAM,MAAA,GACJ,iBAAiB,WAAA,GACb,KAAA,GACA,iBAAiB,UAAA,GACf,eAAA,EAAiB,OAAA,IAAW,KAAA,GAC5B,gBAAA,IAAoB,KAAA;AAC5B,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACf,CAAA;AACA,MAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,qBAAA,CAAsB,YAAY,CAAA;AAC5D,MAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,QAAA,IAAY,aAAA,EAAe;AAC3C,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,UAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,UAAA;AAAA,QACF;AACA,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,IAAS,CAAC,SAAA,EAAW;AACvC,QAAA,MAAM,YAAY,KAAA,CAAM,IAAA;AAAA,UACtB,KAAA,CAAM,iBAA8B,iBAAiB;AAAA,SACvD;AACA,QAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,KAAA,CAAM,KAAA,EAAM;AACZ,UAAA;AAAA,QACF;AACA,QAAA,MAAM,KAAA,GAAQ,UAAU,CAAC,CAAA;AACzB,QAAA,MAAM,IAAA,GAAO,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA;AAC3C,QAAA,IAAI,KAAA,CAAM,QAAA,IAAY,aAAA,CAAc,aAAA,KAAkB,KAAA,EAAO;AAC3D,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,IAAA,CAAK,KAAA,EAAM;AAAA,QACb,WAAW,CAAC,KAAA,CAAM,QAAA,IAAY,aAAA,CAAc,kBAAkB,IAAA,EAAM;AAClE,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,KAAA,CAAM,KAAA,EAAM;AAAA,QACd;AAAA,MACF,CAAA;AACA,MAAA,WAAA,CAAY,gBAAA,CAAiB,WAAW,aAAa,CAAA;AACrD,MAAA,OAAO,MAAM;AACX,QAAA,WAAA,CAAY,qBAAqB,KAAK,CAAA;AACtC,QAAA,WAAA,CAAY,mBAAA,CAAoB,WAAW,aAAa,CAAA;AACxD,QAAA,IAAI,YAAA,IAAgB,cAAA,CAAe,OAAA,EAAS,WAAA,EAAa;AACvD,UAAA,cAAA,CAAe,QAAQ,KAAA,EAAM;AAAA,QAC/B;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG;AAAA,MACD,aAAA;AAAA,MACA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,cAAA,GACJ,eAAA,IAAmB,QAAA,IAAY,cAAA,mBAC7BC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,QAAA;AAAA,QACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,QAC9B,aAAA,EAAa,WAAA;AAAA,QACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,MAAM,CAAA;AAAA,QAEzD,QAAA,EAAA;AAAA,UAAA,eAAA,GAAkB,MAAA,GAAS,IAAA;AAAA,UAC3B,2BACCC,GAAAA;AAAA,YAAQ,MAAA,CAAA,KAAA;AAAA,YAAP;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,wBAAA,EAAuB,QAAA;AAAA,cACvB,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,cAC9B,aAAA,EAAa,WAAA;AAAA,cACb,SAAA,EACE,kBACI,SAAA,GACA,EAAA,CAAG,MAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,cAGlD,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,iCACCA,GAAAA;AAAA,YAAQ,MAAA,CAAA,WAAA;AAAA,YAAP;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,wBAAA,EAAuB,QAAA;AAAA,cACvB,WAAA,EAAU,aAAA;AAAA,cACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,cAC9B,aAAA,EAAa,WAAA;AAAA,cACb,SAAA,EACE,kBACI,SAAA,GACA,EAAA;AAAA,gBACE,MAAM,KAAA,CAAM,iBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAGL,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN,GACE,IAAA;AAEN,IAAA,MAAM,cAAc,aAAA,CAAc;AAAA,MAChC,OAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,eAAe,MAAA,IAAU,WAAA,mBAC7BD,IAAAA,CAAAY,UAAA,EACE,QAAA,EAAA;AAAA,sBAAAX,GAAAA;AAAA,QAAQ,MAAA,CAAA,OAAA;AAAA,QAAP;AAAA,UACC,YAAY,WAAA,IAAe,MAAA;AAAA,UAC3B,QAAQ,CAAC,MAAA;AAAA,UACR,GAAG,mBAAA;AAAA,UACJ,aAAA,EAAY,MAAA;AAAA,UACZ,wBAAA,EAAuB,QAAA;AAAA,UACvB,WAAA,EAAU,SAAA;AAAA,UACV,aAAA,EAAa,WAAA;AAAA,UACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,OAAO,CAAA;AAAA,UAC5D,OAAO,EAAE,GAAG,KAAA,CAAM,MAAA,CAAO,eAAe,MAAA;AAAO;AAAA,OACjD;AAAA,sBACAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,mBAAA;AAAA,UACJ,QAAQ,CAAC,MAAA;AAAA,UACT,wBAAA,EAAuB,QAAA;AAAA,UACvB,WAAA,EAAU,SAAA;AAAA,UACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,UAC9B,aAAA,EAAa,WAAA;AAAA,UACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,OAAO,CAAA;AAAA,UAC5D,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,UAEhB,QAAA,kBAAAA,GAAAA;AAAA,YAAQ,MAAA,CAAA,OAAA;AAAA,YAAP;AAAA,cACC,YAAY,WAAA,IAAe,MAAA;AAAA,cAC1B,GAAG,mBAAA;AAAA,cACH,GAAI,CAAC,QAAA,GAAW,EAAE,iBAAA,EAAmB,MAAA,KAAc,EAAC;AAAA,cACpD,GAAI,CAAC,cAAA,GAAiB,EAAE,kBAAA,EAAoB,MAAA,KAAc,EAAC;AAAA,cAC5D,OAAA,EAAO,IAAA;AAAA,cACP,eAAA,EAAiB,CAAC,KAAA,KAAU;AAC1B,gBAAA,IAAI,WAAA,QAAmB,cAAA,EAAe;AAAA,cACxC,CAAA;AAAA,cACA,gBAAA,EAAkB,CAAC,KAAA,KAAU;AAC3B,gBAAA,IAAI,WAAA,QAAmB,cAAA,EAAe;AAAA,cACxC,CAAA;AAAA,cACA,eAAA,EAAiB,CAAC,KAAA,KAAU;AAC1B,gBAAA,IAAI,WAAA,IAAe,CAAC,aAAA,EAAe,KAAA,CAAM,cAAA,EAAe;AAAA,cAC1D,CAAA;AAAA,cACA,oBAAA,EAAsB,CAAC,KAAA,KAAU;AAC/B,gBAAA,IAAI,CAAC,mBAAA,EAAqB,KAAA,CAAM,cAAA,EAAe;AAAA,cACjD,CAAA;AAAA,cAEA,QAAA,kBAAAD,IAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACE,GAAG,mBAAA;AAAA,kBACJ,GAAA,EAAK,QAAA;AAAA,kBACL,QAAA,EAAU,EAAA;AAAA,kBACV,YAAA,EAAW,MAAA;AAAA,kBACX,wBAAA,EAAuB,QAAA;AAAA,kBACvB,WAAA,EAAU,OAAA;AAAA,kBACV,aAAA,EAAa,WAAA;AAAA,kBACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,kBACxD,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,kBAEnB,QAAA,EAAA;AAAA,oBAAA,cAAA;AAAA,oBAEA,kCACCC,GAAAA,CAAQ,cAAP,EAAa,OAAA,EAAO,MACnB,QAAA,kBAAAA,GAAAA;AAAA,sBAAC,QAAA;AAAA,sBAAA;AAAA,wBACE,GAAG,mBAAA;AAAA,wBACJ,IAAA,EAAK,QAAA;AAAA,wBACL,YAAA,EAAY,kBAAA;AAAA,wBACZ,KAAA,EAAO,kBAAA;AAAA,wBACP,wBAAA,EAAuB,QAAA;AAAA,wBACvB,WAAA,EAAU,OAAA;AAAA,wBACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,wBAC9B,aAAA,EAAa,WAAA;AAAA,wBACb,SAAA,EAAW,EAAA;AAAA,0BACT,MAAM,KAAA,CAAM,WAAA;AAAA,0BACZ,UAAA,EAAY;AAAA,yBACd;AAAA,wBACD,QAAA,EAAA;AAAA;AAAA,uBAGH,CAAA,GACE,IAAA;AAAA,oCAEJA,GAAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACE,GAAG,mBAAA;AAAA,wBACJ,wBAAA,EAAuB,QAAA;AAAA,wBACvB,WAAA,EAAU,MAAA;AAAA,wBACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,wBAC9B,aAAA,EAAa,WAAA;AAAA,wBACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,wBAErD;AAAA;AAAA,qBACH;AAAA,oBAEC,iBAAA,CAAkB,MAAM,CAAA,mBACvBA,GAAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACE,GAAG,mBAAA;AAAA,wBACJ,wBAAA,EAAuB,QAAA;AAAA,wBACvB,WAAA,EAAU,QAAA;AAAA,wBACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,wBAC9B,aAAA,EAAa,WAAA;AAAA,wBACb,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,MAAM,CAAA;AAAA,wBAEzD,QAAA,EAAA;AAAA;AAAA,qBACH,GACE;AAAA;AAAA;AAAA;AACN;AAAA;AACF;AAAA;AACF,KAAA,EACF,CAAA,GACE,IAAA;AAEJ,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,QAC9B,aAAA,EAAa,WAAA;AAAA,QACb,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,UAAA,EAAY,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACjE,KAAA;AAAA,QAEA,QAAA,kBAAAD,IAAAA;AAAA,UAAQ,MAAA,CAAA,IAAA;AAAA,UAAP;AAAA,YACC,IAAA,EAAM,MAAA;AAAA,YACN,YAAA,EAAc,gBAAA;AAAA,YACd,KAAA,EAAO,CAAC,WAAA,IAAe,SAAA;AAAA,YAEtB,QAAA,EAAA;AAAA,cAAA,WAAA,mBACCC,GAAAA;AAAA,gBAAQ,MAAA,CAAA,OAAA;AAAA,gBAAP;AAAA,kBACE,GAAG,mBAAA;AAAA,kBACJ,OAAA,EAAO,IAAA;AAAA,kBACP,QAAA,EAAU,eAAA;AAAA,kBACV,wBAAA,EAAuB,QAAA;AAAA,kBACvB,WAAA,EAAU,SAAA;AAAA,kBACV,aAAA,EAAa,WAAA;AAAA,kBACb,WAAA,EAAW,WAAA;AAAA,kBACX,iBAAe,eAAA,IAAmB,MAAA;AAAA,kBAClC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,aAAA;AAAA,oBACZ,eAAA,IAAmB,MAAM,KAAA,CAAM,qBAAA;AAAA,oBAC/B,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE,IAAA;AAAA,cACH,MAAA,IAAU,aAAA,CAAc,YAAA,mBACvBA,GAAAA;AAAA,gBAAQ,MAAA,CAAA,MAAA;AAAA,gBAAP;AAAA,kBACE,GAAG,aAAA,CAAc,gBAAA;AAAA,kBAClB,YAAY,WAAA,IAAe,MAAA;AAAA,kBAE1B,QAAA,EAAA;AAAA;AAAA,eACH,GAEA;AAAA;AAAA;AAAA;AAEJ;AAAA,KACF;AAAA,EAEJ;AACF;ACjeO,IAAM,WAAA,GAAcL,UAAAA;AAAA,EACzB,SAAS4B,YAAAA,CACP;AAAA,IACE,WAAA,GAAc,YAAA;AAAA,IACd,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,WAAA,KAAgB,UAAA,EAAY;AAC9D,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AACnC,IAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAK,CAAA,IAAK,CAAC,UAAA;AAC9C,IAAA,MAAM,SAAA,GAA2B;AAAA,MAC/B,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,MAChB,GAAG;AAAA,KACL;AAEA,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,uBACExB,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,mBAAA;AAAA,UACH,GAAG,YAAA;AAAA,UACJ,GAAA;AAAA,UACA,IAAA,EAAK,WAAA;AAAA,UACL,kBAAA,EAAkB,WAAA;AAAA,UAClB,wBAAA,EAAuB,SAAA;AAAA,UACvB,WAAA,EAAU,MAAA;AAAA,UACV,kBAAA,EAAkB,WAAA;AAAA,UAClB,YAAA,EAAW,SAAA;AAAA,UACX,SAAA,EAAW,EAAA;AAAA,YACT,2BAAA;AAAA,YACA,UAAA,EAAY,IAAA;AAAA,YACZ;AAAA,WACF;AAAA,UACA,KAAA,EAAO,SAAA;AAAA,UAEP,QAAA,EAAA;AAAA,4BAAAC,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,MAAA;AAAA,gBACV,kBAAA,EAAkB,WAAA;AAAA,gBAClB,SAAA,EAAW,EAAA;AAAA,kBACT,yBAAA;AAAA,kBACA,MAAM,KAAA,CAAM,WAAA;AAAA,kBACZ,UAAA,EAAY;AAAA;AACd;AAAA,aACF;AAAA,4BACAA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,OAAA;AAAA,gBACV,kBAAA,EAAkB,WAAA;AAAA,gBAClB,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,KAAK,CAAA;AAAA,gBAExD,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,4BACAA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,MAAA;AAAA,gBACV,kBAAA,EAAkB,WAAA;AAAA,gBAClB,SAAA,EAAW,EAAA;AAAA,kBACT,yBAAA;AAAA,kBACA,MAAM,KAAA,CAAM,WAAA;AAAA,kBACZ,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA;AAAA,OACF;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,YAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,WAAA;AAAA,QACL,kBAAA,EAAkB,WAAA;AAAA,QAClB,wBAAA,EAAuB,SAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,kBAAA,EAAkB,WAAA;AAAA,QAClB,YAAA,EAAW,WAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,WAAA;AAAA,UACZ,aAAa,kCAAA,GAAqC,iBAAA;AAAA,UAClD,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA;AAAA,KACT;AAAA,EAEJ;AACF;ACvFA,SAASqB,gBAAAA,CAAgB,OAAgB,IAAA,EAAc;AACrD,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,iBAAA,EAAoB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EACnE;AACF;AAEA,SAAS,kBAAkB,KAAA,EAAgB;AACzC,EAAA,IACE,UAAU,cAAA,IACV,KAAA,KAAU,gBACV,KAAA,KAAU,WAAA,IACV,UAAU,SAAA,EACV;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAASG,mBAAkB,KAAA,EAAgB;AACzC,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,KAAA,IAAS,UAAU,KAAA,EAAO;AAC7D,IAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AAAA,EACpE;AACF;AAEA,SAAS,cAAc,KAAA,EAAyD;AAC9E,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,UAAU,0CAA0C,CAAA;AAAA,EAChE;AAEA,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAY;AAC/B,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,CAAA,IAAK,KAAA,CAAM,SAAQ,EAAG;AAC3C,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA,KAAS,YAAY,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC5D,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,uBAAA,EAA0B,KAAK,CAAA,oBAAA,CAAsB,CAAA;AAAA,IAC3E;AACA,IAAA,IAAI,OAAO,KAAK,KAAA,KAAU,QAAA,IAAY,CAAC,IAAA,CAAK,KAAA,CAAM,MAAK,EAAG;AACxD,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,0BAA0B,KAAK,CAAA,mCAAA;AAAA,OACjC;AAAA,IACF;AACA,IAAA,IAAI,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,6BAAA,EAAgC,KAAK,KAAK,CAAA,iBAAA;AAAA,OAC5C;AAAA,IACF;AACA,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AACrB,IAAA,KAAA,MAAW,IAAA,IAAQ,CAAC,UAAA,EAAY,QAAA,EAAU,iBAAiB,CAAA,EAAY;AACrE,MAAA,MAAM,KAAA,GAAQ,KAAK,IAAI,CAAA;AACvB,MAAA,IAAI,UAAU,MAAA,EAAW;AACvB,QAAAH,iBAAgB,KAAA,EAAO,CAAA,MAAA,EAAS,KAAK,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAA;AAAA,MAClD;AAAA,IACF;AACA,IAAA,IAAI,KAAK,QAAA,KAAa,MAAA,IAAa,OAAO,IAAA,CAAK,aAAa,UAAA,EAAY;AACtE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,0BAA0B,KAAK,CAAA,8BAAA;AAAA,OACjC;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAAA,EAAsC;AAC9D,EAAA,MAAM,CAAC,IAAA,EAAM,KAAK,CAAA,GAAI,SAAA,CAAU,MAAM,GAAG,CAAA;AAIzC,EAAA,OAAO,EAAE,MAAM,KAAA,EAAM;AACvB;AAEA,SAASI,cAAAA,CAAc;AAAA,EACrB,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,OAAO,iBAAA,CAAkB,OAAO,CAAA,mBAC9BzB,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,MAC1B,iBAAe,QAAA,IAAY,MAAA;AAAA,MAE1B,QAAA,EAAA;AAAA;AAAA,sBAGHD,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,QAAA;AAAA,MACA,cACE,OAAO,YAAA,KAAiB,YAAY,YAAA,CAAa,IAAA,KAC7C,YAAA,GACA,MAAA;AAAA,MAEN,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,UAAA;AAAA,QACZ,2BAA2B,KAAK,CAAA;AAAA,QAChC,QAAA,IAAY,MAAM,KAAA,CAAM;AAAA,OAC1B;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,QAChB,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB;AAAA,OAC/C;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,UAAA,EAC3C,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,YAAY,CAAA,mBAC7BA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,OAAA,EAAQ,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,WAAA,EAC5C,wBACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AAEO,IAAM,gBAAA,GAAmBL,UAAAA,CAG9B,SAAS+B,iBAAAA,CACT;AAAA,EACE,QAAQ,EAAC;AAAA,EACT,KAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,SAAA,GAAY,cAAA;AAAA,EACZ,aAAA,GAAgB,IAAA;AAAA,EAChB,MAAA,GAAS,KAAA;AAAA,EACT,GAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,IAAI,IAAA,KAAS,MAAA,EAAWL,gBAAAA,CAAgB,MAAM,MAAM,CAAA;AACpD,EAAAA,gBAAAA,CAAgB,aAAa,aAAa,CAAA;AAC1C,EAAAA,gBAAAA,CAAgB,UAAU,UAAU,CAAA;AACpC,EAAAA,gBAAAA,CAAgB,eAAe,eAAe,CAAA;AAC9C,EAAAA,gBAAAA,CAAgB,QAAQ,QAAQ,CAAA;AAChC,EAAA,iBAAA,CAAkB,SAAS,CAAA;AAC3B,EAAAG,mBAAkB,GAAG,CAAA;AACrB,EAAA,aAAA,CAAc,KAAK,CAAA;AAEnB,EAAA,MAAM,qBAAqB,mBAAA,EAAoB;AAC/C,EAAA,MAAM,oBAAoB,GAAA,IAAO,kBAAA;AACjC,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,YAAA;AAC5C,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,gBAAgB,oBAAA,CAAqB,EAAE,QAAA,EAAU,CAAC,QAAQ,CAAA;AAChE,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI3B,SAAS,WAAW,CAAA;AACpE,EAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,EAAA,MAAM,MAAA,GAAS,eAAe,IAAA,GAAO,gBAAA;AACrC,EAAA,MAAM,oBAAA,GACJ,YAAA,KAAiB,MAAA,GAAY,QAAA,CAAS,OAAA,GAAU,YAAA;AAClD,EAAA,MAAM,WAAA,GACJ,MAAA,IAAU,aAAA,CAAc,YAAA,GAAe,UAAA,GAAa,QAAA;AACtD,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,iBAAiB,SAAS,CAAA;AAElD,EAAA,IACE,YAAA,KAAiB,MAAA,KAChB,OAAO,QAAA,CAAS,OAAA,KAAY,YAAY,CAAC,QAAA,CAAS,OAAA,CAAQ,IAAA,EAAK,CAAA,EAChE;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAsB;AAC9C,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,IAC9B;AACA,IAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,8BACJE,IAAAA;AAAA,IAAc,YAAA,CAAA,OAAA;AAAA,IAAb;AAAA,MACE,GAAG,mBAAA;AAAA,MACJ,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA,EAAY,CAAA;AAAA,MACZ,gBAAA,EAAkB,CAAA;AAAA,MAClB,wBAAA,EAAuB,eAAA;AAAA,MACvB,WAAA,EAAU,SAAA;AAAA,MACV,gBAAA,EAAgB,SAAA;AAAA,MAChB,aAAA,EAAa,WAAA;AAAA,MACb,WAAA,EAAU,SAAA;AAAA,MACV,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,IAAI,CAAA;AAAA,MACxD,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,MAEnB,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,KAAK,oBACtBC,GAAAA;AAAA,UAAc,YAAA,CAAA,KAAA;AAAA,UAAb;AAAA,YACE,GAAG,mBAAA;AAAA,YACJ,wBAAA,EAAuB,eAAA;AAAA,YACvB,WAAA,EAAU,OAAA;AAAA,YACV,YAAA,EAAW,QAAA;AAAA,YACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,YAEzD,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,UAAA,MAAM,YAAA,GAAe,KAAK,QAAA,IAAY,KAAA;AACtC,UAAA,MAAM,IAAA,GAAO,IAAA,CAAK,MAAA,GAAS,QAAA,GAAW,SAAA;AAEtC,UAAA,uBACED,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,wBAAA,EAAuB,eAAA;AAAA,cACvB,WAAA,EAAU,cAAA;AAAA,cAET,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,kCACJC,GAAAA;AAAA,kBAAc,YAAA,CAAA,SAAA;AAAA,kBAAb;AAAA,oBACE,GAAG,mBAAA;AAAA,oBACJ,wBAAA,EAAuB,eAAA;AAAA,oBACvB,WAAA,EAAU,WAAA;AAAA,oBACV,YAAA,EAAW,QAAA;AAAA,oBACX,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,iBAAA;AAAA,sBACZ,UAAA,EAAY;AAAA;AACd;AAAA,iBACF,GACE,IAAA;AAAA,gCACJA,GAAAA;AAAA,kBAAc,YAAA,CAAA,IAAA;AAAA,kBAAb;AAAA,oBACC,OAAA,EAAO,IAAA;AAAA,oBACP,QAAA,EAAU,YAAA;AAAA,oBACV,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,sBAAA,IAAA,CAAK,WAAW,IAAI,CAAA;AACpB,sBAAA,QAAA,GAAW,IAAI,CAAA;AACf,sBAAA,IAAI,CAAC,aAAA,EAAe;AAClB,wBAAA,KAAA,CAAM,cAAA,EAAe;AAAA,sBACvB;AAAA,oBACF,CAAA;AAAA,oBAEA,QAAA,kBAAAD,IAAAA;AAAA,sBAAC,QAAA;AAAA,sBAAA;AAAA,wBACE,GAAG,mBAAA;AAAA,wBACJ,IAAA,EAAK,QAAA;AAAA,wBACL,QAAA,EAAU,YAAA;AAAA,wBACV,wBAAA,EAAuB,eAAA;AAAA,wBACvB,WAAA,EAAU,MAAA;AAAA,wBACV,YAAA,EAAY,eAAe,UAAA,GAAa,SAAA;AAAA,wBACxC,cAAY,IAAA,CAAK,KAAA;AAAA,wBACjB,gBAAA,EAAgB,SAAA;AAAA,wBAChB,aAAA,EAAa,WAAA;AAAA,wBACb,WAAA,EAAW,IAAA;AAAA,wBACX,iBAAe,YAAA,IAAgB,MAAA;AAAA,wBAC/B,SAAA,EAAW,EAAA;AAAA,0BACT,MAAM,KAAA,CAAM,YAAA;AAAA,0BACZ,IAAA,CAAK,MAAA,IAAU,KAAA,CAAM,KAAA,CAAM,kBAAA;AAAA,0BAC3B,YAAA,IAAgB,MAAM,KAAA,CAAM,oBAAA;AAAA,0BAC5B,UAAA,EAAY;AAAA,yBACd;AAAA,wBACA,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,wBAEnB,QAAA,EAAA;AAAA,0BAAA,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAA,mBAC1BC,GAAAA;AAAA,4BAAC,MAAA;AAAA,4BAAA;AAAA,8BACC,WAAA,EAAU,WAAA;AAAA,8BACV,SAAA,EAAW,EAAA;AAAA,gCACT,MAAM,KAAA,CAAM,gBAAA;AAAA,gCACZ,UAAA,EAAY;AAAA,+BACd;AAAA,8BAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,2BACR,GACE,IAAA;AAAA,0CACJD,IAAAA;AAAA,4BAAC,MAAA;AAAA,4BAAA;AAAA,8BACC,WAAA,EAAU,cAAA;AAAA,8BACV,SAAA,EAAW,EAAA;AAAA,gCACT,MAAM,KAAA,CAAM,mBAAA;AAAA,gCACZ,UAAA,EAAY;AAAA,+BACd;AAAA,8BAEA,QAAA,EAAA;AAAA,gDAAAC,GAAAA;AAAA,kCAAC,MAAA;AAAA,kCAAA;AAAA,oCACC,WAAA,EAAU,YAAA;AAAA,oCACV,SAAA,EAAW,EAAA;AAAA,sCACT,MAAM,KAAA,CAAM,iBAAA;AAAA,sCACZ,UAAA,EAAY;AAAA,qCACd;AAAA,oCAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iCACR;AAAA,gCACC,iBAAA,CAAkB,IAAA,CAAK,WAAW,CAAA,mBACjCA,GAAAA;AAAA,kCAAC,MAAA;AAAA,kCAAA;AAAA,oCACC,WAAA,EAAU,kBAAA;AAAA,oCACV,SAAA,EAAW,EAAA;AAAA,sCACT,MAAM,KAAA,CAAM,uBAAA;AAAA,sCACZ,UAAA,EAAY;AAAA,qCACd;AAAA,oCAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iCACR,GACE;AAAA;AAAA;AAAA,2BACN;AAAA,0BACC,iBAAA,CAAkB,IAAA,CAAK,QAAQ,CAAA,mBAC9BA,GAAAA;AAAA,4BAAC,MAAA;AAAA,4BAAA;AAAA,8BACC,WAAA,EAAU,eAAA;AAAA,8BACV,SAAA,EAAW,EAAA;AAAA,gCACT,MAAM,KAAA,CAAM,oBAAA;AAAA,gCACZ,UAAA,EAAY;AAAA,+BACd;AAAA,8BAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,2BACR,GACE;AAAA;AAAA;AAAA;AACN;AAAA;AACF;AAAA,aAAA;AAAA,YAlGK,IAAA,CAAK;AAAA,WAmGZ;AAAA,QAEJ,CAAC,CAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAGF,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,GAAA,EAAK,iBAAA;AAAA,MACL,wBAAA,EAAuB,eAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,MAC9B,gBAAA,EAAgB,SAAA;AAAA,MAChB,aAAA,EAAa,WAAA;AAAA,MACb,WAAA,EAAU,SAAA;AAAA,MACV,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACnE,KAAA;AAAA,MAEA,QAAA,kBAAAD,IAAAA;AAAA,QAAc,YAAA,CAAA,IAAA;AAAA,QAAb;AAAA,UACC,IAAA,EAAM,MAAA;AAAA,UACN,YAAA,EAAc,gBAAA;AAAA,UACd,GAAA,EAAK,iBAAA;AAAA,UACL,KAAA,EAAO,KAAA;AAAA,UAEP,QAAA,EAAA;AAAA,4BAAAC,GAAAA;AAAA,cAAc,YAAA,CAAA,OAAA;AAAA,cAAb;AAAA,gBACE,GAAG,mBAAA;AAAA,gBACJ,OAAA,EAAO,IAAA;AAAA,gBACP,QAAA;AAAA,gBACA,wBAAA,EAAuB,eAAA;AAAA,gBACvB,WAAA,EAAU,SAAA;AAAA,gBACV,gBAAA,EAAgB,SAAA;AAAA,gBAChB,aAAA,EAAa,WAAA;AAAA,gBACb,WAAA,EAAU,SAAA;AAAA,gBACV,iBAAe,QAAA,IAAY,MAAA;AAAA,gBAC3B,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,eAAA;AAAA,kBACZ,QAAA,IAAY,MAAM,KAAA,CAAM,uBAAA;AAAA,kBACxB,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,UAAAyB,cAAAA,CAAc;AAAA,kBACb,OAAA;AAAA,kBACA,YAAA,EAAc,oBAAA;AAAA,kBACd,WAAA;AAAA,kBACA,QAAA;AAAA,kBACA;AAAA,iBACD;AAAA;AAAA,aACH;AAAA,YACC,MAAA,IAAU,aAAA,CAAc,YAAA,mBACvBzB,GAAAA,CAAc,YAAA,CAAA,MAAA,EAAb,EAAqB,GAAG,aAAA,CAAc,gBAAA,EACpC,QAAA,EAAA,WAAA,EACH,CAAA,GAEA;AAAA;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ,CAAC;AC9YD,SAAS,gBAAA,GAAmB;AAC1B,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,SAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,WAAA,EAAY,KAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,wBAChDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU,CAAA;AAAA,wBAClBA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU;AAAA;AAAA;AAAA,GACpB;AAEJ;AAEO,IAAM,cAAA,GAAiBL,UAAAA;AAAA,EAC5B,SAASgC,eAAAA,CACP;AAAA,IACE,IAAA,mBAAO3B,GAAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA;AAAA,IACzB,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,uBACED,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,aAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAW,OAAA;AAAA,QACX,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,SAAA,EAAW,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAChE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,oBACrBC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAW,OAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,cACrD,KAAA,EAAO,MAAM,MAAA,CAAO,SAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,iBAAA,CAAkB,KAAK,CAAA,mBACtBA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAW,OAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,cAEtD,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,aAAA;AAAA,cACV,YAAA,EAAW,OAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,WAAW,CAAA;AAAA,cAElE,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,YAAA,EAAW,OAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,OAAO,CAAA;AAAA,cAE1D,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC/EA,SAAS,gBAAgB,MAAA,EAAmC;AAC1D,EAAA,MAAM,MAAM,MAAA,CAAO,OAAA;AAAA,IACjB,CAAC,UAAU,KAAA,EAAO,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,IAAK;AAAC,GACrD;AACA,EAAA,OAAO,GAAA,CAAI,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,IAAI,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA;AAC3D;AAEA,SAAS,iBAAA,CACP,KAAA,EACA,QAAA,EACA,IAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,QAAA;AAChC,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,MAAU,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,EAAG;AACrC,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,aAAa,IAAI,CAAA,2CAAA;AAAA,KACnB;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEO,IAAM,SAAA,GAAYL,UAAAA;AAAA,EACvB,SAASiC,UAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,GAAiB,QAAA;AAAA,IACjB,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,MAC1B,CAAC,YAAY,QAAQ,CAAA;AAAA,MACrB,CAAC,YAAY,QAAQ;AAAA,KACvB,EAAY;AACV,MAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,UAAA,EAAa,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC5D;AAAA,IACF;AACA,IAAA,IAAI,QAAA,KAAa,MAAA,IAAa,OAAO,QAAA,KAAa,UAAA,EAAY;AAC5D,MAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,IAC9D;AACA,IAAA,IAAI,cAAA,KAAmB,QAAA,IAAY,cAAA,KAAmB,UAAA,EAAY;AAChE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,cAAcC,KAAAA,EAAM;AAC1B,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cAAA,GAAiB,kBAAkB,WAAW,CAAA;AACpD,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIhC,SAAwB,IAAI,CAAA;AACtE,IAAA,MAAM,qBAAA,GAAwBS,MAAAA,iBAAO,IAAI,GAAA,EAAa,CAAA;AACtD,IAAA,MAAM,WAAA,GAAcA,OAAO,QAAQ,CAAA;AACnC,IAAA,MAAM,iBAAA,GAAoBA,OAAO,cAAc,CAAA;AAC/C,IAAA,MAAM,WAAA,GAAcA,OAAO,QAAQ,CAAA;AACnC,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AACtB,IAAA,iBAAA,CAAkB,OAAA,GAAU,cAAA;AAC5B,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AACtB,IAAA,MAAM,eAAe,QAAA,KAAa,MAAA;AAElC,IAAAR,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,gBAAgB,QAAA,EAAU;AAC7B,QAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,MACvB;AAAA,IACF,CAAA,EAAG,CAAC,QAAA,EAAU,YAAY,CAAC,CAAA;AAE3B,IAAAA,UAAU,MAAM;AACd,MAAA,IAAI,YAAA,IAAgB,qBAAA,CAAsB,OAAA,CAAQ,IAAA,KAAS,CAAA,EAAG;AAC5D,QAAA,MAAM,IAAI,SAAA;AAAA,UACR;AAAA,SACF;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,IAAA,MAAM,eAAA,GAAkBU,WAAAA,CAAY,CAAC,UAAA,KAAuB;AAC1D,MAAA,MAAM,qBAAqB,qBAAA,CAAsB,OAAA;AACjD,MAAA,IACE,WAAA,CAAY,OAAA,KAAY,MAAA,IACxB,CAAC,kBAAA,CAAmB,IAAI,UAAU,CAAA,IAClC,kBAAA,CAAmB,IAAA,GAAO,CAAA,EAC1B;AACA,QAAA,MAAM,IAAI,SAAA;AAAA,UACR;AAAA,SACF;AAAA,MACF;AACA,MAAA,kBAAA,CAAmB,IAAI,UAAU,CAAA;AACjC,MAAA,OAAO,MAAM;AACX,QAAA,kBAAA,CAAmB,OAAO,UAAU,CAAA;AAAA,MACtC,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,aAAA,GAAgBA,WAAAA;AAAA,MACpB,CAAC,MAA6B,KAAA,KAAiC;AAC7D,QAAA,MAAM,kBAAkB,WAAA,CAAY,OAAA;AACpC,QAAA,IACE,YAAY,OAAA,IACZ,eAAA,KAAoB,MAAA,IACpB,iBAAA,CAAkB,YAAY,IAAA,EAC9B;AACA,UAAA;AAAA,QACF;AAEA,QAAA,MAAM,MAAA,GAAS,gCAAA,CAAiC,eAAA,CAAgB,KAAK,CAAC,CAAA;AACtE,QAAA,IAAI,WAAW,IAAA,EAAM;AACnB,UAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,UAAA;AAAA,QACF;AACA,QAAA,gBAAA,CAAiB,MAAM,CAAA;AAAA,MACzB,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,MAAM,UAAA,GAAaA,WAAAA;AAAA,MACjB,CAAC,KAAA,KAAiC,aAAA,CAAc,QAAA,EAAU,KAAK,CAAA;AAAA,MAC/D,CAAC,aAAa;AAAA,KAChB;AACA,IAAA,MAAM,YAAA,GAAeA,WAAAA;AAAA,MACnB,CAAC,KAAA,KAAiC,aAAA,CAAc,UAAA,EAAY,KAAK,CAAA;AAAA,MACjE,CAAC,aAAa;AAAA,KAChB;AAEA,IAAA,MAAM,gBAAA,GAAmB,kBAAkB,KAAK,CAAA;AAChD,IAAA,MAAM,aAAA,GAAgB,mBAAmB,KAAA,GAAQ,aAAA;AACjD,IAAA,MAAM,QAAA,GAAW,kBAAkB,aAAa,CAAA;AAChD,IAAA,MAAM,UAAA,GAAa,CAAC,QAAA,IAAY,iBAAA,CAAkB,OAAO,CAAA;AACzD,IAAA,MAAM,eAAA,GAAkB,WAAW,aAAA,GAAgB,OAAA;AACnD,IAAA,MAAM,iBAAA,GAAoB,OAAA,IAAW,CAAA,EAAG,WAAW,CAAA,QAAA,CAAA;AACnD,IAAA,MAAM,wBAAwB,cAAA,GAC1B,iBAAA;AAAA,MACE,aAAA;AAAA,MACA,GAAG,WAAW,CAAA,YAAA,CAAA;AAAA,MACd;AAAA,KACF,GACA,MAAA;AACJ,IAAA,MAAM,iBAAA,GAAoB,aACtB,iBAAA,CAAkB,SAAA,EAAW,GAAG,WAAW,CAAA,QAAA,CAAA,EAAY,WAAW,CAAA,GAClE,MAAA;AACJ,IAAA,MAAM,eAAA,GAAkB,WACpB,iBAAA,CAAkB,OAAA,EAAS,GAAG,WAAW,CAAA,MAAA,CAAA,EAAU,SAAS,CAAA,GAC5D,MAAA;AACJ,IAAA,MAAM,YAAA,GAAsC;AAAA,MAC1C,EAAA,EAAI,iBAAA;AAAA,MACJ,kBAAA,EAAoB,YAAA;AAAA,QAClB,qBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,mBAAA,EAAqB,eAAA;AAAA,MACrB,cAAA,EAAgB,WAAW,IAAA,GAAO,MAAA;AAAA,MAClC,eAAA,EAAiB,WAAW,IAAA,GAAO,MAAA;AAAA,MACnC,UAAU,QAAA,IAAY,MAAA;AAAA,MACtB,UAAU,QAAA,IAAY;AAAA,KACxB;AACA,IAAA,MAAM,mBACJ,OAAO,QAAA,KAAa,UAAA,GAAa,QAAA,CAAS,YAAY,CAAA,GAAI,QAAA;AAC5D,IAAA,MAAM,iBAAA,GAAoBsB,OAAAA;AAAA,MACxB,OAAO;AAAA,QACL,OAAA,EAAS,QAAA;AAAA,QACT,eAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,QAAA,EAAU,UAAA,EAAY,YAAA,EAAc,eAAe;AAAA,KACtD;AAEA,IAAA,uBACE/B,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,gBAAc,QAAA,IAAY,MAAA;AAAA,QAC1B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,KAAK,oBACtBC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,WAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,QAAQ,CAAA;AAAA,cAE7D,QAAA,kBAAAD,IAAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,OAAO,QAAA,KAAa,UAAA,GAAa,iBAAA,GAAoB,OAAA;AAAA,kBAC9D,WAAA,EAAU,OAAA;AAAA,kBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,kBAEtD,QAAA,EAAA;AAAA,oBAAA,KAAA;AAAA,oBACA,2BACCA,IAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,aAAA,EAAY,MAAA;AAAA,wBACZ,WAAA,EAAU,oBAAA;AAAA,wBACV,SAAA,EAAW,EAAA;AAAA,0BACT,MAAM,KAAA,CAAM,aAAA;AAAA,0BACZ,UAAA,EAAY;AAAA,yBACd;AAAA,wBAEC,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,0BAAI;AAAA;AAAA;AAAA,qBAEP,GACE;AAAA;AAAA;AAAA;AACN;AAAA,WACF,GACE,IAAA;AAAA,UAEH,iCACCC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,qBAAA;AAAA,cACJ,WAAA,EAAU,aAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,gBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UAEH,iBAAA,CAAkB,gBAAgB,CAAA,mBACjCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,OAAO,CAAA;AAAA,cAC3D,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,cAEpB,0BAAAA,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,mBAC/B,QAAA,EAAA,gBAAA,EACH;AAAA;AAAA,WACF,GACE,IAAA;AAAA,UAEH,iBAAA,CAAkB,eAAe,CAAA,mBAChCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,WAAW,eAAA,GAAkB,iBAAA;AAAA,cACjC,IAAA,EAAM,WAAW,OAAA,GAAU,MAAA;AAAA,cAC3B,WAAA,EAAW,WAAW,OAAA,GAAU,SAAA;AAAA,cAChC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,YAAA;AAAA,gBACZ,QAAA,IAAY,uBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC9RA,SAAS+B,iBAAgB,MAAA,EAAmC;AAC1D,EAAA,MAAM,MAAM,MAAA,CAAO,OAAA;AAAA,IACjB,CAAC,UAAU,KAAA,EAAO,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,IAAK;AAAC,GACrD;AACA,EAAA,OAAO,GAAA,CAAI,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,IAAI,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA;AAC3D;AAEA,SAASC,kBAAAA,CACP,KAAA,EACA,QAAA,EACA,IAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,QAAA;AAChC,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,MAAU,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,EAAG;AACrC,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,gBAAgB,IAAI,CAAA,2CAAA;AAAA,KACtB;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEO,IAAM,YAAA,GAAerC,UAAAA;AAAA,EAC1B,SAASsC,aAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,kBAAA,EAAoB,eAAA;AAAA,IACpB,mBAAA,EAAqB,gBAAA;AAAA,IACrB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,cAAcJ,KAAAA,EAAM;AAC1B,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,IACE,CAAC,iBAAA,CAAkB,MAAM,CAAA,IACxB,OAAO,WAAW,QAAA,IAAY,CAAC,MAAA,CAAO,IAAA,EAAK,EAC5C;AACA,MAAA,MAAM,IAAI,UAAU,sDAAsD,CAAA;AAAA,IAC5E;AACA,IAAA,IAAI,QAAA,KAAa,MAAA,IAAa,OAAO,QAAA,KAAa,SAAA,EAAW;AAC3D,MAAA,MAAM,IAAI,UAAU,0CAA0C,CAAA;AAAA,IAChE;AAEA,IAAA,MAAM,cAAA,GAAiB,kBAAkB,WAAW,CAAA;AACpD,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,wBAAwB,cAAA,GAC1BG,kBAAAA;AAAA,MACE,aAAA;AAAA,MACA,GAAG,WAAW,CAAA,YAAA,CAAA;AAAA,MACd;AAAA,KACF,GACA,MAAA;AACJ,IAAA,MAAM,eAAA,GAAkB,WACpBA,kBAAAA,CAAkB,OAAA,EAAS,GAAG,WAAW,CAAA,MAAA,CAAA,EAAU,SAAS,CAAA,GAC5D,MAAA;AACJ,IAAA,uBACEjC,IAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,QAAA;AAAA,QACA,kBAAA,EAAkBgC,aAAAA,CAAa,eAAA,EAAiB,qBAAqB,CAAA;AAAA,QACrE,mBAAA,EAAmBA,aAAAA,CAAa,gBAAA,EAAkB,eAAe,CAAA;AAAA,QACjE,wBAAA,EAAuB,UAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACnE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA/B,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,QAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,MAAM,CAAA;AAAA,cAC5D,KAAA,EAAO,MAAM,MAAA,CAAO,cAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,iCACCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,qBAAA;AAAA,cACJ,WAAA,EAAU,aAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,mBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,mBAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,2BACCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,eAAA;AAAA,cACJ,WAAA,EAAU,OAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,cAC1D,KAAA,EAAO,MAAM,MAAA,CAAO,aAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,0BACJA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,eAAA,EAAiB,YAAY,OAAO,CAAA;AAAA,cAC9D,KAAA,EAAO,MAAM,MAAA,CAAO,eAAA;AAAA,cAEnB;AAAA;AAAA;AACH;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;ACxHA,SAAS,eAAe,KAAA,EAA2C;AACjE,EAAA,OACE,OAAO,UAAU,QAAA,IACjB,MAAA,CAAO,UAAU,KAAK,CAAA,IACtB,KAAA,IAAS,CAAA,IACT,KAAA,IAAS,CAAA;AAEb;AAEO,IAAM,WAAA,GAAcL,UAAAA;AAAA,EACzB,SAASuC,YAAAA,CACP;AAAA,IACE,KAAA,GAAQ,CAAA;AAAA,IACR,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,IAAA,GAAO,SAAA;AAAA,IACP,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,IAAI,CAAC,cAAA,CAAe,KAAK,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAI,WAAW,mDAAmD,CAAA;AAAA,IAC1E;AAEA,IAAA,OAAOC,aAAAA;AAAA,MACL,IAAI,KAAK,CAAA,CAAA;AAAA,MACT;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,YAAA;AAAA,QACH,GAAA;AAAA,QACA,wBAAA,EAA0B,SAAA;AAAA,QAC1B,WAAA,EAAa,MAAA;AAAA,QACb,YAAA,EAAc,KAAA;AAAA,QACd,WAAA,EAAa,IAAA;AAAA,QACb,WAAA,EAAa,IAAA;AAAA,QACb,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,WAAA;AAAA,UACZ,2BAAA,CAA4B,OAAO,IAAI,CAAA;AAAA,UACvC,8BAAA,CAA+B,OAAO,IAAI,CAAA;AAAA,UAC1C,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAG;AAAA;AACL,OACF;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;ACxDO,IAAM,QAAA,GAAWxC,UAAAA;AAAA,EACtB,SAASyC,SAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,OAAA,GAAU,CAAA;AAAA,IACV,GAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,OAAA,GAAU,OAAA;AAAA,IACV,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cACJ,GAAA,KAAQ,MAAA,GACJ,SACA,uBAAA,CAAwB,UAAA,EAAY,OAAO,GAAG,CAAA;AAEpD,IAAA,uBACEpC,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,MAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,cAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAc,OAAA;AAAA,QACd,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,QAAA,EAAU,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAC/D,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,UAChB,mBAAA,EAAqB,uBAAuB,OAAO,CAAA;AAAA,UACnD,GAAA,EAAK,WAAA;AAAA,UACL,UAAA,EAAY,sBAAA,CAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UACpD,cAAA,EAAgB,wBAAA,CAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,UAC5D,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACrDA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,kBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,SAAA,GAAYL,UAAAA;AAAA,EACvB,SAAS0C,UAAAA,CACP;AAAA,IACE,IAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,MAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,MAC1B,CAAC,WAAW,OAAO,CAAA;AAAA,MACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,MACrB,CAAC,YAAY,QAAQ;AAAA,KACvB,EAAY;AACV,MAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,UAAA,EAAa,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC5D;AAAA,IACF;AACA,IAAA,IACE,gBAAgB,MAAA,IAChB,WAAA,KAAgB,QAChB,WAAA,KAAgB,IAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,MAAA,MAAM,IAAI,UAAU,oDAAoD,CAAA;AAAA,IAC1E;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,eAAe,mBAAA,EAAoB;AACzC,IAAA,MAAM,eAAA,GAAkB,WAAW,YAAA,CAAa,OAAA;AAEhD,IAAA,uBACEtC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAA,EAAW,WAAA;AAAA,QACX,gBAAc,eAAA,IAAmB,MAAA;AAAA,QACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,eAAA,IAAmB,MAAM,KAAA,CAAM,cAAA;AAAA,UAC/B,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,eAAA,GAAkB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UACpD,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,oBACrBC,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,IAAI,CAAA;AAAA,cAEtD,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,0BACJA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACE,GAAG,UAAA;AAAA,cACJ,GAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,cAAA,EAAc,sBAAsB,eAAA,IAAmB,MAAA,CAAA;AAAA,cACvD,WAAA,EAAU,SAAA;AAAA,cACV,WAAA,EAAW,WAAA;AAAA,cACX,gBAAc,eAAA,IAAmB,MAAA;AAAA,cACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,YAAA;AAAA,gBACZ,WAAA,IAAe,sBAAsB,WAAW,CAAA;AAAA,gBAChD,UAAA,EAAY;AAAA,eACd;AAAA,cACA,MAAA,EAAQ,CAAC,KAAA,KAAU;AACjB,gBAAA,MAAA,GAAS,KAAK,CAAA;AACd,gBAAA,YAAA,CAAa,UAAA,CAAW,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,cACnD,CAAA;AAAA,cACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,gBAAA,QAAA,GAAW,KAAK,CAAA;AAChB,gBAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,cACrD;AAAA;AAAA,WACF;AAAA,UACC,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,UAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,eAAA,EAAiB,YAAY,QAAQ,CAAA;AAAA,cAE9D,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACxHO,IAAM,cAAA,GAAiBL,UAAAA,CAG5B,SAAS2C,eAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,IAC1B,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ;AAAA,GACvB,EAAY;AACV,IAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,eAAA,EAAkB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,IACjE;AAAA,EACF;AAEA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACEvC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,aAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,gBAAc,OAAA,IAAW,MAAA;AAAA,MACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,OAAA,IAAW,MAAM,KAAA,CAAM,iBAAA;AAAA,QACvB,QAAA,IAAY,MAAM,KAAA,CAAM,kBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,QAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,iBAAA,GAAoB,MAAA;AAAA,QAC/C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,kBAAA,GAAqB,MAAA;AAAA,QACjD,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,UAAU,oBAC3BC,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,aAAA;AAAA,YACV,gBAAA,EAAe,OAAA;AAAA,YACf,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,oBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,eAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,YAAY,CAAA,mBAC7BA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,eAAA;AAAA,YACV,gBAAA,EAAe,OAAA;AAAA,YACf,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,sBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,iBAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,wBACJA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,iBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,iBAAA;AAAA,YAEnB;AAAA;AAAA,SACH;AAAA,QACC,iBAAA,CAAkB,UAAU,CAAA,mBAC3BA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,aAAA;AAAA,YACV,gBAAA,EAAe,KAAA;AAAA,YACf,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,oBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,iBAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,WAAA;AAAA,YACV,gBAAA,EAAe,KAAA;AAAA,YACf,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,kBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,eAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;ACnHM,IAAM,UAAA,GAAaL,UAAAA;AAAA,EACxB,SAAS4C,WAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA,GAAQ,QAAA;AAAA,IACR,OAAA,GAAU,OAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,IAAI,OAAO,SAAS,SAAA,EAAW;AAC7B,MAAA,MAAM,IAAI,UAAU,oCAAoC,CAAA;AAAA,IAC1D;AACA,IAAA,MAAM,cACJ,GAAA,KAAQ,MAAA,GACJ,SACA,uBAAA,CAAwB,YAAA,EAAc,OAAO,GAAG,CAAA;AAEtD,IAAA,uBACEvC,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,cAAA,EAAc,OAAA;AAAA,QACd,WAAA,EAAW,OAAO,MAAA,GAAS,QAAA;AAAA,QAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,UAAA,EAAY,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACjE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,UAChB,GAAA,EAAK,WAAA;AAAA,UACL,UAAA,EAAY,sBAAA,CAAuB,YAAA,EAAc,KAAK,CAAA;AAAA,UACtD,cAAA,EAAgB,wBAAA,CAAyB,YAAA,EAAc,OAAO,CAAA;AAAA,UAC9D,QAAA,EAAU,OAAO,MAAA,GAAS,QAAA;AAAA,UAC1B,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACxDO,IAAM,OAAA,GAAUL,UAAAA,CAAsC,SAAS6C,QAAAA,CACpE;AAAA,EACE,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACExC,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,QAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,KAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,OAAA,EAAS,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MAC9D,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,GAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;ACbD,IAAM,kBAAA,GAAqB,EAAA;AAC3B,IAAM,gBAAA,GAAmB,EAAA;AACzB,IAAM,gBAAA,GAAmB,EAAA;AACzB,IAAM,qBAAA,GAAwB,GAAA;AAI9B,SAAS,SAAA,CAAa,KAAsB,KAAA,EAAiB;AAC3D,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACX,WAAW,GAAA,EAAK;AACd,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAAA,EAChB;AACF;AAEA,SAAS,aAAA,CAAc,MAAc,KAAA,EAAgB;AACnD,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,WAAA,EAAc,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EAC7D;AACF;AAEA,SAAS,kBAAkB,WAAA,EAAoC;AAC7D,EAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,WAAA,KAAgB,UAAA,EAAY;AAC9D,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,SAAA,CAAU,OAAoC,QAAA,EAAkB;AACvE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,MAAM,qEAAqE,CAAA;AAAA,IACvF;AACA,IAAA,OAAO,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,EACjB;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AAC7B,MAAA,MAAM,IAAI,UAAU,yDAAyD,CAAA;AAAA,IAC/E;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,aAAA,CAAc,MAAc,KAAA,EAAe;AAClD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,IAAI,CAAA,yBAAA,CAA2B,CAAA;AAAA,EACpE;AACA,EAAA,IAAI,KAAA,GAAQ,CAAA,IAAK,KAAA,GAAQ,GAAA,EAAK;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,IAAI,CAAA,2BAAA,CAA6B,CAAA;AAAA,EACtE;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,KAAA,CAAM,KAAA,EAAe,GAAA,EAAa,GAAA,EAAa;AACtD,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,GAAG,GAAG,GAAG,CAAA;AAC3C;AAEA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,OAAA,GAAU,gBAAA;AAAA,EACV,OAAA,GAAU,gBAAA;AAAA,EACV,YAAA,GAAe;AACjB,CAAA,EAAuE;AACrE,EAAA,MAAM,GAAA,GAAM,aAAA,CAAc,SAAA,EAAW,OAAO,CAAA;AAC5C,EAAA,MAAM,GAAA,GAAM,aAAA,CAAc,SAAA,EAAW,OAAO,CAAA;AAC5C,EAAA,IAAI,MAAM,GAAA,EAAK;AACb,IAAA,MAAM,IAAI,MAAM,yDAAyD,CAAA;AAAA,EAC3E;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA,IAAK,gBAAgB,CAAA,EAAG;AACvD,IAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,EAClF;AACA,EAAA,OAAO,EAAE,GAAA,EAAK,GAAA,EAAK,YAAA,EAAa;AAClC;AAEA,SAAS,gBAAA,CACP,IAAA,EACA,KAAA,EACA,QAAA,EACA,KACA,GAAA,EACA;AACA,EAAA,OAAO,MAAM,aAAA,CAAc,IAAA,EAAM,SAAS,QAAQ,CAAA,EAAG,KAAK,GAAG,CAAA;AAC/D;AAEA,SAAS,wBAAwB,WAAA,EAAoC;AACnE,EAAA,OAAO,WAAA,KAAgB,eAAe,UAAA,GAAa,YAAA;AACrD;AAEA,SAAS,MAAM,OAAA,EAAsB;AACnC,EAAA,MAAM,WAAA,GAAc,QAAQ,aAAA,CAAc,WAAA;AAC1C,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,OAAO,WAAA,CAAY,gBAAA,CAAiB,OAAO,CAAA,CAAE,SAAA,KAAc,KAAA;AAAA,EAC7D;AACA,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,aAAa,CAAA,KAAM,IAAA;AAC5C;AAEA,SAAS,4BAAA,CAA6B,QAAqB,SAAA,EAAmB;AAC5E,EAAA,IAAI,CAAC,OAAO,iBAAA,EAAmB;AAC/B,EAAA,IAAI;AACF,IAAA,MAAA,CAAO,kBAAkB,SAAS,CAAA;AAAA,EACpC,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,iBAAA,GAAoB,MAAA,CAAO,aAAA,CAAc,WAAA,EAAa,YAAA;AAC5D,IAAA,IACE,iBAAA,IACA,KAAA,YAAiB,iBAAA,IACjB,KAAA,CAAM,SAAS,eAAA,EACf;AAGA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAEO,IAAM,UAAA,GAAaL,UAAAA;AAAA,EACxB,SAAS8C,WAAAA,CACP;AAAA,IACE,MAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA;AAAA,IACA,UAAA,GAAa,KAAA;AAAA,IACb,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,aAAA,CAAc,cAAc,UAAU,CAAA;AACtC,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,SAAA,GAAY,kBAAkB,MAAM,CAAA;AAC1C,IAAA,MAAM,UAAA,GAAa,kBAAkB,OAAO,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,SAAA,GAAY,kBAAkB,MAAM,CAAA;AAC1C,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,aAAa,iCAAA,GAAoC,MAAA;AAAA,MACjD,gBAAA;AAAA,MACA,WAAW,+BAAA,GAAkC;AAAA,KAC/C,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AACX,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,YAAY,MAAA,GAAS,MAAA;AAAA,MACrB,gBAAA;AAAA,MACA,YAAY,MAAA,GAAS;AAAA,KACvB,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AACX,IAAA,MAAM,cAAc,GAAA,KAAQ,MAAA,GAAY,SAAA,CAAU,GAAA,EAAK,KAAK,CAAA,GAAI,MAAA;AAEhE,IAAA,MAAM,WAAA,GAAgC;AAAA,MACpC,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,MAChB,4BAAA,EAA8B,SAAA,CAAU,WAAA,EAAa,OAAO,CAAA;AAAA,MAC5D,0BAAA,EAA4B,SAAA,CAAU,SAAA,EAAW,OAAO,CAAA;AAAA,MACxD,gBAAA,EAAkB,UAAA;AAAA,MAClB,GAAI,WAAA,KAAgB,MAAA,GAAY,EAAE,GAAA,EAAK,WAAA,KAAgB,EAAC;AAAA,MACxD,GAAG;AAAA,KACL;AACA,IAAA,MAAM,SAAA,GAA2B;AAAA,MAC/B,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,MAChB,mBAAA,EAAqB,WAAA;AAAA,MACrB,GAAI,WAAA,KAAgB,MAAA,GAAY,EAAE,GAAA,EAAK,WAAA,KAAgB;AAAC,KAC1D;AAEA,IAAA,uBACE1C,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,kBAAA,EAAkB,aAAa,MAAA,GAAS,OAAA;AAAA,QACxC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,UAAA,IAAc,MAAM,KAAA,CAAM,cAAA;AAAA,UAC1B,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO,WAAA;AAAA,QAEN,QAAA,EAAA;AAAA,UAAA,SAAA,mBACCC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,QAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,MAAM,CAAA;AAAA,cAC1D,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,0BAEJD,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,cACtD,KAAA,EAAO,SAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gBAAA,UAAA,mBACCC,GAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,YAAA,EAAY,YAAA;AAAA,oBACZ,WAAA,EAAU,SAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,OAAO,CAAA;AAAA,oBAC5D,KAAA,EAAO,MAAM,MAAA,CAAO,aAAA;AAAA,oBAEnB,QAAA,EAAA;AAAA;AAAA,iBACH,GACE,IAAA;AAAA,gCAEJA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,MAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,oBACtD,KAAA,EAAO,MAAM,MAAA,CAAO,UAAA;AAAA,oBAEnB;AAAA;AAAA,iBACH;AAAA,gBAEC,2BACCA,GAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,YAAA,EAAY,UAAA;AAAA,oBACZ,WAAA,EAAU,OAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,oBACxD,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,oBAEnB,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA,WACN;AAAA,UAEC,4BACCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,QAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,MAAM,CAAA;AAAA,cAC1D,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEO,IAAM,cAAA,GAAiBL,UAAAA;AAAA,EAC5B,SAAS+C,eAAAA,CACP;AAAA,IACE,EAAA,GAAK,KAAA;AAAA,IACL,UAAA,GAAa,KAAA;AAAA,IACb,QAAA,GAAW,IAAA;AAAA,IACX,OAAA,GAAU,SAAA;AAAA,IACV,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,aAAA,CAAc,cAAc,UAAU,CAAA;AACtC,IAAA,aAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,SAAA,GAAY,EAAA;AAElB,IAAA,uBACE1C,GAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,aAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,iBAAA,EAAiB,aAAa,MAAA,GAAS,OAAA;AAAA,QACvC,cAAA,EAAc,OAAA;AAAA,QACd,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,UAAA,IAAc,MAAM,KAAA,CAAM,oBAAA;AAAA,UAC1B,QAAA,IAAY,MAAM,KAAA,CAAM,kBAAA;AAAA,UACxB,OAAA,KAAY,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,eAAA;AAAA,UACnC,OAAA,KAAY,MAAA,IAAU,KAAA,CAAM,KAAA,CAAM,cAAA;AAAA,UAClC,OAAA,KAAY,aAAA,IAAiB,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,UACzC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEO,IAAM,sBAAA,GAAyBL,UAAAA,CAGpC,SAASgD,uBAAAA,CACT;AAAA,EACE,WAAA,GAAc,YAAA;AAAA,EACd,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,iBAAA,CAAkB,WAAW,CAAA;AAC7B,EAAA,aAAA,CAAc,aAAa,SAAS,CAAA;AACpC,EAAA,aAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,EAAA,MAAM,cAAc,OAAA,KAAY,MAAA,GAAY,MAAA,GAAY,aAAA,CAAc,WAAW,OAAO,CAAA;AACxF,EAAA,MAAM,cAAc,OAAA,KAAY,MAAA,GAAY,MAAA,GAAY,aAAA,CAAc,WAAW,OAAO,CAAA;AACxF,EAAA,IACE,WAAA,KAAgB,MAAA,IAChB,WAAA,KAAgB,MAAA,IAChB,cAAc,WAAA,EACd;AACA,IAAA,MAAM,IAAI,MAAM,yDAAyD,CAAA;AAAA,EAC3E;AACA,EAAA,MAAM,YAAA,GACJ,IAAA,KAAS,MAAA,GACL,MAAA,GACA,KAAA;AAAA,IACE,aAAA,CAAc,QAAQ,IAAI,CAAA;AAAA,IAC1B,WAAA,IAAe,CAAA;AAAA,IACf,WAAA,IAAe;AAAA,GACjB;AACN,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,MAAA;AAC5C,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,aAAA,GAAgB,SAAS,QAAA,CAAS,YAAA;AACxC,EAAA,IACE,SAAA,KACC,OAAO,aAAA,KAAkB,QAAA,IAAY,cAAc,IAAA,EAAK,CAAE,WAAW,CAAA,CAAA,EACtE;AACA,IAAA,MAAM,IAAI,UAAU,0DAA0D,CAAA;AAAA,EAChF;AACA,EAAA,MAAM,WAAA,GAAc,aAAa,CAAC,QAAA;AAClC,EAAA,MAAM,oBAAA,GAAuB,wBAAwB,WAAW,CAAA;AAEhE,EAAA,uBACE3C,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,WAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,sBAAA;AAAA,MACvB,WAAA,EAAU,QAAA;AAAA,MACV,kBAAA,EAAkB,WAAA;AAAA,MAClB,YAAA,EAAY,WAAA,GAAc,SAAA,GAAY,QAAA,GAAW,UAAA,GAAa,QAAA;AAAA,MAC9D,IAAA,EAAM,YAAY,WAAA,GAAc,MAAA;AAAA,MAChC,YAAA,EAAY,YAAY,aAAA,GAAgB,MAAA;AAAA,MACxC,kBAAA,EAAkB,YAAY,oBAAA,GAAuB,MAAA;AAAA,MACrD,eAAA,EAAe,YAAY,WAAA,GAAc,MAAA;AAAA,MACzC,eAAA,EAAe,YAAY,WAAA,GAAc,MAAA;AAAA,MACzC,eAAA,EAAe,YAAY,YAAA,GAAe,MAAA;AAAA,MAC1C,eAAA,EAAe,SAAA,IAAa,QAAA,GAAW,IAAA,GAAO,MAAA;AAAA,MAC9C,QAAA,EAAU,WAAA,GAAc,QAAA,IAAY,CAAA,GAAI,MAAA;AAAA,MACxC,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,kBAAA;AAAA,QACZ,gBAAgB,YAAA,GACZ,KAAA,CAAM,KAAA,CAAM,4BAAA,GACZ,MAAM,KAAA,CAAM,0BAAA;AAAA,QAChB,CAAC,WAAA,IAAe,KAAA,CAAM,KAAA,CAAM,0BAAA;AAAA,QAC5B,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,kBAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,kBAAAA,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,WAAA,EAAU,WAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,MAAM,KAAA,CAAM,2BAAA;AAAA,YACZ,WAAA,KAAgB,eAAe,UAAA,GAAa,UAAA;AAAA,YAC5C,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,eAAA,GAAkBL,UAAAA;AAAA,EAC7B,SAASiD,gBAAAA,CACP;AAAA,IACE,WAAA,GAAc,YAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,QAAA,GAAW,KAAA;AAAA,IACX,IAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,iBAAA,CAAkB,WAAW,CAAA;AAC7B,IAAA,aAAA,CAAc,aAAa,SAAS,CAAA;AACpC,IAAA,aAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,SAAS,kBAAA,CAAmB,EAAE,OAAA,EAAS,OAAA,EAAS,cAAc,CAAA;AACpE,IAAA,MAAM,WAAA,GAAc,gBAAA;AAAA,MAClB,aAAA;AAAA,MACA,WAAA;AAAA,MACA,kBAAA;AAAA,MACA,MAAA,CAAO,GAAA;AAAA,MACP,MAAA,CAAO;AAAA,KACT;AACA,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI/C,SAAS,WAAW,CAAA;AACpE,IAAA,MAAM,OAAA,GAAUS,OAA8B,IAAI,CAAA;AAClD,IAAA,MAAM,UAAA,GAAaA,OAA4B,IAAI,CAAA;AACnD,IAAA,MAAM,aAAa,IAAA,KAAS,MAAA;AAC5B,IAAA,MAAM,WAAA,GAAc,aAAa,CAAC,QAAA;AAClC,IAAA,MAAM,YAAA,GAAe,gBAAA;AAAA,MACnB,MAAA;AAAA,MACA,aAAa,IAAA,GAAO,gBAAA;AAAA,MACpB,WAAA;AAAA,MACA,MAAA,CAAO,GAAA;AAAA,MACP,MAAA,CAAO;AAAA,KACT;AACA,IAAA,MAAM,iBAAA,GAAoB,UAAA,CAAW,GAAA,IAAO,mBAAA,CAAoB,GAAA;AAEhE,IAAA,MAAM,UAAA,GAAaE,WAAAA;AAAA,MACjB,CAAC,IAAA,KAAgC;AAC/B,QAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,CAAC,GAAG;AAAA,KACN;AAEA,IAAA,MAAM,UAAA,GAAaA,WAAAA;AAAA,MACjB,CAAC,QAAA,KAAqB;AACpB,QAAA,MAAM,cAAc,KAAA,CAAM,QAAA,EAAU,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA;AAC1D,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,mBAAA,CAAoB,WAAW,CAAA;AAAA,QACjC;AACA,QAAA,YAAA,GAAe,WAAW,CAAA;AAAA,MAC5B,CAAA;AAAA,MACA,CAAC,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,YAAY,YAAY;AAAA,KACnD;AAEA,IAAA,MAAM,iBAAA,GAAoBA,WAAAA;AAAA,MACxB,CAAC,KAAA,KAAqD;AACpD,QAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM;AACX,QAAA,MAAM,IAAA,GAAO,KAAK,qBAAA,EAAsB;AACxC,QAAA,MAAM,KAAA,GAAQ,WAAA,KAAgB,YAAA,GAAe,IAAA,CAAK,QAAQ,IAAA,CAAK,MAAA;AAC/D,QAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,SAAS,CAAA,EAAG;AAC3C,QAAA,MAAM,SACJ,WAAA,KAAgB,YAAA,GACZ,KAAA,CAAM,IAAI,IACR,IAAA,CAAK,KAAA,GAAQ,KAAA,CAAM,OAAA,GACnB,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,GACvB,KAAA,CAAM,UAAU,IAAA,CAAK,GAAA;AAC3B,QAAA,UAAA,CAAY,MAAA,GAAS,QAAS,GAAG,CAAA;AAAA,MACnC,CAAA;AAAA,MACA,CAAC,YAAY,WAAW;AAAA,KAC1B;AAEA,IAAA,MAAM,UAAA,GAAaA,YAAY,MAAM;AACnC,MAAA,MAAM,UAAU,UAAA,CAAW,OAAA;AAC3B,MAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA,EAAG,EAAE,CAAA;AAEL,IAAAV,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,aAAa,UAAA,EAAW;AAC7B,MAAA,OAAO,UAAA;AAAA,IACT,CAAA,EAAG,CAAC,WAAA,EAAa,UAAU,CAAC,CAAA;AAE5B,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAA6C;AACtE,MAAA,IAAI,CAAC,WAAA,IAAgB,KAAA,CAAM,WAAW,CAAA,IAAK,KAAA,CAAM,gBAAgB,OAAA,EAAU;AACzE,QAAA;AAAA,MACF;AACA,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,UAAA,EAAW;AACX,MAAA,iBAAA,CAAkB,KAAK,CAAA;AAEvB,MAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AACxB,MAAA,MAAM,SAAS,KAAA,CAAM,aAAA;AACrB,MAAA,MAAM,gBAAgB,MAAA,CAAO,aAAA;AAE7B,MAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAA4B;AAC9C,QAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,QAAA,iBAAA,CAAkB,SAAS,CAAA;AAAA,MAC7B,CAAA;AACA,MAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAA4B;AAC9C,QAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,QAAA,UAAA,EAAW;AAAA,MACb,CAAA;AACA,MAAA,MAAM,iBAAA,GAAoB,CAAC,SAAA,KAA4B;AACrD,QAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,QAAA,UAAA,EAAW;AAAA,MACb,CAAA;AAEA,MAAA,aAAA,CAAc,gBAAA,CAAiB,eAAe,UAAU,CAAA;AACxD,MAAA,aAAA,CAAc,gBAAA,CAAiB,aAAa,UAAU,CAAA;AACtD,MAAA,aAAA,CAAc,gBAAA,CAAiB,iBAAiB,UAAU,CAAA;AAC1D,MAAA,MAAA,CAAO,gBAAA,CAAiB,sBAAsB,iBAAiB,CAAA;AAC/D,MAAA,UAAA,CAAW,UAAU,MAAM;AACzB,QAAA,aAAA,CAAc,mBAAA,CAAoB,eAAe,UAAU,CAAA;AAC3D,QAAA,aAAA,CAAc,mBAAA,CAAoB,aAAa,UAAU,CAAA;AACzD,QAAA,aAAA,CAAc,mBAAA,CAAoB,iBAAiB,UAAU,CAAA;AAC7D,QAAA,MAAA,CAAO,mBAAA,CAAoB,sBAAsB,iBAAiB,CAAA;AAClE,QAAA,IAAI,MAAA,CAAO,iBAAA,GAAoB,SAAS,CAAA,EAAG;AACzC,UAAA,MAAA,CAAO,wBAAwB,SAAS,CAAA;AAAA,QAC1C;AAAA,MACF,CAAA;AACA,MAAA,4BAAA,CAA6B,QAAQ,SAAS,CAAA;AAAA,IAChD,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyC;AAC9D,MAAA,IAAI,CAAC,WAAA,EAAa;AAClB,MAAA,MAAM,OAAO,KAAA,CAAM,QAAA,GAAW,MAAA,CAAO,YAAA,GAAe,IAAI,MAAA,CAAO,YAAA;AAC/D,MAAA,MAAM,GAAA,GAAM,WAAA,KAAgB,YAAA,IAAgB,KAAA,CAAM,MAAM,aAAa,CAAA;AACrE,MAAA,IAAI,QAAA;AAEJ,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,MAAA,EAAQ,QAAA,GAAW,MAAA,CAAO,GAAA;AAC5C,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,EAAO,QAAA,GAAW,MAAA,CAAO,GAAA;AAC3C,MAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,KAAA,CAAM,GAAA,KAAQ,WAAA,EAAa;AAC7D,QAAA,QAAA,GAAW,YAAA,IAAgB,GAAA,GAAM,IAAA,GAAO,CAAC,IAAA,CAAA;AAAA,MAC3C;AACA,MAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,KAAA,CAAM,GAAA,KAAQ,YAAA,EAAc;AAC9D,QAAA,QAAA,GAAW,YAAA,IAAgB,GAAA,GAAM,CAAC,IAAA,GAAO,IAAA,CAAA;AAAA,MAC3C;AACA,MAAA,IAAI,WAAA,KAAgB,UAAA,IAAc,KAAA,CAAM,GAAA,KAAQ,SAAA,EAAW;AACzD,QAAA,QAAA,GAAW,YAAA,GAAe,IAAA;AAAA,MAC5B;AACA,MAAA,IAAI,WAAA,KAAgB,UAAA,IAAc,KAAA,CAAM,GAAA,KAAQ,WAAA,EAAa;AAC3D,QAAA,QAAA,GAAW,YAAA,GAAe,IAAA;AAAA,MAC5B;AAEA,MAAA,IAAI,aAAa,MAAA,EAAW;AAC5B,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,UAAA,CAAW,QAAQ,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,MAAM,cAAc,GAAA,KAAQ,MAAA,GAAY,SAAA,CAAU,GAAA,EAAK,KAAK,CAAA,GAAI,MAAA;AAChE,IAAA,MAAM,WAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,8BAAA,GAAiC,MAAA;AAC/D,IAAA,MAAM,iBAAA,GACJ,WAAA,KAAgB,MAAA,GACZ,WAAA,KAAgB,YAAA,GACd,EAAE,KAAA,EAAO,8BAAA,EAA+B,GACxC,EAAE,MAAA,EAAQ,8BAAA,EAA+B,GAC3C,MAAA;AACN,IAAA,MAAM,UAAA,GAA+B;AAAA,MACnC,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,MAChB,CAAC,WAAA,KAAgB,YAAA,GAAe,qBAAA,GAAwB,kBAAkB,GACxE,SAAA,GACI,CAAA,EAAG,YAAY,CAAA,EAAA,EAAK,WAAW,CAAA,eAAA,CAAA,GAC/B,GAAG,YAAY,CAAA,gBAAA,CAAA;AAAA,MACrB,GAAI,SAAA,GAAY,EAAE,GAAA,EAAK,CAAA,KAAM,EAAC;AAAA,MAC9B,GAAI,gBAAgB,MAAA,GAChB;AAAA,QACE,yBAAA,EAA2B,WAAA;AAAA,QAC3B,GAAI,SAAA,GAAY,EAAC,GAAI,EAAE,KAAK,WAAA;AAAY,UAE1C,EAAC;AAAA,MACL,GAAG;AAAA,KACL;AAEA,IAAA,uBACEC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA,EAAK,UAAA;AAAA,QACL,wBAAA,EAAuB,cAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,kBAAA,EAAkB,WAAA;AAAA,QAClB,YAAA,EAAY,WAAA,GAAc,SAAA,GAAY,QAAA,GAAW,UAAA,GAAa,QAAA;AAAA,QAC9D,iBAAA,EAAiB,aAAa,MAAA,GAAS,OAAA;AAAA,QACvC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,eAAA;AAAA,UACZ,gBAAgB,YAAA,GACZ,KAAA,CAAM,KAAA,CAAM,qBAAA,GACZ,MAAM,KAAA,CAAM,mBAAA;AAAA,UAChB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO,UAAA;AAAA,QAEP,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,eAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,kBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,eAAA;AAAA,cAEnB,QAAA,EAAA,iBAAA,CAAkB,OAAO,CAAA,GAAI,OAAA,GAAU;AAAA;AAAA,WAC1C;AAAA,UAEC,4BACCA,GAAAA;AAAA,YAAC,sBAAA;AAAA,YAAA;AAAA,cACC,WAAA;AAAA,cACA,SAAA,EAAS,IAAA;AAAA,cACT,QAAA;AAAA,cACA,IAAA,EAAM,YAAA;AAAA,cACN,SAAS,MAAA,CAAO,GAAA;AAAA,cAChB,SAAS,MAAA,CAAO,GAAA;AAAA,cAChB,KAAA,EAAO,WAAA;AAAA,cACP,UAAA;AAAA,cACA,GAAA,EAAK,iBAAA;AAAA,cACL,WAAW,UAAA,EAAY,MAAA;AAAA,cACvB,KAAA,EAAO,iBAAA;AAAA,cACP,aAAA,EAAe,iBAAA;AAAA,cACf,SAAA,EAAW;AAAA;AAAA,WACb,GACE,IAAA;AAAA,0BAEJA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,WAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,eAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,oBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,eAAA;AAAA,cAEnB,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;ACtqBA,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAU,EAA2B;AACjE,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,SAAA,EAAU,YAAA;AAAA,YACV,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY;AAAA;AAAA,SACd;AAAA,wBACAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,YAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,gBAAA,GAAmBL,UAAAA,CAG9B,SAASkD,iBAAAA,CACT;AAAA,EACE,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,aAAa,QAAA,GAAW,QAAA;AAAA,EACxB,aAAa,QAAA,GAAW,IAAA;AAAA,EACxB,YAAA,EAAc,eAAA;AAAA,EACd,iBAAA,EAAmB,oBAAA;AAAA,EACnB,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,eAAA,GAAkB,0BAAyB,CAAE,OAAA;AACnD,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,YAAA,GACJ,IAAA,KAAS,MAAA,mBACP7C,GAAAA,CAAC,sBAAmB,SAAA,EAAW,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,CAAA,GAE3D,IAAA;AAEJ,EAAA,MAAM,iBAAA,GACJ,eAAA,KACC,oBAAA,KAAyB,MAAA,GAAY,gBAAgB,OAAA,GAAU,MAAA,CAAA;AAElE,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAW,QAAA;AAAA,MACX,WAAA,EAAW,QAAA;AAAA,MACX,YAAA,EAAY,iBAAA;AAAA,MACZ,iBAAA,EAAiB,oBAAA;AAAA,MACjB,wBAAA,EAAuB,eAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAW,SAAA;AAAA,MACX,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,SAAA,EAAW,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MAChE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,YAAY,oBAC7BC,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,MAAA;AAAA,YACV,YAAA,EAAW,SAAA;AAAA,YACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,YACrD,KAAA,EAAO,MAAM,MAAA,CAAO,SAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,KAAK,CAAA,mBACtBA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,OAAA;AAAA,YACV,YAAA,EAAW,SAAA;AAAA,YACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,YAEtD,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,aAAA;AAAA,YACV,YAAA,EAAW,SAAA;AAAA,YACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,WAAW,CAAA;AAAA,YAElE,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,SAAA;AAAA,YACV,YAAA,EAAW,SAAA;AAAA,YACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,OAAO,CAAA;AAAA,YAE1D,QAAA,EAAA;AAAA;AAAA,SACH,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;ACpHM,IAAM,QAAA,GAAWL,UAAAA;AAAA,EACtB,SAASmD,SAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,IAAA,GAAO,SAAA;AAAA,IACP,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,uBACE9C,GAAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,MAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,QAAA;AAAA,UACZ,wBAAA,CAAyB,OAAO,IAAI,CAAA;AAAA,UACpC,8BAAA,CAA+B,OAAO,IAAI,CAAA;AAAA,UAC1C,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AC3CO,IAAM,QAAA,GAAWL,UAAAA,CAGtB,SAASoD,SAAAA,CACT;AAAA,EACE,OAAA,GAAU,KAAA;AAAA,EACV,MAAA,GAAS,MAAA;AAAA,EACT,OAAA,GAAU,SAAA;AAAA,EACV,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,GAAG,mBAAA;AAAA,IACH,GAAG,SAAA;AAAA,IACH,wBAAA,EAA0B,MAAA;AAAA,IAC1B,WAAA,EAAa,MAAA;AAAA,IACb,gBAAA,EAAkB,UAAU,SAAA,GAAY,WAAA;AAAA,IACxC,aAAA,EAAe,MAAA;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB,SAAA,EAAW,EAAA;AAAA,MACT,MAAM,KAAA,CAAM,QAAA;AAAA,MACZ,2BAAA,CAA4B,OAAO,OAAO,CAAA;AAAA,MAC1C,MAAA,KAAW,MAAA,IAAU,0BAAA,CAA2B,KAAA,EAAO,MAAM,CAAA;AAAA,MAC7D,UAAA,EAAY,IAAA;AAAA,MACZ;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,MAChB,GAAG;AAAA,KACL;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO,OAAA,mBACL/C,GAAAA,CAAC,IAAA,EAAA,EAAI,GAAG,WAAA,EAAa,GAAA,EAAmC,CAAA,mBAExDA,GAAAA,CAAC,IAAA,EAAA,EAAI,GAAG,aAAa,GAAA,EAAmC,CAAA;AAE5D,CAAC;AAEM,IAAM,YAAA,GAAeL,UAAAA;AAAA,EAC1B,SAASqD,aAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,uBACEhD,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,WAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,QAAA,EAAU,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAC/D,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AC7EA,IAAM,mBAAA,GAAsB,GAAA;AAE5B,SAAS,wBAAA,CAAyB;AAAA,EAChC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAUG;AACD,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,IAC1B,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,kBAAkB,cAAc;AAAA,GACnC,EAAY;AACV,IAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAClE;AAAA,EACF;AACA,EAAA,IAAI,WAAA,KAAgB,MAAA,IAAa,OAAO,WAAA,KAAgB,QAAA,EAAU;AAChE,IAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,EACrE;AACA,EAAA,IAAI,YAAY,MAAA,IAAa,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpD,IAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,EACjE;AACA,EAAA,OAAA,EAAS,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAClC,IAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AACzC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,mCAAmC,KAAK,CAAA,mBAAA;AAAA,OAC1C;AAAA,IACF;AACA,IAAA,IAAI,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,EAAU;AACpC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,yCAAyC,KAAK,CAAA,kBAAA;AAAA,OAChD;AAAA,IACF;AACA,IAAA,IACE,OAAO,QAAA,KAAa,MAAA,IACpB,OAAO,MAAA,CAAO,aAAa,SAAA,EAC3B;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,4CAA4C,KAAK,CAAA,mBAAA;AAAA,OACnD;AAAA,IACF;AACA,IAAA,IACE,OAAO,SAAA,KAAc,MAAA,IACrB,OAAO,MAAA,CAAO,cAAc,QAAA,EAC5B;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,6CAA6C,KAAK,CAAA,kBAAA;AAAA,OACpD;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,MAAM,CAAA,IAAK;AAAA,IAC3B,CAAC,SAAS,KAAK,CAAA;AAAA,IACf,CAAC,gBAAgB,YAAY;AAAA,GAC/B,EAAY;AACV,IAAA,IAAI,WAAW,MAAA,IAAa,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClD,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,kBAAA,CAAoB,CAAA;AAAA,IACjE;AACA,IAAA,MAAA,EAAQ,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC/B,MAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,QAAA,MAAM,IAAI,SAAA;AAAA,UACR,CAAA,gBAAA,EAAmB,IAAI,CAAA,eAAA,EAAkB,KAAK,CAAA,kBAAA;AAAA,SAChD;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,gBAAgB,MAAA,EAAuC;AAC9D,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,MAAA,EAAQ,OAAA,CAAQ,CAAC,KAAA,KAAU;AACzB,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACrB,IAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,IAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,EACvB,CAAC,CAAA;AAED,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,mBAAA,CACP,OAAA,EACA,YAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,MAAA,EAAQ,OAAO,EAAA;AAC5B,EAAA,MAAM,aAAa,YAAA,IAAgB,CAAA,GAAI,YAAA,GAAe,SAAA,KAAc,IAAI,EAAA,GAAK,CAAA;AAE7E,EAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,OAAA,CAAQ,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,MAAM,aACH,UAAA,GAAa,MAAA,GAAS,SAAA,GAAY,OAAA,CAAQ,UAAU,OAAA,CAAQ,MAAA;AAC/D,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAS,CAAA,EAAG,UAAU,OAAO,SAAA;AAAA,EAC5C;AAEA,EAAA,OAAO,EAAA;AACT;AAEA,SAAS,uBAAA,CACP,SACA,QAAA,EACA;AACA,EAAA,IAAI,aAAa,OAAA,EAAS;AACxB,IAAA,OAAO,QAAQ,SAAA,CAAU,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AAAA,EACvD;AACA,EAAA,KAAA,IAAS,QAAQ,OAAA,CAAQ,MAAA,GAAS,GAAG,KAAA,IAAS,CAAA,EAAG,SAAS,CAAA,EAAG;AAC3D,IAAA,IAAI,CAAC,OAAA,CAAQ,KAAK,CAAA,EAAG,UAAU,OAAO,KAAA;AAAA,EACxC;AACA,EAAA,OAAO,EAAA;AACT;AAEA,SAAS,eAAA,CAAgB,aAAiC,KAAA,EAAe;AACvE,EAAA,IAAI,gBAAgB,MAAA,IAAa,CAAC,OAAO,QAAA,CAAS,WAAW,GAAG,OAAO,KAAA;AACvE,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,OAAO,IAAA,CAAK,KAAA,CAAM,WAAW,CAAC,CAAC,CAAA;AAC7D;AAEA,SAAS,cAAc,MAAA,EAA+B;AACpD,EAAA,IAAI,MAAA,CAAO,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAA;AAClD,EAAA,IAAI,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,SAAiB,MAAA,CAAO,KAAA;AACpD,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB;AAEA,SAASiD,SAAQ,KAAA,EAAe;AAC9B,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,GAAG,CAAA;AAC7C;AAEO,IAAM,eAAA,GAAkBtD,UAAAA;AAAA,EAC7B,SAASuD,gBAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,cAAA,GAAiB,KAAA;AAAA,IACjB,WAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,YAAA,EAAc,eAAA;AAAA,IACd,iBAAA,EAAmB,oBAAA;AAAA,IACnB,kBAAA,EAAoB,qBAAA;AAAA,IACpB,mBAAA,EAAqB,sBAAA;AAAA,IACrB,aAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,wBAAA,CAAyB;AAAA,MACvB,OAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,WAAA;AAC5C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cAAcrB,KAAAA,EAAM;AAC1B,IAAA,MAAM,gBAAgB,EAAA,IAAM,WAAA;AAC5B,IAAA,MAAM,SAAA,GAAY,GAAG,aAAa,CAAA,QAAA,CAAA;AAClC,IAAA,MAAM,SAAA,GAAY,GAAG,aAAa,CAAA,QAAA,CAAA;AAClC,IAAA,MAAM,OAAA,GAAUvB,OAA8B,IAAI,CAAA;AAClD,IAAA,MAAM,UAAA,GAAaA,OAA8B,IAAI,CAAA;AACrD,IAAA,MAAM,YAAA,GAAeA,OAAO,KAAK,CAAA;AACjC,IAAA,MAAM,kBAAA,GAAqBA,OAAO,EAAE,CAAA;AACpC,IAAA,MAAM,iBAAA,GAAoBA,OAGhB,IAAI,CAAA;AACd,IAAA,MAAM,UAAA,GAAa,WAAW,EAAC;AAC/B,IAAA,MAAM,YAAY,UAAA,CAAW,GAAA;AAAA,MAC3B,CAAC,MAAA,EAAQ,KAAA,KACP,CAAA,EAAG,aAAa,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA,EAAI2C,QAAAA,CAAQ,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,KAC7D;AACA,IAAA,MAAM,SAAA,GAAY,cAAA;AAClB,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIpD,SAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,OAAO,SAAA,IAAa,gBAAA;AAC1B,IAAA,MAAM,sBAAA,GAAyBS,MAAAA,CAAO,eAAA,CAAgB,YAAY,CAAC,CAAA;AACnE,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIT,SAAS,MAAM;AAAA,MAC/D,GAAG,sBAAA,CAAuB;AAAA,KAC3B,CAAA;AACD,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,QAAAA;AAAA,MAAS,MAC7C,uBAAA,CAAwB,UAAA,EAAY,OAAO;AAAA,KAC7C;AACA,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,cAAA,GAAiBiC,OAAAA;AAAA,MACrB,MAAM,eAAA,CAAgB,YAAA,GAAe,KAAA,GAAQ,iBAAiB,CAAA;AAAA,MAC9D,CAAC,YAAA,EAAc,iBAAA,EAAmB,KAAK;AAAA,KACzC;AACA,IAAA,MAAM,gBAAA,GAAmBA,OAAAA;AAAA,MACvB,MAAM,IAAI,GAAA,CAAI,cAAc,CAAA;AAAA,MAC5B,CAAC,cAAc;AAAA,KACjB;AACA,IAAA,MAAM,aAAA,GAAgBA,QAAQ,MAAM;AAClC,MAAA,MAAM,GAAA,uBAAU,GAAA,EAAmC;AACnD,MAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC7B,QAAA,IAAI,CAAC,GAAA,CAAI,GAAA,CAAI,MAAA,CAAO,KAAK,GAAG,GAAA,CAAI,GAAA,CAAI,MAAA,CAAO,KAAA,EAAO,MAAM,CAAA;AAAA,MAC1D,CAAC,CAAA;AACD,MAAA,OAAO,GAAA;AAAA,IACT,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AACf,IAAA,MAAM,eAAA,GAAkBA,OAAAA;AAAA,MACtB,MACE,eACG,GAAA,CAAI,CAAC,kBAAkB,aAAA,CAAc,GAAA,CAAI,aAAa,CAAC,CAAA,CACvD,MAAA;AAAA,QACC,CAAC,WAA4C,MAAA,KAAW;AAAA,OAC1D;AAAA,MACJ,CAAC,eAAe,cAAc;AAAA,KAChC;AACA,IAAA,MAAM,iBAAA,GAAoB,uBAAA,CAAwB,UAAA,EAAY,OAAO,CAAA;AACrE,IAAA,MAAM,mBAAA,GACJ,eAAe,CAAA,IAAK,CAAC,WAAW,WAAW,CAAA,EAAG,WAC1C,WAAA,GACA,iBAAA;AACN,IAAA,MAAM,eAAA,GAAkB,eAAA;AAAA,MACtB,WAAA;AAAA,MACA,eAAA,CAAgB;AAAA,KAClB;AACA,IAAA,MAAM,cAAA,GAAiB,eAAA,CAAgB,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,eAAA,CAAgB,MAAA,GAAS,cAAA,CAAe,MAAA;AAC9D,IAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAA,KAAW,CAAA;AACjD,IAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,GAAA,IAAO,mBAAA,CAAoB,GAAA;AAC5D,IAAA,MAAM,YAAY,QAAA,GACd,UAAA,GACA,OAAA,GACE,SAAA,GACA,OACE,MAAA,GACA,QAAA;AAER,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAgC;AAClD,MAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,MAAA,IAAI,OAAO,GAAA,KAAQ,UAAA,EAAY,GAAA,CAAI,IAAI,CAAA;AAAA,WAAA,IAC9B,GAAA,MAAS,OAAA,GAAU,IAAA;AAAA,IAC9B,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAC,QAAA,KAAsB;AACrC,MAAA,IAAI,YAAY,SAAA,EAAW;AAC3B,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,MAAA,IAAI,QAAA,IAAY,sBAAsB,CAAA,EAAG;AACvC,QAAA,cAAA,CAAe,iBAAiB,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAyB;AAC7C,MAAA,MAAM,gBAAA,GAAmB,gBAAgB,UAAU,CAAA;AACnD,MAAA,IAAI,CAAC,YAAA,EAAc,oBAAA,CAAqB,gBAAgB,CAAA;AACxD,MAAA,aAAA,GAAgB,gBAAgB,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAA8C;AAClE,MAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,QAAA,IAAY,QAAA,EAAU;AAC5C,MAAA,MAAM,aAAa,gBAAA,CAAiB,GAAA,CAAI,OAAO,KAAK,CAAA,GAChD,eAAe,MAAA,CAAO,CAAC,aAAA,KAAkB,aAAA,KAAkB,OAAO,KAAK,CAAA,GACvE,CAAC,GAAG,cAAA,EAAgB,OAAO,KAAK,CAAA;AACpC,MAAA,YAAA,CAAa,UAAU,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAkC;AACtD,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,YAAA;AAAA,QACE,eAAe,MAAA,CAAO,CAAC,aAAA,KAAkB,aAAA,KAAkB,OAAO,KAAK;AAAA,OACzE;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAAsB;AACxC,MAAA,IAAI,SAAA,GAAY,CAAA,IAAK,UAAA,CAAW,SAAS,GAAG,QAAA,EAAU;AACtD,MAAA,cAAA,CAAe,SAAS,CAAA;AACxB,MAAA,IAAI,CAAC,IAAA,EAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,CACtB,KAAA,EACA,SAAA,KACG;AACH,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,aAAA,CAAc,aAAA,CAAc,WAAA;AACtD,MAAA,IAAI,CAAC,WAAA,EAAa;AAClB,MAAA,MAAM,aAAa,CAAA,EAAG,kBAAA,CAAmB,OAAO,CAAA,EAAG,SAAS,GAAG,iBAAA,EAAkB;AACjF,MAAA,kBAAA,CAAmB,OAAA,GAAU,UAAA;AAC7B,MAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,QAAA,iBAAA,CAAkB,QAAQ,WAAA,CAAY,YAAA;AAAA,UACpC,kBAAkB,OAAA,CAAQ;AAAA,SAC5B;AAAA,MACF;AACA,MAAA,iBAAA,CAAkB,OAAA,GAAU;AAAA,QAC1B,WAAA;AAAA,QACA,OAAA,EAAS,WAAA,CAAY,UAAA,CAAW,MAAM;AACpC,UAAA,kBAAA,CAAmB,OAAA,GAAU,EAAA;AAC7B,UAAA,iBAAA,CAAkB,OAAA,GAAU,IAAA;AAAA,QAC9B,GAAG,mBAAmB;AAAA,OACxB;AACA,MAAA,MAAM,iBAAA,GAAoB,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CAAE,KAAA;AAAA,QAC/C,CAAC,eAAA,KAAoB,eAAA,KAAoB,UAAA,CAAW,CAAC;AAAA,OACvD;AACA,MAAA,MAAM,KAAA,GAAQ,iBAAA,GAAoB,SAAA,CAAU,iBAAA,EAAkB,GAAI,UAAA;AAClE,MAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,UAAA,CAAW,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC7D,QAAA,MAAM,KAAA,GAAA,CACH,mBAAA,GAAsB,MAAA,GAAS,UAAA,CAAW,UAAU,UAAA,CAAW,MAAA;AAClE,QAAA,MAAM,MAAA,GAAS,WAAW,KAAK,CAAA;AAC/B,QAAA,IACE,CAAC,MAAA,EAAQ,QAAA,IACT,aAAA,CAAc,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,iBAAA,EAAkB,CAAE,UAAA,CAAW,KAAK,CAAA,EACjE;AACA,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyC;AAC9D,MAAA,IAAI,QAAA,IAAY,YAAA,CAAa,OAAA,IAAW,KAAA,CAAM,YAAY,WAAA,EAAa;AACrE,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,KAAA,CAAM,QAAQ,SAAA,EAAW;AACxD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,cAAA,CAAe,iBAAiB,CAAA;AAChC,UAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,QACd,CAAA,MAAO;AACL,UAAA,UAAA;AAAA,YACE,mBAAA;AAAA,cACE,UAAA;AAAA,cACA,mBAAA;AAAA,cACA,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,CAAA,GAAI;AAAA;AAClC,WACF;AAAA,QACF;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,MAAA,IAAU,KAAA,CAAM,QAAQ,KAAA,EAAO;AAC/C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,UAAA;AAAA,UACE,uBAAA;AAAA,YACE,UAAA;AAAA,YACA,KAAA,CAAM,GAAA,KAAQ,MAAA,GAAS,OAAA,GAAU;AAAA;AACnC,SACF;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,aAClB,YAAA,CAAa,UAAA,CAAW,mBAAmB,CAAC,CAAA;AACjD,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,QAAA,IAAY,IAAA,EAAM;AAClC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA,CAAQ,KAAK,CAAA;AACb,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,IAAS,IAAA,EAAM;AAC/B,QAAA,OAAA,CAAQ,KAAK,CAAA;AACb,QAAA;AAAA,MACF;AAEA,MAAA,IACE,MAAM,GAAA,CAAI,MAAA,KAAW,KACrB,CAAC,KAAA,CAAM,WACP,CAAC,KAAA,CAAM,OAAA,IACP,CAAC,MAAM,MAAA,IACP,CAAC,KAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,EACpB;AACA,QAAA,eAAA,CAAgB,KAAA,EAAO,MAAM,GAAG,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAAhC,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,IAAA,IAAQ,SAAA,EAAW,OAAO,MAAA;AAC/B,MAAA,MAAM,aAAA,GAAgB,QAAQ,OAAA,EAAS,aAAA;AACvC,MAAA,IAAI,CAAC,eAAe,OAAO,MAAA;AAC3B,MAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,QAAA,IAAI,CAAC,OAAA,CAAQ,OAAA,EAAS,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AACpD,UAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAA;AACA,MAAA,aAAA,CAAc,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC/D,MAAA,OAAO,MAAM,aAAA,CAAc,mBAAA,CAAoB,aAAA,EAAe,iBAAiB,CAAA;AAAA,IACjF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAI,CAAC,CAAA;AAEpB,IAAAA,UAAU,MAAM;AACd,MAAA,IAAI,cAAc,OAAO,MAAA;AACzB,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,EAAS,OAAA,CAAQ,MAAM,CAAA;AAC5C,MAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,MAAA,MAAM,cAAc,MAAM;AACxB,QAAA,oBAAA,CAAqB,CAAC,GAAG,sBAAA,CAAuB,OAAO,CAAC,CAAA;AACxD,QAAA,cAAA,CAAe,uBAAA,CAAwB,UAAA,EAAY,OAAO,CAAC,CAAA;AAC3D,QAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,CAAoB,KAAK,CAAA;AAAA,MAC3C,CAAA;AACA,MAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,WAAW,CAAA;AAC1C,MAAA,OAAO,MAAM,IAAA,CAAK,mBAAA,CAAoB,OAAA,EAAS,WAAW,CAAA;AAAA,IAC5D,CAAA,EAAG,CAAC,SAAA,EAAW,YAAA,EAAc,UAAU,CAAC,CAAA;AAExC,IAAAA,SAAAA;AAAA,MACE,MAAM,MAAM;AACV,QAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,UAAA,iBAAA,CAAkB,QAAQ,WAAA,CAAY,YAAA;AAAA,YACpC,kBAAkB,OAAA,CAAQ;AAAA,WAC5B;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,uBACEC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,EAAA;AAAA,QACA,GAAA,EAAK,UAAA;AAAA,QACL,GAAA,EAAK,cAAA;AAAA,QACL,wBAAA,EAAuB,cAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,SAAA;AAAA,QACZ,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,gBAAc,OAAA,IAAW,MAAA;AAAA,QACzB,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,kBAAA;AAAA,UACA,IAAA,IAAQ,MAAA;AAAA,UACR,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,UACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,0BACJA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,GAAA,EAAK,UAAA;AAAA,cACL,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,UAAA;AAAA,cACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,cAC1B,GAAA,EAAK,cAAA;AAAA,cACL,eAAA,EAAc,SAAA;AAAA,cACd,eAAA,EAAe,IAAA;AAAA,cACf,eAAA,EAAe,SAAA;AAAA,cACf,yBACE,IAAA,IAAQ,mBAAA,IAAuB,CAAA,GAC3B,SAAA,CAAU,mBAAmB,CAAA,GAC7B,MAAA;AAAA,cAEN,mBAAA,EAAkB,MAAA;AAAA,cAClB,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,cAC/C,YAAA,EAAY,eAAA;AAAA,cACZ,iBAAA,EAAiB,oBAAA;AAAA,cACjB,kBAAA,EAAkB,qBAAA;AAAA,cAClB,mBAAA,EAAmB,sBAAA;AAAA,cACnB,wBAAA,EAAuB,cAAA;AAAA,cACvB,WAAA,EAAU,SAAA;AAAA,cACV,YAAA,EAAY,SAAA;AAAA,cACZ,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,kFAAA;AAAA,gBACA,QAAA,IAAY,qBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAa,CAAC,KAAA,KAAU;AACtB,gBAAA,IAAI,QAAA,IAAY,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AACpC,gBAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gBAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,cAC5B,CAAA;AAAA,cACA,SAAS,MAAM;AACb,gBAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAC1B,gBAAA,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,cACf,CAAA;AAAA,cACA,MAAA,EAAQ,CAAC,KAAA,KAAU;AACjB,gBAAA,IAAI,CAAC,QAAQ,OAAA,EAAS,QAAA,CAAS,MAAM,aAAa,CAAA,UAAW,KAAK,CAAA;AAAA,cACpE,CAAA;AAAA,cACA,oBAAoB,MAAM;AACxB,gBAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,cACzB,CAAA;AAAA,cACA,kBAAkB,MAAM;AACtB,gBAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AAAA,cACzB,CAAA;AAAA,cACA,SAAA,EAAW,aAAA;AAAA,cAEX,QAAA,kBAAAD,IAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,wBAAA,EAAuB,cAAA;AAAA,kBACvB,WAAA,EAAU,UAAA;AAAA,kBACV,YAAA,EAAY,gBAAgB,OAAA,GAAU,QAAA;AAAA,kBACtC,SAAA,EAAW,EAAA;AAAA,oBACT,oDAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,cAAA,CAAe,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,qBAC3BA,IAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBAEC,wBAAA,EAAuB,cAAA;AAAA,wBACvB,WAAA,EAAU,KAAA;AAAA,wBACV,YAAA,EAAW,UAAA;AAAA,wBACX,SAAA,EAAW,EAAA;AAAA,0BACT,4IAAA;AAAA,0BACA,UAAA,EAAY;AAAA,yBACd;AAAA,wBAEA,QAAA,EAAA;AAAA,0CAAAC,GAAAA;AAAA,4BAAC,MAAA;AAAA,4BAAA;AAAA,8BACC,WAAA,EAAU,WAAA;AAAA,8BACV,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,UAAA,EAAY,QAAQ,CAAA;AAAA,8BAEtD,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,2BACV;AAAA,0CACAA,GAAAA;AAAA,4BAAC,QAAA;AAAA,4BAAA;AAAA,8BACE,GAAG,mBAAA;AAAA,8BACJ,IAAA,EAAK,QAAA;AAAA,8BACL,QAAA,EAAU,EAAA;AAAA,8BACV,GAAA,EAAK,cAAA;AAAA,8BACL,YAAA,EACE,WAAA,GAAc,MAAM,CAAA,IACpB,QAAA,CAAS,aAAa,EAAE,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,8BAE/C,QAAA;AAAA,8BACA,wBAAA,EAAuB,cAAA;AAAA,8BACvB,WAAA,EAAU,YAAA;AAAA,8BACV,YAAA,EAAW,UAAA;AAAA,8BACX,SAAA,EAAW,EAAA;AAAA,gCACT,qPAAA;AAAA,gCACA,UAAA,EAAY;AAAA,+BACd;AAAA,8BACA,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,gCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gCAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,gCAAA,YAAA,CAAa,MAAM,CAAA;AACnB,gCAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,8BAC5B,CAAA;AAAA,8BACA,WAAA,EAAa,CAAC,KAAA,KAAU;AACtB,gCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gCAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,8BACxB,CAAA;AAAA,8BACA,SAAA,EAAW,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,8BAE5C,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAC5B;AAAA,uBAAA;AAAA,sBA7CK,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,qBA+ChC,CAAA;AAAA,oBACA,aAAA,GAAgB,oBACfD,IAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,wBAAA,EAAuB,cAAA;AAAA,wBACvB,WAAA,EAAU,cAAA;AAAA,wBACV,YAAA,EAAW,UAAA;AAAA,wBACX,SAAA,EAAW,EAAA;AAAA,0BACT,4IAAA;AAAA,0BACA,UAAA,EAAY;AAAA,yBACd;AAAA,wBACD,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,0BACG;AAAA;AAAA;AAAA,qBACJ,GACE,IAAA;AAAA,oBACH,gCACCC,GAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,wBAAA,EAAuB,cAAA;AAAA,wBACvB,WAAA,EAAU,aAAA;AAAA,wBACV,YAAA,EAAW,OAAA;AAAA,wBACX,SAAA,EAAW,EAAA;AAAA,0BACT,kBAAA;AAAA,0BACA,MAAM,KAAA,CAAM,iBAAA;AAAA,0BACZ,UAAA,EAAY;AAAA,yBACd;AAAA,wBAEC,QAAA,EAAA,WAAA,KAAgB,MAAA,GAAY,QAAA,CAAS,WAAA,GAAc;AAAA;AAAA,qBACtD,GACE;AAAA;AAAA;AAAA;AACN;AAAA,WACF;AAAA,0BACAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,wBAAA,EAAuB,cAAA;AAAA,cACvB,WAAA,EAAU,SAAA;AAAA,cACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,cAC5B,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,IAAA,IAAQ,iBAAA;AAAA,gBACR,UAAA,EAAY;AAAA;AACd;AAAA,WACF;AAAA,UACC,IAAA,GACG,cAAA,CAAe,GAAA,CAAI,CAAC,kCAClBmC,aAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,GAAA,EAAK,aAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,IAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,QAAA;AAAA,cACA,GAAA,EAAK,cAAA;AAAA,cACL,wBAAA,EAAuB,cAAA;AAAA,cACvB,WAAA,EAAU,cAAA;AAAA,cACV,YAAA,EAAW,UAAA;AAAA,cACX,WAAW,UAAA,EAAY;AAAA;AAAA,WAE1B,CAAA,GACD,IAAA;AAAA,UACH,uBACCnC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,SAAA;AAAA,cACL,GAAA,EAAK,cAAA;AAAA,cACL,sBAAA,EAAqB,MAAA;AAAA,cACrB,iBAAA,EAAiB,SAAA;AAAA,cACjB,wBAAA,EAAuB,cAAA;AAAA,cACvB,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAW,MAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,cACtD,KAAA,EAAO,MAAM,MAAA,CAAO,UAAA;AAAA,cAEnB,qBAAW,MAAA,GAAS,CAAA,GACnB,WAAW,GAAA,CAAI,CAAC,QAAQ,KAAA,KAAU;AAChC,gBAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA;AAClD,gBAAA,MAAM,SAAS,KAAA,KAAU,mBAAA;AACzB,gBAAA,MAAM,cAAc,MAAA,CAAO,QAAA,GACvB,aACA,MAAA,GACE,QAAA,GACA,WACE,UAAA,GACA,MAAA;AACR,gBAAA,uBACEmC,aAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,mBAAA;AAAA,oBACJ,GAAA,EAAK,CAAA,EAAG,MAAA,CAAO,KAAK,IAAI,KAAK,CAAA,CAAA;AAAA,oBAC7B,EAAA,EAAI,UAAU,KAAK,CAAA;AAAA,oBACnB,IAAA,EAAK,QAAA;AAAA,oBACL,IAAA,EAAK,QAAA;AAAA,oBACL,QAAA,EAAU,EAAA;AAAA,oBACV,GAAA,EAAK,cAAA;AAAA,oBACL,eAAA,EAAe,QAAA;AAAA,oBACf,UAAU,MAAA,CAAO,QAAA;AAAA,oBACjB,wBAAA,EAAuB,cAAA;AAAA,oBACvB,WAAA,EAAU,QAAA;AAAA,oBACV,YAAA,EAAY,WAAA;AAAA,oBACZ,eAAa,MAAA,IAAU,MAAA;AAAA,oBACvB,iBAAe,QAAA,IAAY,MAAA;AAAA,oBAC3B,eAAA,EAAe,OAAO,QAAA,IAAY,MAAA;AAAA,oBAClC,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,OAAA;AAAA,sBACA,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,sBACtB,QAAA,IAAY,MAAM,KAAA,CAAM,oBAAA;AAAA,sBACxB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC/B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,sBAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,kBAAA,GAAqB,MAAA;AAAA,sBAC/C,GAAI,QAAA,GACA,KAAA,CAAM,MAAA,CAAO,oBAAA,GACb;AAAA,qBACN;AAAA,oBACA,cAAc,MAAM;AAClB,sBAAA,IAAI,CAAC,MAAA,CAAO,QAAA,EAAU,cAAA,CAAe,KAAK,CAAA;AAAA,oBAC5C,CAAA;AAAA,oBACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,oBAC7C,SAAS,MAAM;AACb,sBAAA,YAAA,CAAa,MAAM,CAAA;AACnB,sBAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,oBAC5B;AAAA,mBAAA;AAAA,kCAEAnC,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,aAAA,EAAY,MAAA;AAAA,sBACZ,WAAA,EAAU,kBAAA;AAAA,sBACV,SAAA,EAAW,EAAA;AAAA,wBACT,yGAAA;AAAA,wBACA,QAAA,IACE,sDAAA;AAAA,wBACF,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,qBAAW,QAAA,GAAM;AAAA;AAAA,mBACpB;AAAA,kCACAA,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,WAAA,EAAU,cAAA;AAAA,sBACV,SAAA,EAAW,EAAA;AAAA,wBACT,yBAAA;AAAA,wBACA,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA;AACV,iBACF;AAAA,cAEJ,CAAC,oBAEDA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACE,GAAG,mBAAA;AAAA,kBACJ,GAAA,EAAK,cAAA;AAAA,kBACL,IAAA,EAAK,QAAA;AAAA,kBACL,QAAA,EAAU,EAAA;AAAA,kBACV,eAAA,EAAc,MAAA;AAAA,kBACd,eAAA,EAAc,OAAA;AAAA,kBACd,wBAAA,EAAuB,cAAA;AAAA,kBACvB,WAAA,EAAU,OAAA;AAAA,kBACV,YAAA,EAAW,OAAA;AAAA,kBACX,SAAA,EAAW,EAAA;AAAA,oBACT,2CAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA,UAAA,KAAe,MAAA,GAAY,QAAA,CAAS,KAAA,GAAQ;AAAA;AAAA;AAC/C;AAAA,WAEJ,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AClvBA,IAAM,cAAA,GAAiB,gCAAA;AAEhB,SAAS,0BAA0B,QAAA,EAAiC;AACzE,EAAA,IAAI,CAAC,cAAA,CAAe,IAAA,CAAK,QAAQ,GAAG,OAAO,IAAA;AAE3C,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AACnC,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA,GAAI,WAAA,GAAc,IAAA;AACtD;AAEA,SAAS,qBAAqB,KAAA,EAAe;AAC3C,EAAA,MAAM,QAAQ,wCAAA,CAAyC,IAAA;AAAA,IACrD,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,CAAE,QAAA;AAAS,GAC3B;AACA,EAAA,IAAI,CAAC,OAAO,OAAO,CAAA;AAEnB,EAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,CAAC,CAAA,EAAG,MAAA,IAAU,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,CAAC,KAAK,CAAC,CAAA;AACrC,EAAA,OAAO,IAAA,CAAK,IAAI,EAAA,EAAI,IAAA,CAAK,IAAI,CAAA,EAAG,gBAAA,GAAmB,QAAQ,CAAC,CAAA;AAC9D;AAEA,SAAS,qBAAA,CAAsB,OAAe,MAAA,EAA2B;AACvE,EAAA,MAAM,YAAY,IAAA,CAAK,GAAA,CAAI,GAAG,MAAA,CAAO,GAAA,CAAI,oBAAoB,CAAC,CAAA;AAC9D,EAAA,MAAM,QAAQ,EAAA,IAAM,SAAA;AACpB,EAAA,MAAM,aAAa,IAAA,CAAK,KAAA,CAAA,CAAO,QAAQ,MAAA,CAAO,OAAA,IAAW,KAAK,CAAA,GAAI,KAAA;AAClE,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,UAAA,EAAY,EAAE,IAAI,CAAA,GAAI,UAAA;AACzC;AAEO,SAAS,0BAAA,CAA2B;AAAA,EACzC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,WAAA,GAAc,0BAA0B,QAAQ,CAAA;AACtD,EAAA,MAAM,YAAY,WAAA,IAAe,CAAA;AACjC,EAAA,MAAM,eAAA,GAAkB,CAAC,SAAA,EAAW,IAAI,CAAA;AACxC,EAAA,IAAI,GAAA,KAAQ,MAAA,EAAW,eAAA,CAAgB,IAAA,CAAK,GAAG,CAAA;AAC/C,EAAA,IAAI,GAAA,KAAQ,MAAA,EAAW,eAAA,CAAgB,IAAA,CAAK,GAAG,CAAA;AAE/C,EAAA,IAAI,SAAA,GAAY,qBAAA;AAAA,IACd,YAAY,SAAA,GAAY,IAAA;AAAA,IACxB;AAAA,GACF;AACA,EAAA,IAAI,QAAQ,MAAA,EAAW,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,KAAK,SAAS,CAAA;AAC1D,EAAA,IAAI,QAAQ,MAAA,EAAW,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,KAAK,SAAS,CAAA;AAC1D,EAAA,OAAO,qBAAA,CAAsB,WAAW,eAAe,CAAA;AACzD;AAEA,SAAS,gBAAA,CAAiB,MAAqB,KAAA,EAA2B;AACxE,EAAA,IAAI,UAAU,MAAA,IAAa,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAClD,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,yBAAA,CAA2B,CAAA;AAAA,EACxE;AACF;AAEA,SAAS,aAAA,CAAc,MAAc,KAAA,EAAe;AAClD,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,EAAK,EAAG;AACjB,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,4BAAA,CAA8B,CAAA;AAAA,EAC3E;AACF;AAEA,SAAS,SAAA,CACP,KAAA,EACA,GAAA,EACA,GAAA,EACA;AACA,EAAA,OACE,KAAA,KAAU,SACT,GAAA,KAAQ,MAAA,IAAa,SAAS,GAAA,CAAA,KAC9B,GAAA,KAAQ,UAAa,KAAA,IAAS,GAAA,CAAA;AAEnC;AAEO,IAAM,eAAA,GAAkBL,UAAAA,CAG7B,SAASwD,gBAAAA,CACT;AAAA,EACE,KAAA;AAAA,EACA,YAAA,GAAe,EAAA;AAAA,EACf,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,CAAA;AAAA,EACP,gBAAA,GAAmB,KAAA;AAAA,EACnB,cAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA,EAAgB,iBAAA;AAAA,EAChB,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,QAAA,EAAU;AACpD,IAAA,MAAM,IAAI,UAAU,yCAAyC,CAAA;AAAA,EAC/D;AACA,EAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,IAAA,MAAM,IAAI,UAAU,gDAAgD,CAAA;AAAA,EACtE;AACA,EAAA,gBAAA,CAAiB,OAAO,GAAG,CAAA;AAC3B,EAAA,gBAAA,CAAiB,OAAO,GAAG,CAAA;AAC3B,EAAA,IAAI,GAAA,KAAQ,MAAA,IAAa,GAAA,KAAQ,MAAA,IAAa,MAAM,GAAA,EAAK;AACvD,IAAA,MAAM,IAAI,UAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,IAAK,QAAQ,CAAA,EAAG;AACvC,IAAA,MAAM,IAAI,UAAU,wDAAwD,CAAA;AAAA,EAC9E;AACA,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,CAAA,IAAK;AAAA,IAC9B,CAAC,oBAAoB,gBAAgB,CAAA;AAAA,IACrC,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,YAAY,QAAQ;AAAA,GACvB,EAAY;AACV,IAAA,IAAI,OAAO,cAAc,SAAA,EAAW;AAClC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,gBAAA,EAAmB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAClE;AAAA,EACF;AAEA,EAAA,MAAM,WAAW,wBAAA,EAAyB;AAC1C,EAAA,MAAM,sBAAA,GACJ,cAAA,IAAkB,QAAA,CAAS,WAAA,CAAY,SAAA;AACzC,EAAA,MAAM,sBAAA,GACJ,cAAA,IAAkB,QAAA,CAAS,WAAA,CAAY,SAAA;AACzC,EAAA,aAAA,CAAc,kBAAkB,sBAAsB,CAAA;AACtD,EAAA,aAAA,CAAc,kBAAkB,sBAAsB,CAAA;AAEtD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAItD,SAAS,YAAY,CAAA;AACvE,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,QAAA,GAAW,eAAe,KAAA,GAAQ,iBAAA;AACxC,EAAA,MAAM,WAAA,GAAc,0BAA0B,QAAQ,CAAA;AACtD,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,MAAM,eAAA,GAAkB,CACtB,YAAA,EACA,MAAA,KACG;AACH,IAAA,IAAI,CAAC,YAAA,EAAc,oBAAA,CAAqB,YAAY,CAAA;AACpD,IAAA,MAAM,SAAA,GAAY,0BAA0B,YAAY,CAAA;AACxD,IAAA,aAAA,GAAgB,SAAA,EAAW;AAAA,MACzB,QAAA,EAAU,YAAA;AAAA,MACV,MAAA;AAAA,MACA,OAAA,EAAS,SAAA,CAAU,SAAA,EAAW,GAAA,EAAK,GAAG;AAAA,KACvC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,SAAA,KAAsB;AACvC,IAAA,IAAI,YAAY,QAAA,EAAU;AAC1B,IAAA,IACE,WAAA,KAAgB,IAAA,KACd,SAAA,KAAc,CAAA,IAAK,GAAA,KAAQ,MAAA,IAAa,WAAA,IAAe,GAAA,IACtD,SAAA,KAAc,EAAA,IAAM,GAAA,KAAQ,MAAA,IAAa,eAAe,GAAA,CAAA,EAC3D;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,YAAY,0BAAA,CAA2B;AAAA,MAC3C,QAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,eAAA;AAAA,MACE,OAAO,SAAS,CAAA;AAAA,MAChB,SAAA,KAAc,IAAI,SAAA,GAAY;AAAA,KAChC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,IAAA,QAAA,GAAW,KAAK,CAAA;AAChB,IAAA,eAAA,CAAgB,KAAA,CAAM,aAAA,CAAc,KAAA,EAAO,OAAO,CAAA;AAAA,EACpD,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA2C;AAChE,IAAA,SAAA,GAAY,KAAK,CAAA;AACjB,IAAA,IAAI,KAAA,CAAM,gBAAA,IAAoB,QAAA,IAAY,QAAA,EAAU;AACpD,IAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,SAAA,IAAa,KAAA,CAAM,QAAQ,WAAA,EAAa;AAE1D,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,SAAA,CAAU,KAAA,CAAM,GAAA,KAAQ,SAAA,GAAY,CAAA,GAAI,EAAE,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAM,oBACJ,QAAA,IACA,QAAA,IACC,gBAAgB,IAAA,IAAQ,GAAA,KAAQ,UAAa,WAAA,IAAe,GAAA;AAC/D,EAAA,MAAM,oBACJ,QAAA,IACA,QAAA,IACC,gBAAgB,IAAA,IAAQ,GAAA,KAAQ,UAAa,WAAA,IAAe,GAAA;AAE/D,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACJ,wBAAA,EAAuB,cAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,gBAAc,OAAA,IAAW,MAAA;AAAA,MACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,QACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,QACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,QAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,QAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,QAC9C,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACE,GAAG,UAAA;AAAA,YACJ,GAAA;AAAA,YACA,IAAA,EAAK,MAAA;AAAA,YACL,SAAA,EAAU,SAAA;AAAA,YACV,IAAA,EAAK,YAAA;AAAA,YACL,KAAA,EAAO,QAAA;AAAA,YACP,QAAA;AAAA,YACA,QAAA;AAAA,YACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,YAC/C,eAAA,EAAe,GAAA;AAAA,YACf,eAAA,EAAe,GAAA;AAAA,YACf,iBAAe,WAAA,IAAe,MAAA;AAAA,YAC9B,kBAAgB,QAAA,IAAY,MAAA;AAAA,YAC5B,WAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,WAAA;AAAA,cACZ,MAAM,KAAA,CAAM,YAAA;AAAA,cACZ,MAAM,KAAA,CAAM,kBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,QAAA,EAAU,YAAA;AAAA,YACV,SAAA,EAAW;AAAA;AAAA,SACb;AAAA,QACC,mCACCD,IAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,eAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,uBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,uBAAA;AAAA,YAEpB,QAAA,EAAA;AAAA,8BAAAC,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,YAAA,EAAY,sBAAA;AAAA,kBACZ,QAAA,EAAU,iBAAA;AAAA,kBACV,WAAA,EAAU,WAAA;AAAA,kBACV,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,qBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,KAAA,EAAO,MAAM,MAAA,CAAO,qBAAA;AAAA,kBACpB,OAAA,EAAS,MAAM,SAAA,CAAU,CAAC,CAAA;AAAA,kBAC3B,QAAA,EAAA;AAAA;AAAA,eAED;AAAA,8BACAA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,YAAA,EAAY,sBAAA;AAAA,kBACZ,QAAA,EAAU,iBAAA;AAAA,kBACV,WAAA,EAAU,WAAA;AAAA,kBACV,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,qBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,KAAA,EAAO,MAAM,MAAA,CAAO,qBAAA;AAAA,kBACpB,OAAA,EAAS,MAAM,SAAA,CAAU,EAAE,CAAA;AAAA,kBAC5B,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,SACF,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;ACxTM,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,sBAAsB,QAAA,IAAY,WAAA;AAExC,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,UAAA;AAAA,QACZ,0BAAA,CAA2B,OAAO,IAAI,CAAA;AAAA,QACtC,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,UAAA,EAAY,IAAI,CAAA,EACxD,gBACH,CAAA,GACE,IAAA;AAAA,wBACJD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,KAAK,CAAA,mBACtBC,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,KAAK,CAAA,EAC1D,iBACH,CAAA,GACE,IAAA;AAAA,UACH,iBAAA,CAAkB,mBAAmB,CAAA,mBACpCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,iBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH,GACE,IAAA;AAAA,UACH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,aAAA,EAAe,UAAA,EAAY,OAAO,CAAA,EAC9D,mBACH,CAAA,GACE;AAAA,SAAA,EACN;AAAA;AAAA;AAAA,GACF;AAEJ;ACzDO,SAAS,SAAA,CAAU;AAAA,EACxB,EAAA,GAAK,SAAA;AAAA,EACL,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,EAAE,GAAG,YAAY,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;AAC9E,EAAA,MAAM,SAAA,GAAY,EAAA;AAClB,EAAA,MAAM,SAAA,GACJ,MAAA,KAAW,MAAA,GACP,iBAAA,CAAkB,MAAM,IACxB,iBAAA,CAAkB,KAAK,CAAA,IAAK,iBAAA,CAAkB,WAAW,CAAA;AAC/D,EAAA,MAAM,QAAA,GAAW,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA;AAClD,EAAA,MAAM,gBAAA,GAAmB,CAAC,SAAA,IAAa,CAAC,QAAA;AAExC,EAAA,uBACED,IAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,gBAAc,KAAA,CAAM,OAAA;AAAA,MACpB,gBAAc,KAAA,CAAM,OAAA;AAAA,MACpB,YAAA,EAAY,KAAA,KAAU,QAAA,GAAW,UAAA,GAAa,WAAW,UAAA,GAAa,MAAA,CAAA;AAAA,MACtE,wBAAA,EAAuB,OAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,oBAAkB,WAAA,IAAe,MAAA;AAAA,MACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,SAAA;AAAA,QACZ,WAAA,IAAe,CAAC,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,gBAAA;AAAA,QACxC,QAAA,IAAY,MAAM,KAAA,CAAM,aAAA;AAAA,QACxB,QAAA,IAAY,MAAM,KAAA,CAAM,aAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA,mBACCC,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,OAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,YAEtD,QAAA,EAAA;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QAEH,4BACCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,QAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,MAAM,CAAA;AAAA,YACzD,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,YAEnB,qBAAW,MAAA,GACV,MAAA,mBAEAD,IAAAA,CAAAY,UAAA,EACG,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,KAAK,oBACtBX,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAA,EAAU,OAAA;AAAA,kBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,kBAEtD,QAAA,EAAA;AAAA;AAAA,eACH,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAA,EAAU,aAAA;AAAA,kBACV,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,gBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE;AAAA,aAAA,EACN;AAAA;AAAA,SAEJ,GACE,IAAA;AAAA,QAEH,QAAA,KAAa,MAAA,IAAa,QAAA,KAAa,IAAA,mBACtCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,MAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,SAAA;AAAA,cACZ,gBAAA,IAAoB,MAAM,KAAA,CAAM,mBAAA;AAAA,cAChC,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,SAAA;AAAA,YAEnB;AAAA;AAAA,SACH,GACE,IAAA;AAAA,QAEH,MAAA,KAAW,MAAA,IAAa,MAAA,KAAW,IAAA,mBAClCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,QAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,MAAM,CAAA;AAAA,YACzD,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,YAEnB,QAAA,EAAA;AAAA;AAAA,SACH,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AC/GA,SAASoD,QAAAA,CACP,YACG,IAAA,EACH;AACA,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,MAAA,GAAA,CAAI,OAAO,CAAA;AAAA,IACb,CAAA,MAAO;AACL,MAAC,IAAqC,OAAA,GAAU,OAAA;AAAA,IAClD;AAAA,EACF;AACF;AAEA,SAASC,cAAAA,CAAc,MAAc,KAAA,EAAe;AAClD,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,EAAK,EAAG;AACjB,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,kBAAA,EAAqB,IAAI,CAAA,4BAAA,CAA8B,CAAA;AAAA,EAC7E;AACF;AAEO,IAAM,iBAAA,GAAoB1D,UAAAA,CAG/B,SAAS2D,kBAAAA,CACT;AAAA,EACE,OAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA,EAAgB,iBAAA;AAAA,EAChB,GAAG;AACL,CAAA,EACA,YAAA,EACA;AACA,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,CAAA,IAAK;AAAA,IAC9B,CAAC,kBAAkB,cAAc,CAAA;AAAA,IACjC,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,YAAY,QAAQ;AAAA,GACvB,EAAY;AACV,IAAA,IAAI,OAAO,cAAc,SAAA,EAAW;AAClC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,kBAAA,EAAqB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,IACpE;AAAA,EACF;AACA,EAAA,IAAI,OAAA,KAAY,MAAA,IAAa,OAAO,OAAA,KAAY,SAAA,EAAW;AACzD,IAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AAAA,EACpE;AAEA,EAAA,MAAM,WAAW,wBAAA,EAAyB;AAC1C,EAAA,MAAM,iBAAA,GACJ,iBAAA,IAAqB,QAAA,CAAS,aAAA,CAAc,YAAA;AAC9C,EAAA,MAAM,iBAAA,GACJ,iBAAA,IAAqB,QAAA,CAAS,aAAA,CAAc,YAAA;AAC9C,EAAAD,cAAAA,CAAc,qBAAqB,iBAAiB,CAAA;AACpD,EAAAA,cAAAA,CAAc,qBAAqB,iBAAiB,CAAA;AAEpD,EAAA,MAAM,QAAA,GAAW/C,OAAgC,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAChDT,SAAS,cAAc,CAAA;AACzB,EAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,EAAA,MAAM,eAAA,GAAkB,eAAe,OAAA,GAAU,mBAAA;AACjD,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,MAAM,uBAAA,GAA0B,CAAC,KAAA,KAA2C;AAC1E,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,IAAA,IAAI,KAAA,IAAS,KAAA,CAAM,aAAA,CAAc,aAAA,KAAkB,KAAA,EAAO;AACxD,MAAA,KAAA,CAAM,cAAA,EAAe;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,MAAM,cAAc,CAAC,eAAA;AACrB,IAAA,IAAI,CAAC,YAAA,EAAc,sBAAA,CAAuB,WAAW,CAAA;AACrD,IAAA,eAAA,GAAkB,WAAW,CAAA;AAAA,EAC/B,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,kBAChB,iBAAA,GACA,iBAAA;AAEJ,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACJ,wBAAA,EAAuB,gBAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,gBAAc,eAAA,IAAmB,MAAA;AAAA,MACjC,gBAAc,OAAA,IAAW,MAAA;AAAA,MACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,QACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,QACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,QAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,QAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,QAC9C,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACE,GAAG,UAAA;AAAA,YACJ,KAAK,CAAC,OAAA,KAAYoD,QAAAA,CAAQ,OAAA,EAAS,UAAU,YAAY,CAAA;AAAA,YACzD,IAAA,EAAM,kBAAkB,MAAA,GAAS,UAAA;AAAA,YACjC,QAAA;AAAA,YACA,QAAA;AAAA,YACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,YAC/C,WAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,WAAA;AAAA,cACZ,MAAM,KAAA,CAAM,YAAA;AAAA,cACZ,MAAM,KAAA,CAAM,oBAAA;AAAA,cACZ,UAAA,EAAY;AAAA;AACd;AAAA,SACF;AAAA,wBACApD,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,YAAA,EAAY,WAAA;AAAA,YACZ,cAAA,EAAc,eAAA;AAAA,YACd,QAAA;AAAA,YACA,WAAA,EAAU,QAAA;AAAA,YACV,YAAA,EAAY,kBAAkB,SAAA,GAAY,QAAA;AAAA,YAC1C,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,mBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,mBAAA;AAAA,YACpB,aAAA,EAAe,uBAAA;AAAA,YACf,OAAA,EAAS,YAAA;AAAA,YAER,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ,CAAC;ACzJD,IAAM,kCAAkB,IAAI,GAAA,CAAI,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA;AAEpD,SAAS,SAAA,CAAU,MAAc,SAAA,EAAmB;AAClD,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,IAAA,EAAM,CAAC,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,CAAC,CAAC,CAAA;AAC3D;AAEA,SAAS,qBAAA,CAAsB,OAAgB,IAAA,EAAc;AAC3D,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,KAAK,CAAA,IAAM,QAAmB,CAAA,EAAG;AACzD,IAAA,MAAM,IAAI,UAAA;AAAA,MACR,kBAAkB,IAAI,CAAA,iCAAA;AAAA,KACxB;AAAA,EACF;AACF;AAEA,SAAS,wBAAA,CAAyB,OAAgB,IAAA,EAAc;AAC9D,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,KAAK,CAAA,IAAM,QAAmB,CAAA,EAAG;AACzD,IAAA,MAAM,IAAI,UAAA;AAAA,MACR,kBAAkB,IAAI,CAAA,qCAAA;AAAA,KACxB;AAAA,EACF;AACF;AAEA,SAAS,0BAAA,CAA2B,OAAkB,IAAA,EAAc;AAClE,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,KAAA,CAAM,MAAK,EAAG;AAC9C,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,kBAAkB,IAAI,CAAA,0CAAA;AAAA,KACxB;AAAA,EACF;AACF;AAEA,SAAS,oBAAA,CACP,WACA,cAAA,EACA;AACA,EAAA,IACE,SAAA,KAAc,WACb,OAAO,SAAA,KAAc,YAAY,CAAC,SAAA,CAAU,MAAK,CAAA,EAClD;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IACE,cAAA,KAAmB,WAClB,OAAO,cAAA,KAAmB,YAAY,CAAC,cAAA,CAAe,MAAK,CAAA,EAC5D;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,OAAO,mBAAmB,QAAA,EAAU;AACtC,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAChD,IAAA,IAAI,MAAA,CAAO,KAAK,CAAC,KAAA,KAAU,yBAAyB,IAAA,CAAK,KAAK,CAAC,CAAA,EAAG;AAChE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAA,CAAmB,OAAgB,IAAA,EAAc;AACxD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,KAAA,CAAM,MAAK,EAAG;AAC9C,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,yBAAyB,IAAI,CAAA,oCAAA;AAAA,KAC/B;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,iBAAA,CAAkB,OAAkB,QAAA,EAAkB;AAC7D,EAAA,OAAO,iBAAA,CAAkB,KAAK,CAAA,GAAI,KAAA,GAAQ,QAAA;AAC5C;AAEA,SAAS,mBAAA,CAAoB,OAAkB,QAAA,EAAkB;AAC/D,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,KAAS,KAAA,GAAQ,QAAA;AAC7D;AAEA,SAAS,YAAA,CACP,WAAA,EACA,SAAA,EACA,aAAA,EACA,YAAA,EACkB;AAClB,EAAA,MAAM,KAAA,uBAAY,GAAA,EAAY;AAC9B,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAiB;AAChC,IAAA,IAAI,QAAQ,CAAA,IAAK,IAAA,IAAQ,SAAA,EAAW,KAAA,CAAM,IAAI,IAAI,CAAA;AAAA,EACpD,CAAA;AAEA,EAAA,KAAA,IAAS,MAAA,GAAS,CAAA,EAAG,MAAA,GAAS,aAAA,EAAe,UAAU,CAAA,EAAG;AACxD,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAClB,IAAA,OAAA,CAAQ,YAAY,MAAM,CAAA;AAAA,EAC5B;AACA,EAAA,KAAA,IAAS,SAAS,CAAC,YAAA,EAAc,MAAA,IAAU,YAAA,EAAc,UAAU,CAAA,EAAG;AACpE,IAAA,OAAA,CAAQ,cAAc,MAAM,CAAA;AAAA,EAC9B;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,GAAG,KAAK,CAAA,CAAE,KAAK,CAAC,IAAA,EAAM,KAAA,KAAU,IAAA,GAAO,KAAK,CAAA;AACjE,EAAA,MAAM,QAA0B,EAAC;AAEjC,EAAA,WAAA,CAAY,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AACnC,IAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,GAAQ,CAAC,CAAA;AAC1C,IAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,MAAA,MAAM,MAAM,IAAA,GAAO,YAAA;AACnB,MAAA,IAAI,GAAA,KAAQ,CAAA,EAAG,KAAA,CAAM,IAAA,CAAK,eAAe,CAAC,CAAA;AAC1C,MAAA,IAAI,GAAA,GAAM,CAAA,EAAG,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA;AAAA,IACpC;AACA,IAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACjB,CAAC,CAAA;AAED,EAAA,OAAO,KAAA;AACT;AAEO,IAAM,cAAA,GAAiBL,UAAAA;AAAA,EAC5B,SAAS4D,eAAAA,CACP;AAAA,IACE,IAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA,GAAW,EAAA;AAAA,IACX,KAAA,GAAQ,CAAA;AAAA,IACR,IAAA,GAAO,SAAA;AAAA,IACP,YAAA,GAAe,CAAA;AAAA,IACf,aAAA,GAAgB,CAAA;AAAA,IAChB,KAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA,GAAO,YAAA;AAAA,IACP,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB,cAAA;AAAA,IACnB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,UAAA;AAC5C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI1D,QAAAA;AAAA,MAC9C,MAAM,WAAA,IAAe;AAAA,KACvB;AAEA,IAAA,IAAI,IAAA,KAAS,MAAA,EAAW,qBAAA,CAAsB,IAAA,EAAM,MAAM,CAAA;AAC1D,IAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,MAAA,qBAAA,CAAsB,aAAa,aAAa,CAAA;AAAA,IAClD;AACA,IAAA,qBAAA,CAAsB,UAAU,UAAU,CAAA;AAC1C,IAAA,wBAAA,CAAyB,OAAO,OAAO,CAAA;AACvC,IAAA,wBAAA,CAAyB,cAAc,cAAc,CAAA;AACrD,IAAA,wBAAA,CAAyB,eAAe,eAAe,CAAA;AACvD,IAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,IAAI,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,UAAU,mDAAmD,CAAA;AAAA,IACzE;AACA,IAAA,IAAI,YAAA,KAAiB,MAAA,IAAa,OAAO,YAAA,KAAiB,UAAA,EAAY;AACpE,MAAA,MAAM,IAAI,UAAU,iDAAiD,CAAA;AAAA,IACvE;AACA,IAAA,0BAAA,CAA2B,YAAY,YAAY,CAAA;AACnD,IAAA,0BAAA,CAA2B,eAAe,eAAe,CAAA;AACzD,IAAA,0BAAA,CAA2B,WAAW,WAAW,CAAA;AACjD,IAAA,0BAAA,CAA2B,WAAW,WAAW,CAAA;AACjD,IAAA,oBAAA,CAAqB,WAAW,cAAc,CAAA;AAE9C,IAAA,MAAM,eAAA,GAAkB,kBAAA;AAAA,MACtB,QAAA,CAAS,UAAA;AAAA,MACT;AAAA,KACF;AACA,IAAA,MAAM,YAAA,GAAe,kBAAA,CAAmB,QAAA,CAAS,KAAA,EAAO,OAAO,CAAA;AAC/D,IAAA,MAAM,eAAA,GAAkB,kBAAA,CAAmB,QAAA,CAAS,QAAA,EAAU,UAAU,CAAA;AACxE,IAAA,MAAM,WAAA,GAAc,kBAAA,CAAmB,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAC5D,IAAA,MAAM,WAAA,GAAc,kBAAA,CAAmB,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAC5D,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,CAAI,IAAA,CAAK,KAAK,KAAA,GAAQ,QAAQ,GAAG,CAAC,CAAA;AACzD,IAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,IAAA,MAAM,cAAA,GAAiB,CAAC,YAAA,IAAgB,WAAA,KAAgB,MAAA;AACxD,IAAA,MAAM,WAAA,GAAc,SAAA;AAAA,MAClB,YAAA,GAAe,IAAA,GAAO,cAAA,GAAiB,gBAAA,GAAmB,CAAA;AAAA,MAC1D;AAAA,KACF;AACA,IAAA,MAAM,QAAQ,KAAA,GAAQ,CAAA,GAAA,CAAK,WAAA,GAAc,CAAA,IAAK,WAAW,CAAA,GAAI,CAAA;AAC7D,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,UAAU,KAAK,CAAA;AAClD,IAAA,MAAM,cAAc,WAAA,GAAc,CAAA;AAClC,IAAA,MAAM,UAAU,WAAA,GAAc,SAAA;AAC9B,IAAA,MAAM,SAAA,GACJ,SAAS,OAAA,GACL,YAAA,CAAa,aAAa,SAAA,EAAW,aAAA,EAAe,YAAY,CAAA,GAChE,EAAC;AAEP,IAAA,MAAM,WAAA,GAAc,CAAC,aAAA,KAA0B;AAC7C,MAAA,MAAM,QAAA,GAAW,SAAA,CAAU,aAAA,EAAe,SAAS,CAAA;AACnD,MAAA,IAAI,aAAa,WAAA,EAAa;AAC9B,MAAA,IAAI,cAAA,sBAAoC,QAAQ,CAAA;AAChD,MAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,gBAAgB,CACpB,IAAA,EACA,YACA,OAAA,EACA,OAAA,EACA,oCAEAG,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,UAAU,CAAC,OAAA;AAAA,QACX,YAAA,EAAY,eAAA;AAAA,QACZ,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,gBAAA;AAAA,UACZ,CAAC,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,wBAAA;AAAA,UACxB,UAAA,EAAY;AAAA,SACd;AAAA,QACA,OAAA,EAAS,MAAM,WAAA,CAAY,UAAU,CAAA;AAAA,QAEpC,QAAA,EAAA;AAAA;AAAA,KACH;AAGF,IAAA,uBACED,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,eAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAA,EACE,SAAA,KAAc,cAAA,KAAmB,MAAA,GAAY,eAAA,GAAkB,MAAA,CAAA;AAAA,QAEjE,iBAAA,EAAiB,cAAA;AAAA,QACjB,wBAAA,EAAuB,YAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,mBAAiB,YAAA,IAAgB,MAAA;AAAA,QACjC,qBAAmB,cAAA,IAAkB,MAAA;AAAA,QACrC,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACrE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,QAAA;AAAA,cACV,WAAA,EAAU,MAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,IAAI,CAAA;AAAA,cAEzD,QAAA,EAAA,iBAAA,CAAkB,KAAK,CAAA,GACpB,KAAA,GACA,QAAQ,CAAA,GACN,QAAA,CAAS,KAAA,CAAM,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,IACpC,QAAA,CAAS;AAAA;AAAA,WACjB;AAAA,0BAEAD,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,UAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,kBAAA,EAAoB,YAAY,QAAQ,CAAA;AAAA,cAEjE,QAAA,EAAA;AAAA,gBAAA,IAAA,KAAS,OAAA,GACN,aAAA;AAAA,kBACE,OAAA;AAAA,kBACA,CAAA;AAAA,kBACA,WAAA;AAAA,kBACA,iBAAA,CAAkB,YAAY,YAAY,CAAA;AAAA,kBAC1C,mBAAA,CAAoB,YAAY,YAAY;AAAA,iBAC9C,GACA,IAAA;AAAA,gBACH,aAAA;AAAA,kBACC,UAAA;AAAA,kBACA,WAAA,GAAc,CAAA;AAAA,kBACd,WAAA;AAAA,kBACA,iBAAA,CAAkB,eAAe,eAAe,CAAA;AAAA,kBAChD,mBAAA,CAAoB,eAAe,eAAe;AAAA,iBACpD;AAAA,gBAEC,IAAA,KAAS,4BACRA,IAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,cAAA,EAAa,MAAA;AAAA,oBACb,YAAA,EAAY,kBAAA;AAAA,sBACV,SAAS,WAAA,CAAY,EAAE,IAAA,EAAM,WAAA,EAAa,WAAW,CAAA;AAAA,sBACrD;AAAA,qBACF;AAAA,oBACA,WAAA,EAAU,MAAA;AAAA,oBACV,WAAA,EAAW,WAAA;AAAA,oBACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,IAAI,CAAA;AAAA,oBAEzD,QAAA,EAAA;AAAA,sBAAA,WAAA;AAAA,sBAAY,KAAA;AAAA,sBAAI;AAAA;AAAA;AAAA,iBACnB,GAEA,SAAA,CAAU,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AAC7B,kBAAA,IAAI,SAAS,UAAA,EAAY;AACvB,oBAAA,uBACEC,GAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBAEC,aAAA,EAAY,MAAA;AAAA,wBACZ,WAAA,EAAU,UAAA;AAAA,wBACV,SAAA,EAAW,EAAA;AAAA,0BACT,MAAM,KAAA,CAAM,kBAAA;AAAA,0BACZ,UAAA,EAAY;AAAA,yBACd;AAAA,wBACD,QAAA,EAAA;AAAA,uBAAA;AAAA,sBAPM,YAAY,KAAK,CAAA;AAAA,qBASxB;AAAA,kBAEJ;AAEA,kBAAA,MAAM,YAAY,IAAA,KAAS,WAAA;AAC3B,kBAAA,uBACEA,GAAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBAEC,IAAA,EAAK,QAAA;AAAA,sBACL,cAAA,EAAc,YAAY,MAAA,GAAS,MAAA;AAAA,sBACnC,YAAA,EAAY,kBAAA;AAAA,wBACV,SAAA,GACI,QAAA,CAAS,WAAA,CAAY,EAAE,MAAM,IAAA,EAAM,SAAA,EAAW,CAAA,GAC9C,SAAS,IAAA,CAAK,EAAE,IAAA,EAAM,IAAA,EAAM,WAAW,CAAA;AAAA,wBAC3C,YAAY,aAAA,GAAgB;AAAA,uBAC9B;AAAA,sBACA,WAAA,EAAU,MAAA;AAAA,sBACV,WAAA,EAAW,IAAA;AAAA,sBACX,gBAAc,SAAA,IAAa,MAAA;AAAA,sBAC3B,SAAA,EAAW,EAAA;AAAA,wBACT,MAAM,KAAA,CAAM,gBAAA;AAAA,wBACZ,SAAA,IAAa,MAAM,KAAA,CAAM,cAAA;AAAA,wBACzB,UAAA,EAAY,MAAA;AAAA,wBACZ,aAAa,UAAA,EAAY;AAAA,uBAC3B;AAAA,sBACA,OAAA,EAAS,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,sBAE9B,QAAA,EAAA;AAAA,qBAAA;AAAA,oBApBI;AAAA,mBAqBP;AAAA,gBAEJ,CAAC,CAAA;AAAA,gBAGF,aAAA;AAAA,kBACC,MAAA;AAAA,kBACA,WAAA,GAAc,CAAA;AAAA,kBACd,OAAA;AAAA,kBACA,iBAAA,CAAkB,WAAW,WAAW,CAAA;AAAA,kBACxC,mBAAA,CAAoB,WAAW,WAAW;AAAA,iBAC5C;AAAA,gBACC,SAAS,OAAA,GACN,aAAA;AAAA,kBACE,MAAA;AAAA,kBACA,SAAA;AAAA,kBACA,OAAA;AAAA,kBACA,iBAAA,CAAkB,WAAW,WAAW,CAAA;AAAA,kBACxC,mBAAA,CAAoB,WAAW,WAAW;AAAA,iBAC5C,GACA;AAAA;AAAA;AAAA;AACN;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;ACtWA,SAASwD,MAAAA,CAAM,KAAA,EAAe,GAAA,EAAa,GAAA,EAAa;AACtD,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,GAAG,GAAG,GAAG,CAAA;AAC3C;AAEO,IAAM,YAAA,GAAe7D,UAAAA;AAAA,EAC1B,SAAS8D,aAAAA,CACP;AAAA,IACE,KAAA,GAAQ,CAAA;AAAA,IACR,GAAA,GAAM,GAAA;AAAA,IACN,KAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,cAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA,EAAc,eAAA;AAAA,IACd,iBAAA,EAAmB,oBAAA;AAAA,IACnB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,gBAAA,GAAmB,CAAA,EAAG5B,KAAAA,EAAO,CAAA,MAAA,CAAA;AAEnC,IAAA,IAAI,OAAO,QAAQ,QAAA,IAAY,CAAC,OAAO,QAAA,CAAS,GAAG,CAAA,IAAK,GAAA,IAAO,CAAA,EAAG;AAChE,MAAA,MAAM,IAAI,UAAU,oDAAoD,CAAA;AAAA,IAC1E;AACA,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AACxD,MAAA,MAAM,IAAI,UAAU,6CAA6C,CAAA;AAAA,IACnE;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,SAAA,GAAY2B,MAAAA,CAAM,KAAA,EAAO,CAAA,EAAG,GAAG,CAAA;AACrC,IAAA,MAAM,OAAA,GAAW,YAAY,GAAA,GAAO,GAAA;AACpC,IAAA,MAAM,aAAA,GACJ,iBAAiB,SAAA,EAAW,GAAG,KAAK,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA,CAAA;AAC5D,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,cAAc,QAAA,IAAY,SAAA;AAChC,IAAA,MAAM,SAAA,GAAY,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,MAAA;AACtD,IAAA,MAAM,eAAA,GACJ,eAAA,KAAoB,MAAA,IAAa,oBAAA,KAAyB,MAAA;AAC5D,IAAA,MAAM,0BACJ,QAAA,IAAY,SAAA,KAAc,MAAA,IAAa,CAAC,kBACpC,gBAAA,GACA,MAAA;AACN,IAAA,MAAM,QAAQ,SAAA,KAAc,CAAA,GAAI,OAAA,GAAU,SAAA,KAAc,MAAM,UAAA,GAAa,UAAA;AAE3E,IAAA,uBACEzD,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,eAAA,EAAe,SAAA;AAAA,QACf,YAAA,EACE,eAAA,KACC,oBAAA,KAAyB,MAAA,GAAY,SAAA,GAAY,MAAA,CAAA;AAAA,QAEpD,mBAAiB,oBAAA,IAAwB,uBAAA;AAAA,QACzC,wBAAA,EAAuB,UAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,YAAA,EAAY,SAAA;AAAA,QACZ,UAAA,EAAU,GAAA;AAAA,QACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QACnE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,WAAA,mBACCA,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,WAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,QAAQ,CAAA;AAAA,cAE/D,QAAA,EAAA;AAAA,gBAAA,QAAA,mBACCC,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,EAAA,EAAI,uBAAA;AAAA,oBACJ,WAAA,EAAU,OAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,oBAEzD,QAAA,EAAA;AAAA;AAAA,iBACH,mBAEAA,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAU,OAAA,EAAQ,CAAA;AAAA,gBAEzB,4BACCA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,OAAA;AAAA,oBACV,YAAA,EAAY,SAAA;AAAA,oBACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,oBAEzD,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA,WACN,GACE,IAAA;AAAA,0BACJA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,cAE1D,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAA,EAAU,WAAA;AAAA,kBACV,YAAA,EAAY,KAAA;AAAA,kBACZ,YAAA,EAAY,SAAA;AAAA,kBACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,YAAY,SAAS,CAAA;AAAA,kBAClE,KAAA,EAAO;AAAA,oBACL,GAAG,MAAM,MAAA,CAAO,iBAAA;AAAA,oBAChB,KAAA,EAAO,GAAG,OAAO,CAAA,CAAA;AAAA;AACnB;AAAA;AACF;AAAA;AACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;ACzHA,SAASiD,SAAQ,KAAA,EAAe;AAC9B,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,GAAG,CAAA;AAC7C;AAEA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,EAAA,EAAI,qBAAA;AAAA,EACJ,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAMS,wBAAAA,GAA0B;AAAA,EAC9B,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,cAAA,GAAiB/D,UAAAA,CAG5B,SAASgE,eAAAA,CACT;AAAA,EACE,UAAU,EAAC;AAAA,EACX,KAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,EAAA;AAAA,EACA,cAAA,EAAgB,iBAAA;AAAA,EAChB,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,KAAA,MAAW,CAAC,SAAA,EAAW,UAAU,CAAA,IAAK;AAAA,IACpC,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ;AAAA,GACvB,EAAY;AACV,IAAA,IAAI,OAAO,eAAe,SAAA,EAAW;AACnC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,eAAA,EAAkB,SAAS,CAAA,mBAAA,CAAqB,CAAA;AAAA,IACtE;AAAA,EACF;AACA,EAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,WAAA,KAAgB,UAAA,EAAY;AAC9D,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IACE,gBAAgB,MAAA,IAChB,WAAA,KAAgB,QAChB,WAAA,KAAgB,IAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC3B,IAAA,MAAM,IAAI,UAAU,0CAA0C,CAAA;AAAA,EAChE;AACA,EAAA,MAAM,YAAA,uBAAmB,GAAA,EAAY;AACrC,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AACjC,IAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AACzC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,kCAAkC,KAAK,CAAA,mBAAA;AAAA,OACzC;AAAA,IACF;AACA,IAAA,IAAI,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,EAAU;AACpC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,wCAAwC,KAAK,CAAA,kBAAA;AAAA,OAC/C;AAAA,IACF;AACA,IAAA,IAAI,YAAA,CAAa,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,EAAG;AAClC,MAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAK,CAAA;AAClD,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,+DAAA,EACqB,cAAc,CAAA,UAAA,EAAa,KAAK,CAAA,CAAA;AAAA,OACvD;AAAA,IACF;AACA,IAAA,IACE,OAAO,QAAA,KAAa,MAAA,IACpB,OAAO,MAAA,CAAO,aAAa,SAAA,EAC3B;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,2CAA2C,KAAK,CAAA,mBAAA;AAAA,OAClD;AAAA,IACF;AACA,IAAA,YAAA,CAAa,GAAA,CAAI,OAAO,KAAK,CAAA;AAAA,EAC/B,CAAC,CAAA;AAED,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,cAAc9B,KAAAA,EAAM;AAC1B,EAAA,MAAM,SAAS,EAAA,IAAM,WAAA;AACrB,EAAA,MAAM,eAAe,IAAA,IAAQ,MAAA;AAC7B,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIhC,SAAS,YAAY,CAAA;AACvE,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,iBAAA;AAE7C,EAAA,MAAM,YAAA,GAAe,CACnB,KAAA,EACA,cAAA,KACG;AACH,IAAA,IAAI,YAAY,cAAA,EAAgB;AAChC,IAAA,MAAM,SAAA,GAAY,MAAM,aAAA,CAAc,KAAA;AACtC,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,oBAAA,CAAqB,SAAS,CAAA;AAAA,IAChC;AACA,IAAA,QAAA,GAAW,KAAK,CAAA;AAChB,IAAA,aAAA,GAAgB,WAAW,KAAK,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,GAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA,EAAK,YAAA;AAAA,MACL,kBAAA,EAAkB,WAAA;AAAA,MAClB,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,MAC/C,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,wBAAA,EAAuB,aAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,WAAW,UAAA,GAAa,SAAA;AAAA,MACpC,kBAAA,EAAkB,WAAA;AAAA,MAClB,WAAA,EAAW,WAAA;AAAA,MACX,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,gBAAc,OAAA,IAAW,MAAA;AAAA,MACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,gBAAgB,YAAA,IAAgB,6BAAA;AAAA,QAChC,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC9B,UAAA,MAAM,cAAA,GAAiB,YAAY,MAAA,CAAO,QAAA;AAC1C,UAAA,MAAM,OAAA,GAAU,OAAO,KAAA,KAAU,aAAA;AACjC,UAAA,MAAM,KAAA,GAAQ,UAAU,SAAA,GAAY,WAAA;AACpC,UAAA,MAAM,QAAA,GAAW,GAAG,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAIkD,QAAAA,CAAQ,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAE5D,UAAA,uBACElD,IAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cAEC,OAAA,EAAS,QAAA;AAAA,cACT,WAAA,EAAU,QAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,WAAA,EAAW,WAAA;AAAA,cACX,gBAAc,OAAA,IAAW,MAAA;AAAA,cACzB,iBAAe,cAAA,IAAkB,MAAA;AAAA,cACjC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,cAAA,IAAkB,MAAM,KAAA,CAAM,mBAAA;AAAA,gBAC9B,WAAA,IAAe,qBAAqB,WAAW,CAAA;AAAA,gBAC/C,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,cAEpB,QAAA,EAAA;AAAA,gCAAAA,IAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,QAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,WAAA,EAAW,WAAA;AAAA,oBACX,gBAAc,OAAA,IAAW,MAAA;AAAA,oBACzB,iBAAe,cAAA,IAAkB,MAAA;AAAA,oBACjC,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,WAAA;AAAA,sBACZ,OAAA,IAAW,MAAM,KAAA,CAAM,kBAAA;AAAA,sBACvB,WAAA,IAAe,qBAAqB,WAAW,CAAA;AAAA,sBAC/C,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEA,QAAA,EAAA;AAAA,sCAAAC,GAAAA;AAAA,wBAAC,OAAA;AAAA,wBAAA;AAAA,0BACC,EAAA,EAAI,QAAA;AAAA,0BACJ,IAAA,EAAK,OAAA;AAAA,0BACL,IAAA,EAAM,YAAA;AAAA,0BACN,IAAA;AAAA,0BACA,OAAO,MAAA,CAAO,KAAA;AAAA,0BACd,OAAA;AAAA,0BACA,QAAA;AAAA,0BACA,QAAA,EAAU,cAAA;AAAA,0BACV,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,0BAC/C,WAAA,EAAU,OAAA;AAAA,0BACV,YAAA,EAAY,KAAA;AAAA,0BACZ,WAAA,EAAW,WAAA;AAAA,0BACX,gBAAc,OAAA,IAAW,MAAA;AAAA,0BACzB,iBAAe,cAAA,IAAkB,MAAA;AAAA,0BACjC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,0BACvD,UAAU,CAAC,KAAA,KAAU,YAAA,CAAa,KAAA,EAAO,OAAO,QAAQ;AAAA;AAAA,uBAC1D;AAAA,sBACC,0BACCA,GAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,aAAA,EAAY,MAAA;AAAA,0BACZ,WAAA,EAAU,WAAA;AAAA,0BACV,YAAA,EAAY,KAAA;AAAA,0BACZ,WAAA,EAAW,WAAA;AAAA,0BACX,SAAA,EAAW,EAAA;AAAA,4BACT,MAAM,KAAA,CAAM,cAAA;AAAA,4BACZ,WAAA,IAAe0D,yBAAwB,WAAW,CAAA;AAAA,4BAClD,UAAA,EAAY;AAAA;AACd;AAAA,uBACF,GACE;AAAA;AAAA;AAAA,iBACN;AAAA,gBACC,iBAAA,CAAkB,MAAA,CAAO,IAAI,CAAA,mBAC5B1D,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,MAAA;AAAA,oBACV,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,UAAA,EAAY,IAAI,CAAA;AAAA,oBAEhD,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,iBACV,GACE,IAAA;AAAA,gCACJD,IAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,SAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,OAAO,CAAA;AAAA,oBAE3D,QAAA,EAAA;AAAA,sCAAAC,GAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,WAAA,EAAU,OAAA;AAAA,0BACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,0BAEtD,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,uBACV;AAAA,sBACC,iBAAA,CAAkB,MAAA,CAAO,WAAW,CAAA,mBACnCA,GAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,WAAA,EAAU,aAAA;AAAA,0BACV,SAAA,EAAW,EAAA;AAAA,4BACT,MAAM,KAAA,CAAM,gBAAA;AAAA,4BACZ,UAAA,EAAY;AAAA,2BACd;AAAA,0BAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,uBACV,GACE;AAAA;AAAA;AAAA;AACN;AAAA,aAAA;AAAA,YAzFK,MAAA,CAAO;AAAA,WA0Fd;AAAA,QAEJ,CAAC,CAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;ACxQD,SAAS,gBAAgB,IAAA,EAA0B;AACjD,EAAA,IAAI,SAAS,GAAA,EAAK;AAChB,IAAA,OAAO,EAAE,SAAA,EAAW,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAS;AAAA,EAClD;AACA,EAAA,IAAI,SAAS,GAAA,EAAK;AAChB,IAAA,OAAO,EAAE,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,MAAA,EAAO;AAAA,EAClD;AACA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,OAAO,EAAE,SAAA,EAAW,MAAA,EAAQ,SAAA,EAAW,MAAA,EAAO;AAAA,EAChD;AACA,EAAA,MAAM,IAAI,UAAU,kDAAkD,CAAA;AACxE;AAEO,IAAM,cAAA,GAAiBL,UAAAA;AAAA,EAC5B,SAASiE,eAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,IAAA,GAAO,GAAA;AAAA,IACP,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,QAAA,GAAW,gBAAgB,IAAI,CAAA;AACrC,IAAA,MAAM,mBACJ,QAAA,KAAa,MAAA,GACT,SACA,uBAAA,CAAwB,gBAAA,EAAkB,YAAY,QAAQ,CAAA;AACpE,IAAA,MAAM,oBACJ,SAAA,KAAc,MAAA,GACV,SACA,uBAAA,CAAwB,gBAAA,EAAkB,aAAa,SAAS,CAAA;AAEtE,IAAA,uBACE5D,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,aAAA;AAAA,QACvB,WAAA,EAAU,UAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,kBAAA;AAAA,UACZ,UAAA,EAAY,QAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAG,QAAA;AAAA,UACH,QAAA,EAAU,gBAAA;AAAA,UACV,SAAA,EAAW,iBAAA;AAAA,UACX,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACvDA,IAAM6D,oBAAAA,GAAsB,GAAA;AAE5B,SAAS,mBAAA,CAAoB;AAAA,EAC3B,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EASG;AACD,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,IAC1B,CAAC,WAAW,OAAO,CAAA;AAAA,IACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,IACrB,CAAC,kBAAkB,cAAc;AAAA,GACnC,EAAY;AACV,IAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,WAAA,EAAc,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC7D;AAAA,EACF;AACA,EAAA,IAAI,QAAA,KAAa,MAAA,IAAa,OAAO,QAAA,KAAa,SAAA,EAAW;AAC3D,IAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,EAC9D;AAEA,EAAA,IAAI,YAAY,MAAA,IAAa,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpD,IAAA,MAAM,IAAI,UAAU,sCAAsC,CAAA;AAAA,EAC5D;AACA,EAAA,OAAA,EAAS,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAClC,IAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AACzC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,2BAAA,EAA8B,KAAK,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC9E;AACA,IAAA,IAAI,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,EAAU;AACpC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,oCAAoC,KAAK,CAAA,kBAAA;AAAA,OAC3C;AAAA,IACF;AACA,IAAA,IACE,OAAO,QAAA,KAAa,MAAA,IACpB,OAAO,MAAA,CAAO,aAAa,SAAA,EAC3B;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,uCAAuC,KAAK,CAAA,mBAAA;AAAA,OAC9C;AAAA,IACF;AACA,IAAA,IACE,OAAO,SAAA,KAAc,MAAA,IACrB,OAAO,MAAA,CAAO,cAAc,QAAA,EAC5B;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,wCAAwC,KAAK,CAAA,kBAAA;AAAA,OAC/C;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,IACE,UAAU,MAAA,IACV,OAAO,UAAU,QAAA,IACjB,OAAO,UAAU,QAAA,EACjB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,IACE,iBAAiB,MAAA,IACjB,OAAO,iBAAiB,QAAA,IACxB,OAAO,iBAAiB,QAAA,EACxB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,eAAe,KAAA,EAAiC;AACvD,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,OAAO,UAAU,QAAA,GACjD,MAAA,CAAO,KAAK,CAAA,GACZ,EAAA;AACN;AAEA,SAAS,UAAA,CAAW,SAA6B,KAAA,EAA2B;AAC1E,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,OAAO,QAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,UAAU,KAAK,CAAA;AACxD;AAEA,SAAS,qBAAA,CAAsB,SAA6B,KAAA,EAAe;AACzE,EAAA,MAAM,gBAAgB,OAAA,CAAQ,SAAA;AAAA,IAC5B,CAAC,MAAA,KAAW,MAAA,CAAO,KAAA,KAAU,KAAA,IAAS,CAAC,MAAA,CAAO;AAAA,GAChD;AACA,EAAA,IAAI,aAAA,IAAiB,GAAG,OAAO,aAAA;AAC/B,EAAA,OAAO,QAAQ,SAAA,CAAU,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AACvD;AAEA,SAASC,oBAAAA,CACP,OAAA,EACA,YAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,MAAA,EAAQ,OAAO,EAAA;AAC5B,EAAA,MAAM,aAAa,YAAA,IAAgB,CAAA,GAAI,YAAA,GAAe,SAAA,KAAc,IAAI,EAAA,GAAK,CAAA;AAE7E,EAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,OAAA,CAAQ,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,MAAM,aACH,UAAA,GAAa,MAAA,GAAS,SAAA,GAAY,OAAA,CAAQ,UAAU,OAAA,CAAQ,MAAA;AAC/D,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAS,CAAA,EAAG,QAAA,EAAU;AACjC,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,EAAA;AACT;AAEA,SAASC,wBAAAA,CACP,SACA,QAAA,EACA;AACA,EAAA,IAAI,aAAa,OAAA,EAAS;AACxB,IAAA,OAAO,QAAQ,SAAA,CAAU,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AAAA,EACvD;AACA,EAAA,KAAA,IAAS,QAAQ,OAAA,CAAQ,MAAA,GAAS,GAAG,KAAA,IAAS,CAAA,EAAG,SAAS,CAAA,EAAG;AAC3D,IAAA,IAAI,CAAC,OAAA,CAAQ,KAAK,CAAA,EAAG,UAAU,OAAO,KAAA;AAAA,EACxC;AACA,EAAA,OAAO,EAAA;AACT;AAEA,SAASC,eAAc,MAAA,EAA0B;AAC/C,EAAA,IAAI,MAAA,CAAO,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAA;AAClD,EAAA,IAAI,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,SAAiB,MAAA,CAAO,KAAA;AACpD,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB;AAEA,SAASf,SAAQ,KAAA,EAAe;AAC9B,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,GAAG,CAAA;AAC7C;AAEO,IAAM,UAAA,GAAatD,UAAAA;AAAA,EACxB,SAASsE,WAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,cAAA,GAAiB,KAAA;AAAA,IACjB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,YAAA,EAAc,eAAA;AAAA,IACd,iBAAA,EAAmB,oBAAA;AAAA,IACnB,kBAAA,EAAoB,qBAAA;AAAA,IACpB,mBAAA,EAAqB,sBAAA;AAAA,IACrB,eAAA,EAAiB,kBAAA;AAAA,IACjB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,mBAAA,CAAoB;AAAA,MAClB,OAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,eAAe,mBAAA,EAAoB;AACzC,IAAA,MAAM,eAAA,GAAkB,WAAW,YAAA,CAAa,OAAA;AAChD,IAAA,MAAM,cAAcpC,KAAAA,EAAM;AAC1B,IAAA,MAAM,WAAW,EAAA,IAAM,WAAA;AACvB,IAAA,MAAM,SAAA,GAAY,GAAG,QAAQ,CAAA,OAAA,CAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,GAAG,QAAQ,CAAA,QAAA,CAAA;AAC7B,IAAA,MAAM,OAAA,GAAUvB,OAA8B,IAAI,CAAA;AAClD,IAAA,MAAM,UAAA,GAAaA,OAAiC,IAAI,CAAA;AACxD,IAAA,MAAM,SAAA,GAAYA,OAAiC,IAAI,CAAA;AACvD,IAAA,MAAM,UAAA,GAAaA,MAAAA,CAAwC,EAAE,CAAA;AAC7D,IAAA,MAAM,YAAA,GAAeA,OAAO,KAAK,CAAA;AACjC,IAAA,MAAM,kBAAA,GAAqBA,OAAO,EAAE,CAAA;AACpC,IAAA,MAAM,iBAAA,GAAoBA,OAGhB,IAAI,CAAA;AACd,IAAA,MAAM,UAAA,GAAa,WAAW,EAAC;AAC/B,IAAA,MAAM,cAAA,GAAiB,WAAW,MAAA,GAAS,CAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,cAAA;AAClB,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIT,SAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,OAAO,SAAA,IAAa,gBAAA;AAC1B,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,QAAAA;AAAA,MAAS,MACzD,eAAe,YAAY;AAAA,KAC7B;AACA,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,aAAA,GAAgB,YAAA,GAClB,cAAA,CAAe,KAAK,CAAA,GACpB,iBAAA;AACJ,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,UAAA,EAAY,aAAa,CAAA;AAC3D,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,QAAAA;AAAA,MAAS,MAC7C,qBAAA,CAAsB,UAAA,EAAY,aAAa;AAAA,KACjD;AACA,IAAA,MAAM,mBAAA,GACJ,WAAA,IAAe,CAAA,IAAK,CAAC,UAAA,CAAW,WAAW,CAAA,EAAG,QAAA,GAC1C,WAAA,GACA,qBAAA,CAAsB,UAAA,EAAY,aAAa,CAAA;AACrD,IAAA,MAAM,YAAY,UAAA,CAAW,GAAA;AAAA,MAC3B,CAAC,MAAA,EAAQ,KAAA,KACP,CAAA,EAAG,QAAQ,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA,EAAIoD,QAAAA,CAAQ,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,KACxD;AACA,IAAA,MAAM,YAAA,GAAe,gBAAgB,KAAA,IAAS,WAAA;AAC9C,IAAA,MAAM,gBAAgB,CAAC,cAAA;AACvB,IAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,GAAA,IAAO,mBAAA,CAAoB,GAAA;AAC9D,IAAA,MAAM,YAAY,QAAA,GACd,UAAA,GACA,eAAA,GACE,SAAA,GACA,OACE,MAAA,GACA,QAAA;AAER,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAmC;AACvD,MAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AACpB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAyC;AACjE,MAAA,MAAA,GAAS,KAAK,CAAA;AACd,MAAA,YAAA,CAAa,UAAA,CAAW,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,IACnD,CAAA;AAEA,IAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAA0C;AACpE,MAAA,QAAA,GAAW,KAAK,CAAA;AAChB,MAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,IACrD,CAAA;AAEA,IAAA,MAAM,mBAAmB,MAAM;AAC7B,MAAA,cAAA,CAAe,qBAAA,CAAsB,UAAA,EAAY,aAAa,CAAC,CAAA;AAAA,IACjE,CAAA;AAEA,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,gBAAA,EAAiB;AACjB,MAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,CAAoB,KAAK,CAAA;AAAA,IAC3C,CAAA;AAEA,IAAA,MAAM,QAAA,GAAW,CAAC,eAAA,KAA6B;AAC7C,MAAA,cAAA;AAAA,QACE,eAAA,IAAmB,qBAAA,CAAsB,UAAA,EAAY,aAAa;AAAA,OACpE;AACA,MAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,CAAoB,IAAI,CAAA;AAAA,IAC1C,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAsB;AAC1C,MAAA,MAAM,gBAAgB,SAAA,CAAU,OAAA;AAChC,MAAA,IAAI,CAAC,aAAA,EAAe;AACpB,MAAA,MAAM,WAAA,GAAc,cAAc,aAAA,CAAc,WAAA;AAChD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR;AAAA,SACF;AAAA,MACF;AACA,MAAA,MAAM,cAAc,MAAA,CAAO,wBAAA;AAAA,QACzB,YAAY,iBAAA,CAAkB,SAAA;AAAA,QAC9B;AAAA,OACF,EAAG,GAAA;AACH,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAI,MAAM,8DAA8D,CAAA;AAAA,MAChF;AACA,MAAA,WAAA,CAAY,IAAA,CAAK,eAAe,SAAS,CAAA;AACzC,MAAA,aAAA,CAAc,aAAA;AAAA,QACZ,IAAI,WAAA,CAAY,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM;AAAA,OACnD;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAsB;AACzC,MAAA,MAAM,MAAA,GAAS,WAAW,SAAS,CAAA;AACnC,MAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,QAAA,IAAY,QAAA,EAAU;AAC5C,MAAA,cAAA,CAAe,SAAS,CAAA;AACxB,MAAA,IAAI,MAAA,CAAO,UAAU,aAAA,EAAe;AAClC,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,oBAAA,CAAqB,OAAO,KAAK,CAAA;AAAA,QACnC;AACA,QAAA,YAAA,CAAa,OAAO,KAAK,CAAA;AAAA,MAC3B;AACA,MAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,CAAoB,KAAK,CAAA;AAAA,IAC3C,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAAsB;AACxC,MAAA,IAAI,SAAA,GAAY,CAAA,IAAK,UAAA,CAAW,SAAS,GAAG,QAAA,EAAU;AACtD,MAAA,cAAA,CAAe,SAAS,CAAA;AACxB,MAAA,IAAI,CAAC,IAAA,EAAM,QAAA,CAAS,SAAS,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,CACtB,KAAA,EACA,SAAA,KACG;AACH,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,aAAA,CAAc,aAAA,CAAc,WAAA;AACtD,MAAA,IAAI,CAAC,WAAA,EAAa;AAClB,MAAA,MAAM,aAAa,CAAA,EAAG,kBAAA,CAAmB,OAAO,CAAA,EAAG,SAAS,GAAG,iBAAA,EAAkB;AACjF,MAAA,kBAAA,CAAmB,OAAA,GAAU,UAAA;AAC7B,MAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,QAAA,iBAAA,CAAkB,QAAQ,WAAA,CAAY,YAAA;AAAA,UACpC,kBAAkB,OAAA,CAAQ;AAAA,SAC5B;AAAA,MACF;AACA,MAAA,iBAAA,CAAkB,OAAA,GAAU;AAAA,QAC1B,WAAA;AAAA,QACA,OAAA,EAAS,WAAA,CAAY,UAAA,CAAW,MAAM;AACpC,UAAA,kBAAA,CAAmB,OAAA,GAAU,EAAA;AAC7B,UAAA,iBAAA,CAAkB,OAAA,GAAU,IAAA;AAAA,QAC9B,GAAGY,oBAAmB;AAAA,OACxB;AAEA,MAAA,MAAM,iBAAA,GAAoB,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CAAE,KAAA;AAAA,QAC/C,CAAC,eAAA,KAAoB,eAAA,KAAoB,UAAA,CAAW,CAAC;AAAA,OACvD;AACA,MAAA,MAAM,KAAA,GAAQ,iBAAA,GAAoB,SAAA,CAAU,iBAAA,EAAkB,GAAI,UAAA;AAClE,MAAA,MAAM,UAAA,GAAa,IAAA,GACf,mBAAA,GACA,UAAA,CAAW,SAAA;AAAA,QACT,CAAC,MAAA,KAAW,MAAA,CAAO,KAAA,KAAU,aAAA,IAAiB,CAAC,MAAA,CAAO;AAAA,OACxD;AACJ,MAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,UAAA,CAAW,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC7D,QAAA,MAAM,KAAA,GAAA,CAAS,UAAA,GAAa,MAAA,GAAS,UAAA,CAAW,UAAU,UAAA,CAAW,MAAA;AACrE,QAAA,MAAM,MAAA,GAAS,WAAW,KAAK,CAAA;AAC/B,QAAA,IACE,CAAC,MAAA,EAAQ,QAAA,IACTG,cAAAA,CAAc,MAAM,CAAA,CAAE,IAAA,EAAK,CAAE,iBAAA,EAAkB,CAAE,UAAA,CAAW,KAAK,CAAA,EACjE;AACA,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA4C;AACjE,MAAA,IAAI,QAAA,IAAY,YAAA,CAAa,OAAA,IAAW,KAAA,CAAM,YAAY,WAAA,EAAa;AACrE,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,KAAA,CAAM,QAAQ,SAAA,EAAW;AACxD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,gBAAgB,UAAA,CAAW,SAAA;AAAA,UAC/B,CAAC,MAAA,KAAW,MAAA,CAAO,KAAA,KAAU,aAAA,IAAiB,CAAC,MAAA,CAAO;AAAA,SACxD;AACA,QAAA,MAAM,YAAA,GAAe,OAAO,mBAAA,GAAsB,aAAA;AAClD,QAAA,UAAA;AAAA,UACEF,oBAAAA;AAAA,YACE,UAAA;AAAA,YACA,YAAA;AAAA,YACA,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,CAAA,GAAI;AAAA;AAClC,SACF;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,MAAA,IAAU,KAAA,CAAM,QAAQ,KAAA,EAAO;AAC/C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,UAAA;AAAA,UACEC,wBAAAA;AAAA,YACE,UAAA;AAAA,YACA,KAAA,CAAM,GAAA,KAAQ,MAAA,GAAS,OAAA,GAAU;AAAA;AACnC,SACF;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,WAAA,CAAY,mBAAmB,CAAA;AAAA,QACjC,CAAA,MAAO;AACL,UAAA,QAAA,EAAS;AAAA,QACX;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,QAAA,IAAY,IAAA,EAAM;AAClC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,cAAA,EAAe;AACf,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,IAAS,IAAA,EAAM;AAC/B,QAAA,WAAA,CAAY,mBAAmB,CAAA;AAC/B,QAAA;AAAA,MACF;AAEA,MAAA,IACE,MAAM,GAAA,CAAI,MAAA,KAAW,KACrB,CAAC,KAAA,CAAM,WACP,CAAC,KAAA,CAAM,OAAA,IACP,CAAC,MAAM,MAAA,IACP,CAAC,KAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,EACpB;AACA,QAAA,eAAA,CAAgB,KAAA,EAAO,MAAM,GAAG,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAyC;AAClE,MAAA,OAAA,GAAU,KAAK,CAAA;AACf,MAAA,IAAI,CAAC,KAAA,CAAM,gBAAA,EAAkB,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,IACzD,CAAA;AAEA,IAAA,MAAM,mBAAA,GAAsB,CAAC,KAAA,KAAwC;AACnE,MAAA,SAAA,GAAY,KAAK,CAAA;AACjB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,IAC5B,CAAA;AAEA,IAAAjE,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,cAAA,IAAkB,CAAC,IAAA,IAAQ,WAAW,OAAO,MAAA;AAClD,MAAA,MAAM,aAAA,GAAgB,QAAQ,OAAA,EAAS,aAAA;AACvC,MAAA,IAAI,CAAC,eAAe,OAAO,MAAA;AAE3B,MAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,QAAA,IAAI,CAAC,OAAA,CAAQ,OAAA,EAAS,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AACpD,UAAA,cAAA,EAAe;AAAA,QACjB;AAAA,MACF,CAAA;AAEA,MAAA,aAAA,CAAc,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC/D,MAAA,OAAO,MAAM;AACX,QAAA,aAAA,CAAc,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAAA,MACpE,CAAA;AAAA,IACF,GAAG,CAAC,SAAA,EAAW,gBAAgB,IAAA,EAAM,UAAA,EAAY,aAAa,CAAC,CAAA;AAE/D,IAAAA,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,cAAA,IAAkB,CAAC,IAAA,IAAQ,sBAAsB,CAAA,EAAG;AACzD,MAAA,UAAA,CAAW,OAAA,CAAQ,mBAAmB,CAAA,EAAG,cAAA,GAAiB;AAAA,QACxD,KAAA,EAAO;AAAA,OACR,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,cAAA,EAAgB,IAAA,EAAM,mBAAmB,CAAC,CAAA;AAE9C,IAAAA,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,cAAA,IAAkB,YAAA,EAAc,OAAO,MAAA;AAC5C,MAAA,MAAM,gBAAgB,SAAA,CAAU,OAAA;AAChC,MAAA,MAAM,OAAO,aAAA,EAAe,IAAA;AAC5B,MAAA,MAAM,WAAA,GAAc,eAAe,aAAA,CAAc,WAAA;AACjD,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,WAAA,EAAa,OAAO,MAAA;AAElC,MAAA,MAAM,cAAc,MAAM;AACxB,QAAA,WAAA,CAAY,WAAW,MAAM;AAC3B,UAAA,MAAM,UAAA,GAAa,eAAe,YAAY,CAAA;AAC9C,UAAA,oBAAA,CAAqB,UAAU,CAAA;AAC/B,UAAA,cAAA,CAAe,qBAAA,CAAsB,UAAA,EAAY,UAAU,CAAC,CAAA;AAC5D,UAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,CAAoB,KAAK,CAAA;AAAA,QAC3C,GAAG,CAAC,CAAA;AAAA,MACN,CAAA;AACA,MAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,WAAW,CAAA;AAC1C,MAAA,OAAO,MAAM,IAAA,CAAK,mBAAA,CAAoB,OAAA,EAAS,WAAW,CAAA;AAAA,IAC5D,GAAG,CAAC,YAAA,EAAc,WAAW,YAAA,EAAc,cAAA,EAAgB,UAAU,CAAC,CAAA;AAEtE,IAAAA,SAAAA;AAAA,MACE,MAAM,MAAM;AACV,QAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,UAAA,iBAAA,CAAkB,QAAQ,WAAA,CAAY,YAAA;AAAA,YACpC,kBAAkB,OAAA,CAAQ;AAAA,WAC5B;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,uBACEC,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,mBAAA;AAAA,UACJ,wBAAA,EAAuB,QAAA;AAAA,UACvB,WAAA,EAAU,MAAA;AAAA,UACV,YAAA,EAAY,SAAA;AAAA,UACZ,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACT,MAAM,KAAA,CAAM,cAAA;AAAA,YACZ,eAAA,IAAmB,MAAM,KAAA,CAAM,cAAA;AAAA,YAC/B,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,YACxB,UAAA,EAAY,IAAA;AAAA,YACZ;AAAA,WACF;AAAA,UACA,KAAA,EAAO;AAAA,YACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,YAChB,GAAI,eAAA,GAAkB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,YACpD,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,YAC9C,GAAG;AAAA,WACL;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,4BACJD,IAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACE,GAAG,mBAAA;AAAA,gBACH,GAAG,WAAA;AAAA,gBACJ,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,IAAA;AAAA,gBACA,KAAA;AAAA,gBACA,YAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,cAAA,EAAc,sBAAsB,eAAA,IAAmB,MAAA,CAAA;AAAA,gBACvD,YAAA,EAAY,eAAA;AAAA,gBACZ,iBAAA,EAAiB,oBAAA;AAAA,gBACjB,kBAAA,EAAkB,qBAAA;AAAA,gBAClB,mBAAA,EAAmB,sBAAA;AAAA,gBACnB,eAAA,EAAe,kBAAA;AAAA,gBACf,wBAAA,EAAuB,QAAA;AAAA,gBACvB,WAAA,EAAU,QAAA;AAAA,gBACV,YAAA,EAAY,SAAA;AAAA,gBACZ,aAAA,EAAY,MAAA;AAAA,gBACZ,MAAA,EAAQ,gBAAA;AAAA,gBACR,OAAA;AAAA,gBACA,SAAA;AAAA,gBACA,QAAA,EAAU,kBAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,WAAA;AAAA,kBACZ,MAAM,KAAA,CAAM,aAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,GAAAA,CAAC,QAAA,EAAA,EAAO,OAAM,EAAA,EAAG,QAAA,EAAQ,IAAA,EACtB,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,kBACH;AAAA;AAAA;AAAA,aACH;AAAA,4BACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,KAAA,CAAM,MAAM,aAAA,EAAe;AAAA;AAAA;AAAA,OAC9C;AAAA,IAEJ;AAEA,IAAA,uBACED,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,GAAA,EAAK,OAAA;AAAA,QACL,GAAA,EAAK,cAAA;AAAA,QACL,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,SAAA;AAAA,QACZ,aAAA,EAAY,OAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,kBAAA;AAAA,UACA,IAAA,IAAQ,MAAA;AAAA,UACR,eAAA,IAAmB,MAAM,KAAA,CAAM,cAAA;AAAA,UAC/B,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,eAAA,GAAkB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UACpD,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,0BACJA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,GAAA,EAAK,UAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,UAAA;AAAA,cACL,QAAA;AAAA,cACA,GAAA,EAAK,cAAA;AAAA,cACL,eAAA,EAAc,SAAA;AAAA,cACd,eAAA,EAAe,IAAA;AAAA,cACf,eAAA,EAAe,SAAA;AAAA,cACf,yBACE,IAAA,IAAQ,mBAAA,IAAuB,CAAA,GAC3B,SAAA,CAAU,mBAAmB,CAAA,GAC7B,MAAA;AAAA,cAEN,mBAAA,EAAkB,MAAA;AAAA,cAClB,cAAA,EAAc,sBAAsB,eAAA,IAAmB,MAAA,CAAA;AAAA,cACvD,YAAA,EAAY,eAAA;AAAA,cACZ,iBAAA,EAAiB,oBAAA;AAAA,cACjB,kBAAA,EAAkB,qBAAA;AAAA,cAClB,mBAAA,EAAmB,sBAAA;AAAA,cACnB,eAAA,EAAe,uBAAuB,QAAA,IAAY,MAAA,CAAA;AAAA,cAClD,wBAAA,EAAuB,QAAA;AAAA,cACvB,WAAA,EAAU,SAAA;AAAA,cACV,YAAA,EAAY,SAAA;AAAA,cACZ,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,6BAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,SAAS,MAAM;AACb,gBAAA,IAAI,MAAM,cAAA,EAAe;AAAA,qBACpB,QAAA,EAAS;AAAA,cAChB,CAAA;AAAA,cACA,MAAA,EAAQ,CAAC,KAAA,KAAU;AACjB,gBAAA,IAAI,CAAC,OAAA,CAAQ,OAAA,EAAS,QAAA,CAAS,KAAA,CAAM,aAAa,CAAA,EAAG;AACnD,kBAAA,cAAA,EAAe;AACf,kBAAA,YAAA,CAAa,WAAW,aAAa,CAAA;AAAA,gBACvC;AAAA,cACF,CAAA;AAAA,cACA,oBAAoB,MAAM;AACxB,gBAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,cACzB,CAAA;AAAA,cACA,kBAAkB,MAAM;AACtB,gBAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AAAA,cACzB,CAAA;AAAA,cACA,SAAA,EAAW,aAAA;AAAA,cAEX,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,yBAAA;AAAA,oBACA,aAAA,IAAiB,MAAM,KAAA,CAAM,iBAAA;AAAA,oBAC7B,iBAAiB,UAAA,EAAY;AAAA,mBAC/B;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,WACF;AAAA,0BACAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,IAAA,IAAQ;AAAA;AACV;AAAA,WACF;AAAA,0BACAD,IAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACH,GAAG,WAAA;AAAA,cACJ,GAAA,EAAK,YAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,GAAA,EAAK,cAAA;AAAA,cACL,aAAA,EAAY,MAAA;AAAA,cACZ,QAAA,EAAU,EAAA;AAAA,cACV,wBAAA,EAAuB,QAAA;AAAA,cACvB,WAAA,EAAU,QAAA;AAAA,cACV,YAAA,EAAY,SAAA;AAAA,cACZ,aAAA,EAAY,OAAA;AAAA,cACZ,SAAA,EAAW,MAAM,KAAA,CAAM,YAAA;AAAA,cACvB,MAAA;AAAA,cACA,OAAA,EAAS,iBAAA;AAAA,cACT,SAAA,EAAW,mBAAA;AAAA,cACX,QAAA,EAAU,kBAAA;AAAA,cAET,QAAA,EAAA;AAAA,gBAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,GAAAA,CAAC,QAAA,EAAA,EAAO,OAAM,EAAA,EAAG,QAAA,EAAQ,IAAA,EACtB,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,gBACH,UAAA,CAAW,GAAA,CAAI,CAAC,MAAA,qBACfA,GAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBAEC,OAAO,MAAA,CAAO,KAAA;AAAA,oBACd,UAAU,MAAA,CAAO,QAAA;AAAA,oBAEhB,QAAA,EAAAgE,eAAc,MAAM;AAAA,mBAAA;AAAA,kBAJhB,MAAA,CAAO;AAAA,iBAMf;AAAA;AAAA;AAAA,WACH;AAAA,UACC,uBACChE,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,SAAA;AAAA,cACL,GAAA,EAAK,cAAA;AAAA,cACL,iBAAA,EAAiB,SAAA;AAAA,cACjB,wBAAA,EAAuB,QAAA;AAAA,cACvB,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAW,MAAA;AAAA,cACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,cACtD,KAAA,EAAO,MAAM,MAAA,CAAO,UAAA;AAAA,cAEnB,QAAA,EAAA,UAAA,CAAW,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,KAAU;AACjC,gBAAA,MAAM,QAAA,GAAW,OAAO,KAAA,KAAU,aAAA;AAClC,gBAAA,MAAM,SAAS,KAAA,KAAU,mBAAA;AACzB,gBAAA,MAAM,cAAc,MAAA,CAAO,QAAA,GACvB,aACA,MAAA,GACE,QAAA,GACA,WACE,UAAA,GACA,MAAA;AACR,gBAAA,uBACEmC,aAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,mBAAA;AAAA,oBACJ,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,sBAAA,UAAA,CAAW,OAAA,CAAQ,KAAK,CAAA,GAAI,IAAA;AAAA,oBAC9B,CAAA;AAAA,oBACA,KAAK,MAAA,CAAO,KAAA;AAAA,oBACZ,EAAA,EAAI,UAAU,KAAK,CAAA;AAAA,oBACnB,IAAA,EAAK,QAAA;AAAA,oBACL,IAAA,EAAK,QAAA;AAAA,oBACL,QAAA,EAAU,EAAA;AAAA,oBACV,UAAU,MAAA,CAAO,QAAA;AAAA,oBACjB,GAAA,EAAK,cAAA;AAAA,oBACL,eAAA,EAAe,QAAA;AAAA,oBACf,wBAAA,EAAuB,QAAA;AAAA,oBACvB,WAAA,EAAU,QAAA;AAAA,oBACV,YAAA,EAAY,WAAA;AAAA,oBACZ,eAAa,MAAA,IAAU,MAAA;AAAA,oBACvB,iBAAe,QAAA,IAAY,MAAA;AAAA,oBAC3B,eAAA,EAAe,OAAO,QAAA,IAAY,MAAA;AAAA,oBAClC,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,sBACtB,QAAA,IAAY,MAAM,KAAA,CAAM,oBAAA;AAAA,sBACxB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC/B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,sBAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,kBAAA,GAAqB,MAAA;AAAA,sBAC/C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,oBAAA,GAAuB;AAAA,qBACrD;AAAA,oBACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,oBAC7C,OAAA,EAAS,MAAM,WAAA,CAAY,KAAK;AAAA,mBAAA;AAAA,kCAEhCnC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EACb,iBAAO,KAAA,EACV;AAAA,iBACF;AAAA,cAEJ,CAAC;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC5wBO,SAAS,iBAAA,CAAkB;AAAA,EAChC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,sBAAsB,QAAA,IAAY,WAAA;AAExC,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,iBAAA,EAAmB,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACxE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,aAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,oBAAA,EAAsB,YAAY,OAAO,CAAA;AAAA,YAElE,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,OAAO,oBACxBC,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,oBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,KAAK,CAAA,mBACtBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,kBAAA,EAAoB,UAAA,EAAY,KAAK,CAAA,EACjE,iBACH,CAAA,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,mBAAmB,CAAA,mBACpCA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,wBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE;AAAA;AAAA;AAAA,SACN;AAAA,QAEC,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,oBAAA,EAAsB,UAAA,EAAY,OAAO,CAAA,EACrE,mBACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AC3DA,SAAS,sBAAA,CACP,SACA,YAAA,EACA;AACA,EAAA,IAAI,YAAA,IAAgB,SAAS,IAAA,CAAK,CAAC,WAAW,MAAA,CAAO,KAAA,KAAU,YAAY,CAAA,EAAG;AAC5E,IAAA,MAAM,gBAAgB,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,UAAU,YAAY,CAAA;AAC5E,IAAA,IAAI,CAAC,eAAe,QAAA,EAAU;AAC5B,MAAA,OAAO,YAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,OAAA,EAAS,IAAA,CAAK,CAAC,MAAA,KAAW,CAAC,MAAA,CAAO,QAAQ,CAAA,EAAG,KAAA,IAAS,OAAA,GAAU,CAAC,CAAA,EAAG,KAAA;AAC7E;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,UAAU,EAAC;AAAA,EACX,KAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIH,QAAAA;AAAA,IAAS,MACzD,sBAAA,CAAuB,OAAA,EAAS,YAAY;AAAA,GAC9C;AACA,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,iBAAA;AAE7C,EAAA,MAAM,YAAA,GAAe,CAAC,SAAA,EAAmB,QAAA,KAAuB;AAC9D,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,oBAAA,CAAqB,SAAS,CAAA;AAAA,IAChC;AACA,IAAA,aAAA,GAAgB,SAAS,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyC;AAC9D,IAAA,IAAI,CAAC,CAAC,WAAA,EAAa,YAAA,EAAc,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,EAAG;AAC3F,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,iBAAiB,OAAA,CAAQ,MAAA,CAAO,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AAClE,IAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAEjC,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,MAAM,eAAe,IAAA,CAAK,GAAA;AAAA,MACxB,CAAA;AAAA,MACA,eAAe,SAAA,CAAU,CAAC,MAAA,KAAW,MAAA,CAAO,UAAU,aAAa;AAAA,KACrE;AACA,IAAA,MAAM,SAAA,GACJ,KAAA,CAAM,GAAA,KAAQ,MAAA,GACV,CAAA,GACA,MAAM,GAAA,KAAQ,KAAA,GACZ,cAAA,CAAe,MAAA,GAAS,CAAA,GACxB,KAAA,CAAM,QAAQ,WAAA,IAAe,KAAA,CAAM,GAAA,KAAQ,SAAA,GAAA,CACxC,YAAA,GAAe,CAAA,GAAI,cAAA,CAAe,MAAA,IAAU,cAAA,CAAe,MAAA,GAAA,CAC3D,YAAA,GAAe,CAAA,IAAK,cAAA,CAAe,MAAA;AAC9C,IAAA,MAAM,UAAA,GAAa,eAAe,SAAS,CAAA;AAC3C,IAAA,MAAM,OAAA,GAAU,KAAA,CAAM,aAAA,CAAc,gBAAA,CAAoC,gBAAgB,CAAA;AACxF,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,MACjC,CAAC,MAAA,KAAW,MAAA,CAAO,OAAA,CAAQ,UAAU,UAAA,CAAW;AAAA,KAClD;AACA,IAAA,YAAA,CAAa,WAAW,KAAK,CAAA;AAC7B,IAAA,MAAA,EAAQ,KAAA,EAAM;AAAA,EAChB,CAAA;AAEA,EAAA,uBACEG,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,IAAA,EAAK,YAAA;AAAA,MACL,kBAAA,EAAiB,YAAA;AAAA,MACjB,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,aAAA,EAAe,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACpE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,aAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MAEV,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,QAAA,MAAM,QAAA,GAAW,OAAO,KAAA,KAAU,aAAA;AAClC,QAAA,uBACED,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,cAAY,MAAA,CAAO,KAAA;AAAA,YACnB,cAAA,EAAc,QAAA;AAAA,YACd,QAAA,EAAU,WAAW,CAAA,GAAI,EAAA;AAAA,YACzB,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,aAAA;AAAA,cACZ,QAAA,IAAY,MAAM,KAAA,CAAM,mBAAA;AAAA,cACxB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,qBAAA;AAAA,cAC/B,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,MAAM,MAAA,CAAO,aAAA;AAAA,YACpB,SAAS,MAAM,YAAA,CAAa,MAAA,CAAO,KAAA,EAAO,OAAO,QAAQ,CAAA;AAAA,YAExD,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,MAAA,CAAO,IAAI,CAAA,mBAC5BC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,8BAAA,EAAgC,UAAA,EAAY,IAAI,CAAA,EACjE,QAAA,EAAA,MAAA,CAAO,MACV,CAAA,GACE,IAAA;AAAA,8BACJA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,oBAAoB,UAAA,EAAY,KAAK,CAAA,EACtD,QAAA,EAAA,MAAA,CAAO,KAAA,EACV;AAAA;AAAA,WAAA;AAAA,UAvBK,MAAA,CAAO;AAAA,SAwBd;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH;AAEJ;AC9GA,IAAM,iBAAA,GAAoB;AAAA,EACxB,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ;AACV,CAAA;AAEO,IAAM,YAAA,GAAeL,UAAAA;AAAA,EAC1B,SAASuE,aAAAA,CACP;AAAA,IACE,OAAA,GAAU,MAAA;AAAA,IACV,QAAA,GAAW,IAAA;AAAA,IACX,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,OAAA,KAAY,MAAA,IAAU,OAAA,KAAY,OAAA,IAAW,YAAY,QAAA,EAAU;AACrE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAI,OAAO,aAAa,SAAA,EAAW;AACjC,MAAA,MAAM,IAAI,UAAU,0CAA0C,CAAA;AAAA,IAChE;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,uBACElE,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,aAAA,EAAY,MAAA;AAAA,QACZ,wBAAA,EAAuB,UAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,cAAA,EAAc,OAAA;AAAA,QACd,eAAA,EAAe,QAAA;AAAA,QACf,YAAA,EAAY,WAAW,UAAA,GAAa,QAAA;AAAA,QACpC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,YAAA;AAAA,UACZ,kBAAkB,OAAO,CAAA;AAAA,UACzB,QAAA,IAAY,sDAAA;AAAA,UACZ,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,UAChB,GAAG;AAAA;AACL;AAAA,KACF;AAAA,EAEJ;AACF;ACxDO,IAAM,WAAA,GAAcL,UAAAA;AAAA,EACzB,SAASwE,YAAAA,CACP;AAAA,IACE,UAAA,GAAa,KAAA;AAAA,IACb,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,WAAW,wBAAA,EAAyB;AAC1C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,IAAI,OAAO,eAAe,SAAA,EAAW;AACnC,MAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,IACjE;AACA,IAAA,IAAI,UAAA,IAAc,UAAU,MAAA,EAAW;AACrC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,aAAA,GAAgB,UAAA,GAClB,MAAA,GACC,KAAA,IAAS,SAAS,OAAA,CAAQ,OAAA;AAC/B,IAAA,IACE,CAAC,eACA,OAAO,aAAA,KAAkB,YAAY,CAAC,aAAA,CAAc,MAAK,CAAA,EAC1D;AACA,MAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,IACrE;AAEA,IAAA,uBACEnE,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,YAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAM,aAAa,MAAA,GAAY,QAAA;AAAA,QAC/B,YAAA,EAAY,aAAA;AAAA,QACZ,aAAA,EAAa,aAAa,MAAA,GAAS,MAAA;AAAA,QACnC,wBAAA,EAAuB,SAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,mBAAiB,UAAA,IAAc,MAAA;AAAA,QAC/B,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,WAAA,EAAa,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAClE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,WAAA,EAAU,WAAA;AAAA,YACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,YAAY,SAAS,CAAA;AAAA,YACjE,KAAA,EAAO,MAAM,MAAA,CAAO;AAAA;AAAA;AACtB;AAAA,KACF;AAAA,EAEJ;AACF;AC3DO,IAAM,SAAA,GAAYL,UAAAA;AAAA,EACvB,SAASyE,UAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,OAAA,GAAU,OAAA;AAAA,IACV,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cACJ,GAAA,KAAQ,MAAA,GACJ,SACA,uBAAA,CAAwB,WAAA,EAAa,OAAO,GAAG,CAAA;AAErD,IAAA,uBACEpE,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,cAAA,EAAc,OAAA;AAAA,QACd,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,SAAA,EAAW,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAChE,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,UAChB,GAAA,EAAK,WAAA;AAAA,UACL,UAAA,EAAY,sBAAA,CAAuB,WAAA,EAAa,KAAK,CAAA;AAAA,UACrD,cAAA,EAAgB,wBAAA,CAAyB,WAAA,EAAa,OAAO,CAAA;AAAA,UAC7D,GAAG;AAAA,SACL;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AC5CA,IAAM,YAAA,uBAAmB,GAAA,CAAoB;AAAA,EAC3C,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,eAAA,GAAkB;AAAA,EACtB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AACA,IAAM,oBAAA,GAAuB,0BAAA;AAQ7B,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,IAAI,CAAC,SAAS,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,KAAA;AACxE,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,cAAA,CAAe,KAAK,CAAA;AAC7C,EAAA,OAAO,SAAA,KAAc,MAAA,CAAO,SAAA,IAAa,SAAA,KAAc,IAAA;AACzD;AAEA,SAAS,aAAa,KAAA,EAAyB;AAC7C,EAAA,IAAI,CAAC,iBAAA,CAAkB,KAA8B,CAAA,EAAG,OAAO,KAAA;AAC/D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,SAAiB,OAAA,CAAQ,KAAA,CAAM,MAAM,CAAA;AAC1D,EAAA,IAAI,MAAM,OAAA,CAAQ,KAAK,GAAG,OAAO,KAAA,CAAM,KAAK,YAAY,CAAA;AACxD,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,aAAa,EAAA,EAAY;AAChC,EAAA,IAAI;AACF,IAAA,OAAO,mBAAmB,EAAE,CAAA;AAAA,EAC9B,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,CAAA,kBAAA,EAAqB,IAAA,CAAK,SAAA,CAAU,EAAE,CAAC,CAAA,4BAAA;AAAA,KACzC;AAAA,EACF;AACF;AAEA,SAASqE,eAAc,KAAA,EAAiC;AACtD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,UAAU,mCAAmC,CAAA;AAAA,EACzD;AAEA,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAY;AAC5B,EAAA,IAAI,YAAA,GAAe,CAAA;AAEnB,EAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,GAAA,CAAI,CAAC,WAAW,KAAA,KAAU;AACrD,IAAA,IAAI,CAAC,aAAA,CAAc,SAAS,CAAA,EAAG;AAC7B,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,wBAAA,EAA2B,KAAK,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC3E;AAEA,IAAA,MAAM,IAAA,GAAO,SAAA;AACb,IAAA,IACE,OAAO,IAAA,CAAK,EAAA,KAAO,QAAA,IACnB,CAAC,IAAA,CAAK,EAAA,IACN,oBAAA,CAAqB,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,EACjC;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,2BAA2B,KAAK,CAAA,mEAAA;AAAA,OAClC;AAAA,IACF;AACA,IAAA,IAAI,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA,EAAG;AACpB,MAAA,MAAM,IAAI,UAAU,CAAA,kBAAA,EAAqB,IAAA,CAAK,UAAU,IAAA,CAAK,EAAE,CAAC,CAAA,eAAA,CAAiB,CAAA;AAAA,IACnF;AACA,IAAA,GAAA,CAAI,GAAA,CAAI,KAAK,EAAE,CAAA;AAEf,IAAA,IAAI,CAAC,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA,EAAG;AAC7B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,eAAA,EAAkB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,EAAE,CAAC,CAAA,uCAAA;AAAA,OAC3C;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,KAAK,MAAA,IAAU,SAAA;AAC9B,IAAA,IAAI,CAAC,YAAA,CAAa,GAAA,CAAI,MAAM,CAAA,EAAG;AAC7B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,eAAA,EAAkB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,EAAE,CAAC,CAAA,2DAAA;AAAA,OAC3C;AAAA,IACF;AACA,IAAA,IAAI,MAAA,KAAW,WAAW,YAAA,IAAgB,CAAA;AAE1C,IAAA,IAAI,KAAK,QAAA,KAAa,MAAA,IAAa,OAAO,IAAA,CAAK,aAAa,SAAA,EAAW;AACrE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,eAAA,EAAkB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,EAAE,CAAC,CAAA,4BAAA;AAAA,OAC3C;AAAA,IACF;AACA,IAAA,IAAI,KAAK,UAAA,KAAe,MAAA,IAAa,OAAO,IAAA,CAAK,eAAe,SAAA,EAAW;AACzE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,eAAA,EAAkB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,EAAE,CAAC,CAAA,8BAAA;AAAA,OAC3C;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,aAAa,IAAA,CAAK,EAAE,GAAG,MAAA,EAAO;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,IAAI,eAAe,CAAA,EAAG;AACpB,IAAA,MAAM,IAAI,WAAW,uDAAuD,CAAA;AAAA,EAC9E;AAEA,EAAA,OAAO,cAAA;AACT;AAEA,SAAS,mBAAA,CACP,UACA,QAAA,EACuB;AACvB,EAAA,IAAI,QAAA,KAAa,MAAA,IAAa,CAAC,aAAA,CAAc,QAAQ,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,cAAA,GAAiB,QAAA;AACvB,EAAA,KAAA,MAAW,OAAO,MAAA,CAAO,IAAA,CAAK,cAAA,IAAkB,EAAE,CAAA,EAAG;AACnD,IAAA,IAAI,CAAC,eAAA,CAAgB,QAAA,CAAS,GAAuC,CAAA,EAAG;AACtE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,0BAA0B,GAAG,CAAA,iCAAA;AAAA,OAC/B;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,GAAW;AAAA,IACf,OAAA,EAAS,cAAA,EAAgB,OAAA,IAAW,QAAA,CAAS,OAAA;AAAA,IAC7C,SAAA,EAAW,cAAA,EAAgB,SAAA,IAAa,QAAA,CAAS,SAAA;AAAA,IACjD,KAAA,EAAO,cAAA,EAAgB,KAAA,IAAS,QAAA,CAAS,KAAA;AAAA,IACzC,QAAA,EAAU,cAAA,EAAgB,QAAA,IAAY,QAAA,CAAS;AAAA,GACjD;AAEA,EAAA,KAAA,MAAW,OAAO,eAAA,EAAiB;AACjC,IAAA,IAAI,OAAO,QAAA,CAAS,GAAG,CAAA,KAAM,QAAA,IAAY,CAAC,QAAA,CAAS,GAAG,CAAA,CAAE,IAAA,EAAK,EAAG;AAC9D,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,0BAA0B,GAAG,CAAA,4BAAA;AAAA,OAC/B;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,sBAAA,CACP,WACA,cAAA,EACA;AACA,EAAA,IACE,SAAA,KAAc,WACb,OAAO,SAAA,KAAc,YAAY,CAAC,SAAA,CAAU,MAAK,CAAA,EAClD;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,mBAAmB,MAAA,EAAW;AAClC,EAAA,IAAI,OAAO,cAAA,KAAmB,QAAA,IAAY,CAAC,cAAA,CAAe,MAAK,EAAG;AAChE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAChD,EAAA,IAAI,MAAA,CAAO,KAAK,CAAC,KAAA,KAAU,qBAAqB,IAAA,CAAK,KAAK,CAAC,CAAA,EAAG;AAC5D,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,YAAA,CAAa,QAAwB,KAAA,EAAe;AAC3D,EAAA,IAAI,MAAA,KAAW,aAAa,OAAO,QAAA;AACnC,EAAA,IAAI,MAAA,KAAW,SAAS,OAAO,GAAA;AAC/B,EAAA,OAAO,KAAA,GAAQ,CAAA;AACjB;AAEA,SAAS,qBAAA,CACP,QACA,KAAA,EACA;AACA,EAAA,OAAO,EAAA;AAAA,IACL,MAAA,KAAW,aAAa,KAAA,CAAM,qBAAA;AAAA,IAC9B,MAAA,KAAW,aAAa,KAAA,CAAM,qBAAA;AAAA,IAC9B,MAAA,KAAW,eAAe,KAAA,CAAM,uBAAA;AAAA,IAChC,MAAA,KAAW,WAAW,KAAA,CAAM;AAAA,GAC9B;AACF;AAEO,IAAM,SAAA,GAAY1E,UAAAA;AAAA,EACvB,SAAS2E,UAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA,GAAc,YAAA;AAAA,IACd,YAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB,cAAA;AAAA,IACnB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,cAAczC,KAAAA,EAAM;AAC1B,IAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,KAAA;AAC5C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,IAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,WAAA,KAAgB,UAAA,EAAY;AAC9D,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAI,YAAA,KAAiB,MAAA,IAAa,OAAO,YAAA,KAAiB,UAAA,EAAY;AACpE,MAAA,MAAM,IAAI,UAAU,4CAA4C,CAAA;AAAA,IAClE;AACA,IAAA,IAAI,OAAO,SAAS,KAAA,KAAU,QAAA,IAAY,CAAC,QAAA,CAAS,KAAA,CAAM,MAAK,EAAG;AAChE,MAAA,MAAM,IAAI,UAAU,oDAAoD,CAAA;AAAA,IAC1E;AACA,IAAA,sBAAA,CAAuB,WAAW,cAAc,CAAA;AAEhD,IAAA,MAAM,cAAA,GAAiBwC,eAAc,KAAK,CAAA;AAC1C,IAAA,MAAM,oBAAA,GAAuB,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAEvE,IAAA,uBACErE,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,MAAA;AAAA,QACL,YAAA,EACE,SAAA,KAAc,cAAA,KAAmB,MAAA,GAAY,SAAS,KAAA,GAAQ,MAAA,CAAA;AAAA,QAEhE,iBAAA,EAAiB,cAAA;AAAA,QACjB,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,kBAAA,EAAkB,WAAA;AAAA,QAClB,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,gBAAgB,YAAA,GACZ,KAAA,CAAM,KAAA,CAAM,eAAA,GACZ,MAAM,KAAA,CAAM,aAAA;AAAA,UAChB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA,cAAA,CAAe,IAAI,CAAC,EAAE,MAAM,SAAA,EAAW,MAAA,IAAU,KAAA,KAAU;AAC1D,UAAA,MAAM,SAAA,GAAY,CAAA,EAAG,WAAW,CAAA,MAAA,EAAS,SAAS,CAAA,CAAA;AAClD,UAAA,MAAM,OAAA,GAAU,GAAG,SAAS,CAAA,MAAA,CAAA;AAC5B,UAAA,MAAM,aAAA,GAAgB,GAAG,SAAS,CAAA,YAAA,CAAA;AAClC,UAAA,MAAM,QAAA,GAAW,GAAG,SAAS,CAAA,OAAA,CAAA;AAC7B,UAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,IAAA,CAAK,WAAW,CAAA;AACzD,UAAA,MAAM,UAAA,GACJ,MAAA,KAAW,SAAA,GAAY,MAAA,GAAY,qBAAqB,MAAM,CAAA;AAChE,UAAA,MAAM,aAAA,GAAgB,OAAA,CAAQ,UAAA,IAAc,IAAA,CAAK,QAAQ,CAAA;AACzD,UAAA,MAAM,WAAA,GACJ,YAAA,KAAiB,MAAA,IAAa,IAAA,CAAK,UAAA,KAAe,KAAA;AACpD,UAAA,MAAM,WAAA,GAAc;AAAA,YAClB,iBAAiB,aAAA,GAAgB,MAAA;AAAA,YACjC,gBAAgB,QAAA,GAAW;AAAA,YAE1B,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,UAAA,MAAM,OAAA,mBACJD,IAAAA,CAAAY,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAAX,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,WAAA,EAAU,WAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,cAAA;AAAA,kBACZ,qBAAA,CAAsB,MAAA,EAAQ,KAAA,CAAM,KAAK,CAAA;AAAA,kBACzC,UAAA,EAAY;AAAA,iBACd;AAAA,gBACA,KAAA,EAAO,MAAM,MAAA,CAAO,cAAA;AAAA,gBAEnB,QAAA,EAAA,YAAA,CAAa,QAAQ,KAAK;AAAA;AAAA,aAC7B;AAAA,4BACAD,IAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,SAAA;AAAA,gBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,YAAY,OAAO,CAAA;AAAA,gBAE3D,QAAA,EAAA;AAAA,kCAAAC,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,EAAA,EAAI,OAAA;AAAA,sBACJ,WAAA,EAAU,OAAA;AAAA,sBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,KAAK,CAAA;AAAA,sBAEtD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,mBACR;AAAA,kBACC,iCACCA,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,EAAA,EAAI,aAAA;AAAA,sBACJ,WAAA,EAAU,aAAA;AAAA,sBACV,SAAA,EAAW,EAAA;AAAA,wBACT,MAAM,KAAA,CAAM,gBAAA;AAAA,wBACZ,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,mBACR,GACE,IAAA;AAAA,kBACH,gCACCD,IAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,EAAA,EAAI,QAAA;AAAA,sBACJ,WAAA,EAAU,QAAA;AAAA,sBACV,SAAA,EAAW,EAAA;AAAA,wBACT,MAAM,KAAA,CAAM,WAAA;AAAA,wBACZ,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,QAAA,EAAA;AAAA,wBAAA,UAAA;AAAA,wBACA,UAAA,IAAc,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,IAAA;AAAA,wBACrC,IAAA,CAAK,QAAA,GAAW,oBAAA,CAAqB,QAAA,GAAW;AAAA;AAAA;AAAA,mBACnD,GACE;AAAA;AAAA;AAAA;AACN,WAAA,EACF,CAAA;AAGF,UAAA,uBACEA,IAAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,EAAA,EAAI,SAAA;AAAA,cACJ,cAAA,EAAc,MAAA,KAAW,SAAA,GAAY,MAAA,GAAS,MAAA;AAAA,cAC9C,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,cAChC,gBAAc,IAAA,CAAK,EAAA;AAAA,cACnB,aAAA,EAAa,MAAA;AAAA,cACb,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,cAChC,mBAAiB,WAAA,IAAe,MAAA;AAAA,cAChC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,SAAA;AAAA,gBACZ,gBAAgB,YAAA,GACZ,KAAA,CAAM,KAAA,CAAM,mBAAA,GACZ,MAAM,KAAA,CAAM,iBAAA;AAAA,gBAChB,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,SAAA;AAAA,cAEnB,QAAA,EAAA;AAAA,gBAAA,WAAA,mBACCC,GAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,QAAA;AAAA,oBACL,UAAU,IAAA,CAAK,QAAA;AAAA,oBACf,iBAAA,EAAiB,OAAA;AAAA,oBACjB,kBAAA,EAAkB,WAAA;AAAA,oBAClB,WAAA,EAAU,SAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,MAAM,KAAA,CAAM,uBAAA;AAAA,sBACZ,IAAA,CAAK,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC7B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,oBACpB,SAAS,MAAM;AACb,sBAAA,IAAI,KAAK,QAAA,EAAU;AACnB,sBAAA,YAAA,CAAa,IAAA,CAAK,EAAA,EAAI,IAAA,EAAM,KAAK,CAAA;AAAA,oBACnC,CAAA;AAAA,oBAEC,QAAA,EAAA;AAAA;AAAA,oCAGHA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,SAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,IAAA,CAAK,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC7B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO,YAAA;AAAA,oBAEnB,QAAA,EAAA;AAAA;AAAA,iBACH;AAAA,gBAED,KAAA,GAAQ,cAAA,CAAe,MAAA,GAAS,CAAA,mBAC/BA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,aAAA,EAAY,MAAA;AAAA,oBACZ,WAAA,EAAU,WAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,cAAA;AAAA,sBACZ,gBAAgB,YAAA,GACZ,KAAA,CAAM,KAAA,CAAM,wBAAA,GACZ,MAAM,KAAA,CAAM,sBAAA;AAAA,sBAChB,MAAA,KAAW,WAAA,IACT,KAAA,CAAM,KAAA,CAAM,uBAAA;AAAA,sBACd,MAAA,KAAW,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,sBAClC,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO;AAAA;AAAA,iBACtB,GACE;AAAA;AAAA,aAAA;AAAA,YAnEC,IAAA,CAAK;AAAA,WAoEZ;AAAA,QAEJ,CAAC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;ACpZA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,UAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,sBAAA,GAAyB;AAAA,EAC7B,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,eAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,WAAA,EAAa;AACf,CAAA;AAEO,IAAM,UAAA,GAAaL,UAAAA;AAAA,EACxB,SAAS4E,WAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,OAAO,aAAa,SAAA,EAAW;AACjC,MAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,IAC9D;AACA,IAAA,IACE,gBAAgB,MAAA,IAChB,WAAA,KAAgB,QAChB,WAAA,KAAgB,IAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,QAAA,GAAW,kBAAkB,KAAK,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,0BAA0B,WAAW,CAAA;AAC5D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI1E,QAAAA;AAAA,MACpD,cAAA,IAAkB;AAAA,KACpB;AACA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,eAAA,GAAkB,eAAe,OAAA,GAAU,mBAAA;AACjD,IAAA,MAAM,KAAA,GAAQ,kBAAkB,SAAA,GAAY,WAAA;AAC5C,IAAA,MAAM,kBAAA,GAAqB,WAAA,IAAe,WAAA,CAAY,KAAA,CAAM,OAAO,CAAA;AAEnE,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,cAAc,OAAO,CAAA;AAAA,MACpD;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,uBACEE,IAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,wBAAA,EAAuB,QAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,KAAA;AAAA,QACZ,WAAA,EAAW,WAAA;AAAA,QACX,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,CAAC,cAAA,IAAkB,cAAA;AAAA,UACnB,QAAA,IAAY,MAAM,KAAA,CAAM,cAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAY,KAAA;AAAA,cACZ,WAAA,EAAW,WAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,CAAC,cAAA,IAAkB,MAAA;AAAA,gBACnB,eAAA,IAAmB,MAAM,KAAA,CAAM,aAAA;AAAA,gBAC/B,WAAA,IAAe,oBAAoB,WAAW,CAAA;AAAA,gBAC9C,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,cAEpB,QAAA,EAAA;AAAA,gCAAAC,GAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,WAAA;AAAA,oBACJ,GAAA;AAAA,oBACA,IAAA,EAAK,UAAA;AAAA,oBACL,IAAA,EAAK,QAAA;AAAA,oBACL,QAAA;AAAA,oBACA,OAAA;AAAA,oBACA,cAAA;AAAA,oBACA,cAAA,EAAc,eAAA;AAAA,oBACd,WAAA,EAAU,OAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,WAAA,EAAW,WAAA;AAAA,oBACX,iBAAe,QAAA,IAAY,MAAA;AAAA,oBAC3B,QAAA,EAAU,YAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK;AAAA;AAAA,iBAC1D;AAAA,gCACAA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,aAAA,EAAY,MAAA;AAAA,oBACZ,WAAA,EAAU,OAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,WAAA,EAAW,WAAA;AAAA,oBACX,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,WAAA;AAAA,sBACZ,WAAA,IAAe,oBAAoB,WAAW,CAAA;AAAA,sBAC9C,eAAA,IAAmB,uBAAuB,kBAAkB,CAAA;AAAA,sBAC5D,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO;AAAA;AAAA;AACtB;AAAA;AAAA,WACF;AAAA,UAEC,QAAA,IAAY,iCACXD,IAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,OAAO,CAAA;AAAA,cAE3D,QAAA,EAAA;AAAA,gBAAA,QAAA,mBACCC,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,OAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK,CAAA;AAAA,oBAEvD,QAAA,EAAA;AAAA;AAAA,iBACH,GACE,IAAA;AAAA,gBACH,iCACCA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,aAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,iBAAA;AAAA,sBACZ,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA,WACN,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACrIA,IAAM,yBAAA,GAA4B,yCAAA;AAClC,IAAM,2BAAA,GAA8B,CAAA;AAEpC,SAASwE,UAAAA,CAAa,KAAkC,KAAA,EAAiB;AACvE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACX,WAAW,GAAA,EAAK;AACd,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAAA,EAChB;AACF;AAEA,SAASC,cAAAA,CAAc,MAAc,KAAA,EAAgB;AACnD,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,SAAA,EAAW;AACrD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EACxD;AACF;AAEA,SAAS,UAAA,CACP,IAAA,EACA,KAAA,EACA,MAAA,EACA;AACA,EAAA,IAAI,UAAU,MAAA,IAAa,CAAC,MAAA,CAAO,QAAA,CAAS,KAAU,CAAA,EAAG;AACvD,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,UAAA,EAAa,IAAI,CAAA,gBAAA,EAAmB,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,KAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,KAClF;AAAA,EACF;AACF;AAEA,SAAS,mBAAA,CAAoB,MAAc,KAAA,EAAgB;AACzD,EAAA,IACE,KAAA,KAAU,WACT,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,CAAA,EACtD;AACA,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,IAAI,CAAA,0CAAA,CAA4C,CAAA;AAAA,EAC/E;AACF;AAEA,SAAS,sBAAA,CAAuB,MAAc,KAAA,EAAgB;AAC5D,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,UAAA,EAAY;AACtD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,IAAI,CAAA,kCAAA,CAAoC,CAAA;AAAA,EACvE;AACF;AAEA,SAAS,oBAAA,CACP,KAAA,EACA,IAAA,EACA,OAAA,GAAuC,EAAC,EACxC;AACA,EAAA,IAAI,UAAU,MAAA,EAAW;AACzB,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,aAAa,IAAI,CAAA,qCAAA,EACf,OAAA,CAAQ,aAAA,GAAgB,oCAAoC,EAC9D,CAAA,CAAA;AAAA,OACF;AAAA,IACF;AACA,IAAA;AAAA,EACF;AACA,EAAA,IACE,OAAA,CAAQ,iBACR,OAAO,KAAA,KAAU,YACjB,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EACtB;AACA,IAAA;AAAA,EACF;AACA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,aAAa,IAAI,CAAA,SAAA,EACf,OAAA,CAAQ,aAAA,GACJ,gEACA,8BACN,CAAA,CAAA;AAAA,GACF;AACF;AAEA,SAAS,gBAAgB,OAAA,EAAkB;AACzC,EAAA,IAAI,OAAA,KAAY,QAAW,OAAO,MAAA;AAClC,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC3B,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAY;AAC5B,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AACjC,IAAA,IAAI,CAAC,UAAU,OAAO,MAAA,KAAW,YAAY,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,KAAK,CAAA,mBAAA,CAAqB,CAAA;AAAA,IACzE;AACA,IAAA,MAAM,UAAA,GAAa,MAAA;AACnB,IAAA,IAAI,OAAO,WAAW,EAAA,KAAO,QAAA,IAAY,WAAW,EAAA,CAAG,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AAC1E,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,gCAAgC,KAAK,CAAA,4BAAA;AAAA,OACvC;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,UAAA,CAAW,EAAA,CAAG,IAAA,EAAK;AACpC,IAAA,IAAI,UAAA,CAAW,OAAO,QAAA,EAAU;AAC9B,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,qBAAA,EAAwB,WAAW,EAAE,CAAA,0CAAA;AAAA,OACvC;AAAA,IACF;AACA,IAAA,IAAI,GAAA,CAAI,GAAA,CAAI,QAAQ,CAAA,EAAG;AACrB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wCAAA,EAA2C,QAAQ,CAAA,EAAA,CAAI,CAAA;AAAA,IACzE;AACA,IAAA,GAAA,CAAI,IAAI,QAAQ,CAAA;AAChB,IAAA,oBAAA,CAAqB,UAAA,CAAW,KAAA,EAAO,CAAA,QAAA,EAAW,QAAQ,CAAA,OAAA,CAAA,EAAW;AAAA,MACnE,aAAA,EAAe;AAAA,KAChB,CAAA;AACD,IAAA,oBAAA,CAAqB,UAAA,CAAW,QAAA,EAAU,CAAA,QAAA,EAAW,QAAQ,CAAA,UAAA,CAAA,EAAc;AAAA,MACzE,aAAA,EAAe;AAAA,KAChB,CAAA;AACD,IAAA,oBAAA,CAAqB,UAAA,CAAW,QAAA,EAAU,CAAA,QAAA,EAAW,QAAQ,CAAA,UAAA,CAAA,EAAc;AAAA,MACzE,aAAA,EAAe;AAAA,KAChB,CAAA;AACD,IAAA,IACE,OAAO,UAAA,CAAW,QAAA,KAAa,QAAA,IAC/B,OAAO,UAAA,CAAW,QAAA,KAAa,QAAA,IAC/B,UAAA,CAAW,QAAA,GAAW,UAAA,CAAW,QAAA,EACjC;AACA,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qBAAqB,QAAQ,CAAA,2CAAA;AAAA,OAC/B;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,mBAAA,CAAoB,aAAsB,cAAA,EAA8B;AAC/E,EAAA,IAAI,gBAAgB,MAAA,EAAW;AAC/B,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC/B,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACzE;AAEA,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAY;AAC5B,EAAA,WAAA,CAAY,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AACpC,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,IAAA,EAAK,CAAE,WAAW,CAAA,EAAG;AAC1D,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,wCAAwC,KAAK,CAAA,4BAAA;AAAA,OAC/C;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,EAAK;AAC5B,IAAA,IAAI,UAAU,QAAA,EAAU;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,gCAAgC,KAAK,CAAA,0CAAA;AAAA,OACvC;AAAA,IACF;AACA,IAAA,IAAI,GAAA,CAAI,GAAA,CAAI,QAAQ,CAAA,EAAG;AACrB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,gDAAgD,QAAQ,CAAA,EAAA;AAAA,OAC1D;AAAA,IACF;AACA,IAAA,IAAI,cAAA,IAAkB,CAAC,cAAA,CAAe,GAAA,CAAI,QAAQ,CAAA,EAAG;AACnD,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qDAAqD,QAAQ,CAAA,EAAA;AAAA,OAC/D;AAAA,IACF;AACA,IAAA,GAAA,CAAI,IAAI,QAAQ,CAAA;AAAA,EAClB,CAAC,CAAA;AAED,EAAA,IAAI,cAAA,IAAkB,GAAA,CAAI,IAAA,KAAS,cAAA,CAAe,IAAA,EAAM;AACtD,IAAA,MAAM,OAAA,GAAU,CAAC,GAAG,cAAc,CAAA,CAAE,MAAA,CAAO,CAAC,QAAA,KAAa,CAAC,GAAA,CAAI,GAAA,CAAI,QAAQ,CAAC,CAAA;AAC3E,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,uEAAA,EAA0E,OAAA,CACvE,GAAA,CAAI,CAAC,QAAA,KAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,CAAG,CAAA,CACjC,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,KACf;AAAA,EACF;AACF;AAEA,SAAS,mBAAA,CAAoB,aAAsB,cAAA,EAA8B;AAC/E,EAAA,IAAI,gBAAgB,MAAA,EAAW;AAC/B,EAAA,IACE,CAAC,eACD,OAAO,WAAA,KAAgB,YACvB,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,IACzB,CAAC,CAAC,MAAA,CAAO,SAAA,EAAW,IAAI,CAAA,CAAE,QAAA,CAAS,OAAO,cAAA,CAAe,WAAW,CAAC,CAAA,EACrE;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,OAAA,CAAQ,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,QAAA,EAAU,KAAK,CAAA,KAAM;AACzD,IAAA,MAAM,kBAAA,GAAqB,SAAS,IAAA,EAAK;AACzC,IAAA,IAAI,kBAAA,CAAmB,WAAW,CAAA,EAAG;AACnC,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AACA,IAAA,IAAI,aAAa,kBAAA,EAAoB;AACnC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,8BAA8B,QAAQ,CAAA,0CAAA;AAAA,OACxC;AAAA,IACF;AACA,IAAA,IAAI,cAAA,IAAkB,CAAC,cAAA,CAAe,GAAA,CAAI,kBAAkB,CAAA,EAAG;AAC7D,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qDAAqD,QAAQ,CAAA,EAAA;AAAA,OAC/D;AAAA,IACF;AACA,IAAA,oBAAA,CAAqB,KAAA,EAAO,CAAA,aAAA,EAAgB,QAAQ,CAAA,EAAA,CAAI,CAAA;AAAA,EAC1D,CAAC,CAAA;AACH;AAEA,SAASC,OAAM,OAAA,EAAsB;AACnC,EAAA,MAAM,WAAA,GAAc,QAAQ,aAAA,CAAc,WAAA;AAC1C,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,OAAO,WAAA,CAAY,gBAAA,CAAiB,OAAO,CAAA,CAAE,SAAA,KAAc,KAAA;AAAA,EAC7D;AACA,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,aAAa,CAAA,KAAM,IAAA;AAC5C;AAEA,SAASC,6BAAAA,CAA6B,QAAqB,SAAA,EAAmB;AAC5E,EAAA,IAAI,CAAC,OAAO,iBAAA,EAAmB;AAC/B,EAAA,IAAI;AACF,IAAA,MAAA,CAAO,kBAAkB,SAAS,CAAA;AAAA,EACpC,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,iBAAA,GAAoB,MAAA,CAAO,aAAA,CAAc,WAAA,EAAa,YAAA;AAC5D,IAAA,IACE,iBAAA,IACA,KAAA,YAAiB,iBAAA,IACjB,KAAA,CAAM,SAAS,eAAA,EACf;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAeA,IAAM,gBAAA,GAAmBvE,cAA4C,IAAI,CAAA;AAEzE,SAAS,oBAAoB,UAAA,EAA6B;AACxD,EAAA,MAAM,OAAA,GAAUC,WAAW,gBAAgB,CAAA;AAC3C,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,kBAAA,GACJ,UAAA,KAAe,MAAA,GAAY,OAAA,CAAQ,UAAA,GAAa,kBAAA;AAClD,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,OACE,UAAA,KAAe,MAAA,GACX,OAAA,CAAQ,KAAA,GACR,sBAAsB,kBAAkB,CAAA;AAAA,MAC9C,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,kBAAA;AAAA,IACZ,KAAA;AAAA,IACA,MAAA,EAAQ,QAAA;AAAA,IACR,qBAAqB,MAAM;AAAA,IAAC;AAAA,GAC9B;AACF;AAEA,SAAS,oBAAoB,QAAA,EAA8B;AACzD,EAAA,IAAI,KAAA,GAAQ,KAAA;AAEZ,EAAA,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,CAAC,KAAA,KAAU;AACpC,IAAA,IAAI,KAAA,IAAS,CAAC,cAAA,CAAe,KAAK,CAAA,EAAG;AAErC,IAAA,MAAM,aAAa,KAAA,CAAM,KAAA;AAKzB,IAAA,IAAI,UAAA,CAAW,WAAW,cAAA,EAAgB;AACxC,MAAA,KAAA,GAAQ,IAAA;AACR,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,WAAW,QAAA,EAAU;AACvB,MAAA,KAAA,GAAQ,mBAAA,CAAoB,WAAW,QAAQ,CAAA;AAAA,IACjD;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,KAAA;AACT;AAEA,SAASuE,WAAU,KAAA,EAAyB;AAC1C,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA;AACpD;AAEA,SAAS,oBAAA,CACP,OACA,QAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,aAAa,QAAQ,CAAA,mDAAA;AAAA,OACvB;AAAA,IACF;AACA,IAAA,OAAO,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,EACjB;AAEA,EAAA,IAAI,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,+BAAA,CAAiC,CAAA;AAAA,EACxE;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,eAAA,CACP,KAAA,EACA,QAAA,EACA,QAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,+BAAA,EAAkC,QAAQ,CAAA,cAAA,EAAiB,QAAQ,CAAA,wCAAA;AAAA,OACrE;AAAA,IACF;AACA,IAAA,OAAO,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,EACjB;AAEA,EAAA,IAAI,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,+BAAA,EAAkC,QAAQ,CAAA,eAAA,EAAkB,QAAQ,CAAA,OAAA;AAAA,KACtE;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,mBAAA,CACP,KAAA,EACA,QAAA,EACA,QAAA,EACA;AACA,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,UAAU,OAAO,MAAA;AAC7D,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,+BAAA,EAAkC,QAAQ,CAAA,cAAA,EAAiB,QAAQ,CAAA,wCAAA;AAAA,KACrE;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,wBAAA,CACP,SACA,WAAA,EACA;AACA,EAAA,IAAI,CAAC,SAAS,MAAA,EAAQ;AACpB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAAY;AACtC,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,GAAA,CAAI,CAAC,QAAQ,KAAA,KAAU;AAC5C,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,EAAA,CAAG,IAAA,EAAK;AAChC,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,0CAA0C,KAAK,CAAA,yBAAA;AAAA,OACjD;AAAA,IACF;AACA,IAAA,IAAI,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC/B,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,iEAAiE,QAAQ,CAAA,EAAA;AAAA,OAC3E;AAAA,IACF;AACA,IAAA,aAAA,CAAc,IAAI,QAAQ,CAAA;AAE1B,IAAA,MAAM,UAAA,GAAa,cAAc,QAAQ,CAAA;AACzC,IAAA,MAAM,eAAA,GAAkB,mBAAA,CAAoB,MAAA,CAAO,QAAA,EAAU,UAAU,UAAU,CAAA;AACjF,IAAA,MAAM,eAAA,GAAkB,mBAAA,CAAoB,MAAA,CAAO,QAAA,EAAU,UAAU,UAAU,CAAA;AACjF,IAAA,IACE,eAAA,KAAoB,MAAA,IACpB,eAAA,KAAoB,MAAA,IACpB,kBAAkB,eAAA,EAClB;AACA,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,kCAAkC,QAAQ,CAAA,qCAAA;AAAA,OAC5C;AAAA,IACF;AAEA,IAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,MAAA,CAAO,QAAA,EAAU,UAAU,UAAU,CAAA;AACtE,IAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,MAAA,CAAO,QAAA,EAAU,UAAU,UAAU,CAAA;AACtE,IAAA,MAAM,SAAA,GACJ,eAAe,MAAA,GACX,UAAA,CAAW,YAAY,eAAA,EAAiB,eAAe,IACvD,MAAA,CAAO,KAAA;AACb,IAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,SAAA,EAAW,QAAA,EAAU,OAAO,CAAA;AAC1D,IAAA,IAAI,OAAO,OAAO,KAAA;AAElB,IAAA,OAAO,CAAA,OAAA,EAAU,QAAA,IAAY,KAAK,CAAA,EAAA,EAAK,YAAY,KAAK,CAAA,CAAA,CAAA;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,OAAO,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,GAAG,CAAC,CAAA,yCAAA,CAAA;AAC5B;AAEA,SAAS,UAAA,CAAW,KAAA,EAAe,QAAA,EAAmB,QAAA,EAAmB;AACvE,EAAA,MAAM,MAAM,QAAA,IAAY,EAAA;AACxB,EAAA,MAAM,GAAA,GAAM,YAAY,MAAA,CAAO,iBAAA;AAC/B,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,GAAG,GAAG,GAAG,CAAA;AAC3C;AAEA,SAAS,kBAAA,CACP,KAAA,EACA,QAAA,EACA,cAAA,EACA;AACA,EAAA,IAAI,CAAC,KAAA,IAAS,QAAA,KAAa,cAAA,EAAgB,OAAO,MAAA;AAClD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA;AACxC,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA;AAC5C,EAAA,IAAI,SAAA,GAAY,CAAA,IAAK,OAAA,GAAU,CAAA,EAAG,OAAO,MAAA;AAEzC,EAAA,MAAM,IAAA,GAAO,CAAC,GAAG,KAAK,CAAA;AACtB,EAAA,MAAM,CAAC,KAAK,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,WAAW,CAAC,CAAA;AACxC,EAAA,IAAA,CAAK,MAAA,CAAO,OAAA,EAAS,CAAA,EAAG,KAAK,CAAA;AAC7B,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,cAAc,SAAA,EAAoC;AACzD,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,KAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,YAAA;AAAA,IACT;AACE,MAAA,OAAO,MAAA;AAAA;AAEb;AAEA,SAAS,2BAA2B,KAAA,EAAuB;AACzD,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,QAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT,KAAK,OAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT;AACE,MAAA,OAAO,YAAA;AAAA;AAEb;AAEA,SAAS,uBAAuB,aAAA,EAAuC;AACrE,EAAA,QAAQ,aAAA;AAAe,IACrB,KAAK,KAAA;AACH,MAAA,OAAO,YAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT;AACE,MAAA,OAAO,QAAA;AAAA;AAEb;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACE5E,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,SAAA;AAAA,QACA,cAAc,MAAA,IAAU,YAAA;AAAA,QAAA,CACvB,CAAC,SAAA,IAAa,SAAA,KAAc,MAAA,KAAW;AAAA,OAC1C;AAAA,MACD,QAAA,EAAA;AAAA;AAAA,GAED;AAEJ;AAEA,SAAS,cAAA,GAAiB;AACxB,EAAA,uBACED,IAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,cAAA,EACjC,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,oBACtDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,oBACtDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC;AAAA,GAAA,EACxD,CAAA;AAEJ;AAEO,IAAM,kBAAA,GAAqBL,UAAAA,CAGhC,SAASkF,mBAAAA,CACT;AAAA,EACE,UAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAAJ,cAAAA,CAAc,kBAAkB,cAAc,CAAA;AAC9C,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,EAAA,MAAM,wBAAA,GAA2B,oBAAoB,QAAQ,CAAA;AAC7D,EAAA,MAAM,4BAA4B,wBAAA,GAC7B;AAAA,IACC,QAAA,EAAU,QAAA;AAAA,IACV,eAAA,EAAiB;AAAA,GACnB,GACA,MAAA;AAEJ,EAAA,uBACEzE,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,cAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,iBAAA;AAAA,MACvB,WAAA,EAAU,WAAA;AAAA,MACV,2BAAA,EAA0B,EAAA;AAAA,MAC1B,sBAAA,EAAsB,iBAAiB,EAAA,GAAK,MAAA;AAAA,MAC5C,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,cAAA,IAAkB,MAAM,KAAA,CAAM,4BAAA;AAAA,QAC9B,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,cAAA;AAAA,QAChB,GAAI,cAAA,GAAiB,KAAA,CAAM,MAAA,CAAO,4BAAA,GAA+B,MAAA;AAAA,QACjE,GAAG,yBAAA;AAAA,QACH,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,SAAA,GAAYL,UAAAA;AAAA,EACvB,SAASmF,UAAAA,CACP;AAAA,IACE,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA,GAAS,QAAA;AAAA,IACT,OAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,iBAAA,GAAoB,KAAA;AAAA,IACpB,mBAAA,GAAsB,KAAA;AAAA,IACtB,mBAAA;AAAA,IACA,kBAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACF,IAAA,UAAA,CAAW,QAAA,EAAU,MAAA,EAAQ,CAAC,QAAA,EAAU,cAAc,CAAU,CAAA;AAChE,IAAAL,cAAAA,CAAc,qBAAqB,iBAAiB,CAAA;AACpD,IAAAA,cAAAA,CAAc,uBAAuB,mBAAmB,CAAA;AACxD,IAAA,sBAAA,CAAuB,uBAAuB,mBAAmB,CAAA;AACjE,IAAA,sBAAA,CAAuB,sBAAsB,kBAAkB,CAAA;AAC/D,IAAA,oBAAA,CAAqB,aAAA,EAAe,eAAA,EAAiB,EAAE,aAAA,EAAe,MAAM,CAAA;AAC5E,IAAA,MAAM,cAAA,GAAiB,gBAAgB,OAAO,CAAA;AAC9C,IAAA,mBAAA,CAAoB,aAAa,cAAc,CAAA;AAC/C,IAAA,mBAAA,CAAoB,aAAa,cAAc,CAAA;AAC/C,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI5E,QAAAA,EAA6B;AAC7E,IAAA,MAAM,cAAA,GAAiBS,OAAuC,IAAI,CAAA;AAClE,IAAA,MAAM,cAAA,GAAiBA,OAAuC,IAAI,CAAA;AAClE,IAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AACjC,IAAA,MAAM,cAAA,GAAiB,aAAA,GACnB,wBAAA,CAAyB,OAAA,EAAS,WAAW,CAAA,GAC7C,MAAA;AACJ,IAAA,MAAM,YAAA,GAAsC;AAAA,MAC1C,UAAA,EAAY,kBAAA;AAAA,MACZ,KAAA;AAAA,MACA,MAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,mBAAA;AAAA,MACA,mBAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACEN,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,OAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,wBAAA,EAAwB,MAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,UAC7B,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,KAAA;AAAA,UAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAClD,GAAI,cAAA,GACC;AAAA,YACC,8BAAA,EAAgC;AAAA,WAClC,GACA,MAAA;AAAA,UACJ,GAAG;AAAA;AACL;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AAAC;AAEM,IAAM,eAAA,GAAkBL,UAAAA,CAG7B,SAASoF,gBAAAA,CACT,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,GAAG,WAAA,EAAY,EAC3D,GAAA,EACA;AACA,EAAA,MAAM,EAAE,MAAA,EAAQ,cAAA,EAAgB,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxE,EAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AACjC,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAyC;AAC7D,IAAA,IAAI,cAAA,EAAgB,cAAA,CAAe,OAAA,GAAU,aAAA,GAAgB,IAAA,GAAO,IAAA;AACpE,IAAAP,UAAAA,CAAU,KAAK,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACExE,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,GAAA,EAAK,YAAA;AAAA,MACL,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,WAAA;AAAA,QACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,gBAAA;AAAA,QAC7B,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,gBAAA,GAAmB,MAAA;AAAA,QACpD,GAAG;AAAA;AACL;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,aAAA,GAAgBL,UAAAA,CAG3B,SAASqF,cAAAA,CACT,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,GAAG,SAAA,IACzD,GAAA,EACA;AACA,EAAA,MAAM;AAAA,IACJ,aAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF,GAAI,oBAAoB,UAAU,CAAA;AAClC,EAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AACjC,EAAA,MAAM,YAAA,GAAe,aAAA,GACjB,CAAC,KAAA,KAAiD;AAChD,IAAA,MAAM,UAAA,GAAa,MAAM,aAAA,CAAc,UAAA;AAEvC,IAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,MAAA,cAAA,CAAe,QAAQ,UAAA,GAAa,UAAA;AAAA,IACtC;AACA,IAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,MAAA,cAAA,CAAe,QAAQ,UAAA,GAAa,UAAA;AAAA,IACtC;AACA,IAAA,QAAA,GAAW,KAAK,CAAA;AAAA,EAClB,CAAA,GACA,QAAA;AAEJ,EAAA,uBACEhF,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,WAAA,EAAU,MAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,SAAA;AAAA,QACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,QAC7B,aAAA,IAAiB,aAAA;AAAA,QACjB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,QAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,QAClD,GAAI,aAAA,IAAiB,aAAA,KAAkB,MAAA,GACnC,EAAE,WAAW,oBAAA,CAAqB,aAAA,EAAe,eAAe,CAAA,EAAE,GAClE,MAAA;AAAA,QACJ,GAAG;AAAA;AACL;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,eAAA,GAAkBL,UAAAA,CAG7B,SAASsF,gBAAAA,CACT,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,GAAG,WAAA,EAAY,EAC3D,GAAA,EACA;AACA,EAAA,MAAM,EAAE,MAAA,EAAQ,cAAA,EAAgB,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxE,EAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AACjC,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAyC;AAC7D,IAAA,IAAI,cAAA,EAAgB,cAAA,CAAe,OAAA,GAAU,aAAA,GAAgB,IAAA,GAAO,IAAA;AACpE,IAAAT,UAAAA,CAAU,KAAK,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACExE,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,GAAA,EAAK,YAAA;AAAA,MACL,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,WAAA;AAAA,QACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,gBAAA;AAAA,QAC7B,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,WAAA;AAAA,QAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,gBAAA,GAAmB,MAAA;AAAA,QACpD,GAAG;AAAA;AACL;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,YAAA,GAAeL,UAAAA;AAAA,EAC1B,SAASuF,aAAAA,CACP;AAAA,IACE,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACF,IAAAT,cAAAA,CAAc,eAAe,WAAW,CAAA;AACxC,IAAAA,cAAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,IAAAA,cAAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,IAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxD,IAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AAEjC,IAAA,uBACEzE,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,QAAA;AAAA,QACJ,GAAA;AAAA,QACA,WAAA,EAAU,KAAA;AAAA,QACV,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,YAAA,EAAY,WAAW,UAAA,GAAa,MAAA;AAAA,QACpC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,QAAA;AAAA,UACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,aAAA;AAAA,UAC7B,WAAA,IAAe,CAAC,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,UACxC,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,UACxB,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,QAAA;AAAA,UAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,aAAA,GAAgB,MAAA;AAAA,UACjD,GAAG;AAAA;AACL;AAAA,KACF;AAAA,EAEJ;AAAC;AAEM,IAAM,aAAA,GAAgBL,UAAAA,CAAqD,SAASwF,cAAAA,CAAc;AAAA,EACvG,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAG,YAAA,EAAc;AACf,EAAA,UAAA,CAAW,cAAc,KAAA,EAAO,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAU,CAAA;AACpE,EAAA,UAAA,CAAW,sBAAsB,aAAA,EAAe;AAAA,IAC9C,KAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACQ,CAAA;AACV,EAAA,UAAA,CAAW,sBAAsB,aAAA,EAAe;AAAA,IAC9C,KAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACQ,CAAA;AACV,EAAAV,cAAAA,CAAc,iBAAiB,QAAQ,CAAA;AACvC,EAAAA,cAAAA,CAAc,kBAAkB,SAAS,CAAA;AACzC,EAAAA,cAAAA,CAAc,kBAAkB,SAAS,CAAA;AACzC,EAAA,sBAAA,CAAuB,eAAe,MAAM,CAAA;AAC5C,EAAA,mBAAA,CAAoB,kBAAkB,SAAS,CAAA;AAC/C,EAAA,mBAAA,CAAoB,kBAAkB,SAAS,CAAA;AAC/C,EAAA,mBAAA,CAAoB,oBAAoB,WAAW,CAAA;AACnD,EAAA,IACE,QAAA,KAAa,WACZ,OAAO,QAAA,KAAa,YAAY,QAAA,CAAS,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,CAAA,EAC5D;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,oBAAA,CAAqB,KAAA,EAAO,YAAA,EAAc,EAAE,aAAA,EAAe,MAAM,CAAA;AACjE,EAAA,oBAAA,CAAqB,UAAU,eAAe,CAAA;AAC9C,EAAA,oBAAA,CAAqB,UAAU,eAAe,CAAA;AAC9C,EAAA,IACE,QAAA,KAAa,MAAA,IACb,QAAA,KAAa,MAAA,IACb,WAAW,QAAA,EACX;AACA,IAAA,MAAM,IAAI,MAAM,0DAA0D,CAAA;AAAA,EAC5E;AACA,EAAA,MAAM,YAAA,GAAe,oBAAoB,UAAU,CAAA;AACnD,EAAA,MAAM,EAAE,OAAM,GAAI,YAAA;AAClB,EAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,KAAA;AAC5C,EAAA,MAAM,aAAA,GAAgB,aAAa,MAAA,KAAW,cAAA;AAC9C,EAAA,MAAM,aAAA,GAAgB,KAAA,KAAU,aAAA,GAAgB,QAAA,GAAW,MAAA,CAAA;AAC3D,EAAA,MAAM,wBAAwB,aAAA,IAAiB,QAAA;AAC/C,EAAA,MAAM,OAAA,GAAUnE,OAAoC,IAAI,CAAA;AACxD,EAAA,MAAM,gBAAA,GAAmBA,OAAmB,MAAM;AAAA,EAAC,CAAC,CAAA;AACpD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIT,QAAAA,EAAiB;AAC3D,EAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAsC;AACxD,IAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,IAAA2E,UAAAA,CAAU,cAAc,IAAI,CAAA;AAAA,EAC9B,CAAA;AACA,EAAA,MAAM,eAAA,GACJ,QAAA,IAAY,YAAA,CAAa,WAAA,GAAc,QAAQ,MAAM,MAAA,GACjD,YAAA,CAAa,WAAA,CAAY,QAAQ,CAAA,GACjC,KAAA;AACN,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IACd,QAAA,IACE,cAAc,KAAA,KACb,SAAA,IAAa,aAAa,iBAAA,CAAA,IAC3B,YAAA,CAAa,eACb,YAAA,CAAa;AAAA,GACjB;AACA,EAAA,MAAM,SAAA,GAAY,OAAA;AAAA,IAChB,YACE,SAAA,KAAc,KAAA,KACb,SAAA,IAAa,YAAA,CAAa,wBAC7B,YAAA,CAAa;AAAA,GACf;AACA,EAAA,IACE,SAAA,IACA,QAAA,KAAa,MAAA,IACb,QAAA,IAAY,YAAY,EAAA,CAAA,EACxB;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,QAAA,IAAY,MAAM,CAAA;AAClD,EAAA,MAAM,QAAA,GAAW,cAAc,aAAa,CAAA;AAE5C,EAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,KAAK,CAAA,GAAI,KAAA,GAAQ,QAAA;AACnD,EAAA,MAAM,kBAAA,GACJ,iBAAA,CAAkB,OAAO,CAAA,IAAK,kBAAkB,WAAW,CAAA;AAC7D,EAAA,MAAM,kBAAA,GACJ,SAAA,KACC,CAAC,kBAAA,GACE,QAAA,CAAS,UAAA,CAAW,EAAE,QAAA,EAAU,QAAA,EAAU,IAAA,EAAK,IAAK,MAAA,EAAW,CAAA,GAC/D,MAAA,CAAA;AACN,EAAA,MAAM,iBACJ,OAAA,IACA,iBAAA,CAAkB,IAAI,CAAA,IACtB,iBAAA,CAAkB,KAAK,CAAA,IACvB,iBAAA,CAAkB,WAAW,CAAA,IAC7B,iBAAA,CAAkB,IAAI,CAAA,IACtB,iBAAA,CAAkB,OAAO,CAAA,IACzB,iBAAA,CAAkB,QAAQ,CAAA,IAC1B,eAAA;AACF,EAAA,MAAM,eAAA,GACJ,cAAA,mBACEzE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,UAAA,EAAY,OAAO,CAAA,EAClE,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,MAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC3D,QAAA,EAAA;AAAA,MAAA,OAAA,mBACCC,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAS,IAAA;AAAA,UACT,KAAA,EAAO,SAAA;AAAA,UACP,cACE,SAAA,IAAa,QAAA,CAAS,UAAA,CAAW,EAAE,UAA8B,CAAA;AAAA,UAEnE,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,YAAY,UAAU,CAAA;AAAA,UACrE,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,UAC1C,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,YAAA,IACE,CAAC,QAAA,IACD,CAAC,YAAA,CAAa,WAAA,IACb,MAAM,GAAA,KAAQ,WAAA,IAAe,KAAA,CAAM,GAAA,KAAQ,YAAA,EAC5C;AACA,cAAA;AAAA,YACF;AACA,YAAA,MAAM,YAAA,GAAe,YAAA,CAAa,WAAA,CAAY,OAAA,CAAQ,QAAQ,CAAA;AAC9D,YAAA,IAAI,eAAe,CAAA,EAAG;AACtB,YAAA,MAAM,GAAA,GAAM0E,MAAAA,CAAM,KAAA,CAAM,aAAa,CAAA;AACrC,YAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,EAAA,GAAK,CAAA;AACvD,YAAA,MAAM,SAAA,GAAY,YAAA,IAAgB,GAAA,GAAM,CAAC,aAAA,GAAgB,aAAA,CAAA;AACzD,YAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,WAAA,CAAY,SAAS,CAAA;AACzD,YAAA,IAAI,CAAC,cAAA,EAAgB;AACrB,YAAA,MAAM,SAAA,GAAY,kBAAA;AAAA,cAChB,YAAA,CAAa,WAAA;AAAA,cACb,QAAA;AAAA,cACA;AAAA,aACF;AACA,YAAA,IAAI,CAAC,SAAA,EAAW;AAChB,YAAA,KAAA,CAAM,cAAA,EAAe;AACrB,YAAA,YAAA,CAAa,sBAAsB,SAAA,EAAW;AAAA,cAC5C,QAAA;AAAA,cACA;AAAA,aACD,CAAA;AAAA,UACH,CAAA;AAAA,UACA,WAAA,EAAa,CAAC,KAAA,KAAU;AACtB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,YAAA,CAAa,oBAAoB,QAAQ,CAAA;AACzC,YAAA,KAAA,CAAM,aAAa,aAAA,GAAgB,MAAA;AACnC,YAAA,KAAA,CAAM,YAAA,CAAa,OAAA,CAAQ,yBAAA,EAA2B,QAAkB,CAAA;AAAA,UAC1E,CAAA;AAAA,UACA,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,YAAA,CAAa,oBAAoB,MAAS,CAAA;AAAA,UAC5C,CAAA;AAAA,UAEA,QAAA,kBAAA1E,IAAC,cAAA,EAAA,EAAe;AAAA;AAAA,OAClB,GACE,IAAA;AAAA,MACH,IAAA,mBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,gBACH,CAAA,GACE,IAAA;AAAA,MACH,kCACCD,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,UAAU,CAAC,MAAA;AAAA,UACX,KAAA,EAAO,SAAA;AAAA,UACP,YAAA,EAAY,kBAAA;AAAA,UACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,YAAY,UAAU,CAAA;AAAA,UACrE,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,UACnB,CAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,MAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,OAAO,CAAA,mBACxBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAC9D,mBACH,CAAA,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,oBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE;AAAA,aAAA,EACN,CAAA;AAAA,4BACAA,GAAAA;AAAA,cAAC,aAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,aAAA;AAAA,gBACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,YAAY,QAAQ;AAAA;AAAA;AACnE;AAAA;AAAA,OACF,mBAEAD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,OAAO,CAAA,mBACxBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAC9D,mBACH,CAAA,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,oBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EAEJ,CAAA;AAAA,IACC,kBAAkB,IAAI,CAAA,IAAK,kBAAkB,OAAO,CAAA,IAAK,kBAAkB,QAAQ,CAAA,mBAClFD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,gBAAA,EAAkB,UAAA,EAAY,OAAO,CAAA,EACjE,QAAA,EAAA;AAAA,MAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,gBACH,CAAA,GACE,IAAA;AAAA,MACH,OAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA,GAEA,QAAA;AAGJ,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA2C;AACjE,IAAA,UAAA,GAAa,KAAK,CAAA;AAClB,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,aAAa,gBAAA,IAAoB,YAAA,CAAa,qBAAqB,QAAA,EAAU;AAC5F,MAAA;AAAA,IACF;AACA,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAA,CAAM,aAAa,UAAA,GAAa,MAAA;AAAA,EAClC,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,KAA2C;AAC7D,IAAA,MAAA,GAAS,KAAK,CAAA;AACd,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,QAAA,EAAU;AAC3B,IAAA,MAAM,iBACJ,YAAA,CAAa,gBAAA,IACb,KAAA,CAAM,YAAA,CAAa,QAAQ,yBAAyB,CAAA;AACtD,IAAA,IAAI,CAAC,cAAA,IAAkB,cAAA,KAAmB,QAAA,EAAU;AAEpD,IAAA,MAAM,SAAA,GAAY,kBAAA;AAAA,MAChB,YAAA,CAAa,WAAA;AAAA,MACb,cAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,YAAA,CAAa,sBAAsB,SAAA,EAAW;AAAA,QAC5C,QAAA,EAAU,cAAA;AAAA,QACV,cAAA,EAAgB;AAAA,OACjB,CAAA;AAAA,IACH;AACA,IAAA,YAAA,CAAa,oBAAoB,MAAS,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,KAAA,KAAgD;AAC/E,IAAA,IACE,CAAC,SAAA,IACD,CAAC,QAAA,IACD,CAAC,YAAA,CAAa,kBAAA,IACb,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,KAAA,CAAM,WAAA,KAAgB,OAAA,EAC7C;AACA,MAAA;AAAA,IACF;AACA,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,gBAAA,CAAiB,OAAA,EAAQ;AAEzB,IAAA,MAAM,SAAS,KAAA,CAAM,OAAA;AACrB,IAAA,MAAM,YAAA,GACJ,kBAAA,IAAsB,OAAA,CAAQ,OAAA,EAAS,eAAe,QAAA,IAAY,EAAA;AACpE,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,YAAA,EAAc,QAAA,EAAU,QAAQ,CAAA;AACjE,IAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AACxB,IAAA,MAAM,SAAS,KAAA,CAAM,aAAA;AACrB,IAAA,MAAM,gBAAgB,MAAA,CAAO,aAAA;AAC7B,IAAA,MAAM,GAAA,GAAM0E,OAAM,MAAM,CAAA;AAExB,IAAA,MAAM,iBAAA,GAAoB,CAAC,SAAA,KAA4B;AACrD,MAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,MAAA,MAAM,SAAA,GAAY,UAAA;AAAA,QAChB,iBAAiB,GAAA,GAAM,MAAA,GAAS,SAAA,CAAU,OAAA,GAAU,UAAU,OAAA,GAAU,MAAA,CAAA;AAAA,QACxE,QAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,YAAA,CAAa,kBAAA,GAAqB,UAAU,SAAA,EAAW;AAAA,QACrD,QAAA;AAAA,QACA,aAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAA4B;AAC9C,MAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,MAAA,gBAAA,CAAiB,OAAA,EAAQ;AAAA,IAC3B,CAAA;AACA,IAAA,MAAM,iBAAA,GAAoB,CAAC,SAAA,KAA4B;AACrD,MAAA,IAAI,SAAA,CAAU,cAAc,SAAA,EAAW;AACvC,MAAA,gBAAA,CAAiB,OAAA,EAAQ;AAAA,IAC3B,CAAA;AAEA,IAAA,gBAAA,CAAiB,UAAU,MAAM;AAC/B,MAAA,aAAA,CAAc,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAClE,MAAA,aAAA,CAAc,mBAAA,CAAoB,aAAa,UAAU,CAAA;AACzD,MAAA,aAAA,CAAc,mBAAA,CAAoB,iBAAiB,UAAU,CAAA;AAC7D,MAAA,MAAA,CAAO,mBAAA,CAAoB,sBAAsB,iBAAiB,CAAA;AAClE,MAAA,IAAI,MAAA,CAAO,iBAAA,GAAoB,SAAS,CAAA,EAAG;AACzC,QAAA,MAAA,CAAO,wBAAwB,SAAS,CAAA;AAAA,MAC1C;AACA,MAAA,gBAAA,CAAiB,UAAU,MAAM;AAAA,MAAC,CAAA;AAAA,IACpC,CAAA;AACA,IAAAC,6BAAAA,CAA6B,QAAQ,SAAS,CAAA;AAC9C,IAAA,aAAA,CAAc,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC/D,IAAA,aAAA,CAAc,gBAAA,CAAiB,aAAa,UAAU,CAAA;AACtD,IAAA,aAAA,CAAc,gBAAA,CAAiB,iBAAiB,UAAU,CAAA;AAC1D,IAAA,MAAA,CAAO,gBAAA,CAAiB,sBAAsB,iBAAiB,CAAA;AAAA,EACjE,CAAA;AAEA,EAAA,MAAM,kBAAA,GACJ,OAAO,eAAA,KAAoB,QAAA,GACvB,WAAW,eAAA,EAAiB,QAAA,EAAU,QAAQ,CAAA,GAC9C,aAAA;AACN,EAAA,MAAM,uBACJ,kBAAA,IAAsB,UAAA,CAAW,QAAA,IAAY,EAAA,EAAI,UAAU,QAAQ,CAAA;AAErE,EAAA,MAAM,mBAAA,GAAsB,CAC1B,KAAA,KACG;AACH,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,QAAA,IAAY,CAAC,aAAa,kBAAA,EAAoB;AACjE,IAAA,MAAM,GAAA,GAAMD,MAAAA,CAAM,KAAA,CAAM,aAAa,CAAA;AACrC,IAAA,MAAM,gBACJ,kBAAA,IACA,UAAA;AAAA,MACE,OAAA,CAAQ,OAAA,EAAS,WAAA,IAAe,QAAA,IAAY,EAAA;AAAA,MAC5C,QAAA;AAAA,MACA;AAAA,KACF;AACF,IAAA,IAAI,SAAA;AACJ,IAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAC7B,MAAA,SAAA,GAAY,aAAA,IAAiB,GAAA,GAAM,2BAAA,GAA8B,CAAC,2BAAA,CAAA;AAAA,IACpE;AACA,IAAA,IAAI,KAAA,CAAM,QAAQ,YAAA,EAAc;AAC9B,MAAA,SAAA,GAAY,aAAA,IAAiB,GAAA,GAAM,CAAC,2BAAA,GAA8B,2BAAA,CAAA;AAAA,IACpE;AACA,IAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,MAAA,IAAU,QAAA,KAAa,QAAW,SAAA,GAAY,QAAA;AAChE,IAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,IAAS,QAAA,KAAa,QAAW,SAAA,GAAY,QAAA;AAC/D,IAAA,IAAI,cAAc,MAAA,EAAW;AAC7B,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,YAAA,CAAa,kBAAA;AAAA,MACX,QAAA;AAAA,MACA,UAAA,CAAW,SAAA,EAAW,QAAA,EAAU,QAAQ,CAAA;AAAA,MACxC;AAAA,QACE,QAAA;AAAA,QACA,aAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF,CAAA;AAEA,EAAA5E,UAAU,MAAM;AACd,IAAA,IAAI,OAAO,oBAAoB,QAAA,EAAU;AACvC,MAAA,gBAAA,CAAiB,MAAS,CAAA;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,OAAA,EAAS,qBAAA,EAAsB,CAAE,KAAA;AAC1D,IAAA,IAAI,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA,EAAG;AACzC,MAAA,MAAM,SAAA,GAAY,UAAA,CAAW,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA;AACzD,MAAA,gBAAA;AAAA,QAAiB,CAAC,OAAA,KAChB,OAAA,KAAY,SAAA,GAAY,OAAA,GAAU;AAAA,OACpC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,eAAA,EAAiB,QAAA,EAAU,QAAA,EAAU,SAAS,CAAC,CAAA;AAEnD,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,SAAA,EAAW,gBAAA,CAAiB,OAAA,EAAQ;AACzC,IAAA,OAAO,MAAM,iBAAiB,OAAA,EAAQ;AAAA,EACxC,GAAG,CAAC,SAAA,EAAW,QAAA,EAAU,YAAA,CAAa,kBAAkB,CAAC,CAAA;AAEzD,EAAA,uBACEC,IAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAA,EAAK,UAAA;AAAA,MACL,WAAA,EAAU,MAAA;AAAA,MACV,KAAA,EAAO,UAAU,KAAA,IAAS,KAAA;AAAA,MAC1B,WAAA,EAAW,QAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,SAAA;AAAA,QACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,QAC7B,aAAA,KAAkB,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,QAC1C,aAAA,KAAkB,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,QACzC,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,QAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,QAClD,KAAA,EAAO,aAAA,GAAgB,MAAA,GAAY6E,UAAAA,CAAU,eAAe,CAAA;AAAA,QAC5D,QAAA,EAAU,aAAA,GAAgB,MAAA,GAAYA,UAAAA,CAAU,QAAQ,CAAA;AAAA,QACxD,QAAA,EAAU,aAAA,GAAgB,MAAA,GAAYA,UAAAA,CAAU,QAAQ,CAAA;AAAA,QACxD,GAAI,aAAA,GACA;AAAA,UACE,UAAA,EAAY,uBAAuB,qBAAqB,CAAA;AAAA,UACxD,cAAA,EAAgB,2BAA2B,aAAa,CAAA;AAAA,UACxD,SAAA,EAAW;AAAA,SACb,GACA,aAAA,GACE,EAAE,aAAA,EAAc,GAChB,MAAA;AAAA,QACN,GAAG;AAAA,OACL;AAAA,MACA,UAAA,EAAY,cAAA;AAAA,MACZ,MAAA,EAAQ,UAAA;AAAA,MAEP,QAAA,EAAA;AAAA,QAAA,eAAA;AAAA,QACA,4BACC5E,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,WAAA;AAAA,YACL,kBAAA,EAAiB,UAAA;AAAA,YACjB,eAAA,EAAe,oBAAA;AAAA,YACf,iBAAe,QAAA,IAAY,EAAA;AAAA,YAC3B,eAAA,EAAe,QAAA;AAAA,YACf,gBAAA,EAAgB,GAAG,oBAAoB,CAAA,EAAA,CAAA;AAAA,YACvC,KAAA,EAAO,WAAA;AAAA,YACP,cACE,WAAA,IAAe,QAAA,CAAS,YAAA,CAAa,EAAE,UAA8B,CAAA;AAAA,YAEvE,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,qBAAA,EAAuB,YAAY,YAAY,CAAA;AAAA,YACzE,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,YAC1C,SAAA,EAAW,mBAAA;AAAA,YACX,aAAA,EAAe;AAAA;AAAA,SACjB,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;AAEM,IAAM,aAAA,GAAgBL,UAAAA;AAAA,EAC3B,SAASyF,cAAAA,CACP;AAAA,IACE,KAAA,GAAQ,MAAA;AAAA,IACR,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACF,IAAA,UAAA,CAAW,cAAc,KAAA,EAAO,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAU,CAAA;AACpE,IAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxD,IAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AAEjC,IAAA,uBACEpF,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,UAC7B,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,UAClC,KAAA,KAAU,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,UACjC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,UAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAClD,GAAG;AAAA;AACL;AAAA,KACF;AAAA,EAEJ;AAAC;AAEM,IAAM,gBAAA,GAAmBL,UAAAA,CAG9B,SAAS0F,iBAAAA,CACT,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,GAAG,YAAA,EAAa,EAC5D,GAAA,EACA;AACA,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,mBAAA,CAAoB,UAAU,CAAA;AAEhD,EAAA,uBACErF,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,GAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MACnE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,QAChB,GAAG;AAAA;AACL;AAAA,GACF;AAEJ,CAAC;AAEM,IAAM,cAAA,GAAiBL,UAAAA;AAAA,EAC5B,SAAS2F,eAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACF,IAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,OAAO,CAAA,IAAK,UAAU,CAAA,EAAG;AACjD,MAAA,MAAM,IAAI,MAAM,0DAA0D,CAAA;AAAA,IAC5E;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxD,IAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AACjC,IAAA,MAAM,oBAAA,GACJ,iBAAA,CAAkB,IAAI,CAAA,IACtB,iBAAA,CAAkB,KAAK,CAAA,IACvB,iBAAA,CAAkB,WAAW,CAAA,IAC7B,iBAAA,CAAkB,OAAO,CAAA;AAE3B,IAAA,uBACEtF,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACE,GAAG,UAAA;AAAA,QACJ,GAAA;AAAA,QACA,WAAA,EAAU,WAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,aAAA;AAAA,UACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,aAAA;AAAA,UAC7B,UAAA,EAAY,GAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,aAAA,GAAgB,MAAA;AAAA,UACjD,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,kBAAAA,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,WAAA,EAAU,YAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,cAAA;AAAA,cACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,cAC7B,UAAA,EAAY;AAAA,aACd;AAAA,YACA,KAAA,EAAO,aAAA,GAAgB,EAAE,UAAA,EAAY,UAAS,GAAI,MAAA;AAAA,YAEjD,QAAA,EAAA,oBAAA,mBACCD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,UAAA,EAAY,OAAO,CAAA,EAClE,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,IAAI,CAAA,EAC5D,gBACH,CAAA,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,KAAK,CAAA,mBACtBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,eAAA,EAAiB,UAAA,EAAY,KAAK,CAAA,EAC9D,iBACH,CAAA,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,qBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,iBAAA,EAAmB,UAAA,EAAY,OAAO,CAAA,EAClE,mBACH,CAAA,GACE;AAAA,aAAA,EACN,CAAA,GAEA;AAAA;AAAA;AAEJ;AAAA,KACF;AAAA,EAEJ;AAAC;AAEM,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA,GAAO,CAAA;AAAA,EACP,OAAA;AAAA,EACA,eAAe,EAAC;AAAA,EAChB,QAAA,GAAW,IAAA;AAAA,EACX,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,IAAI,CAAA,IAAK,OAAO,CAAA,EAAG;AAC3C,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,OAAO,CAAA,IAAK,UAAU,CAAA,EAAG;AACjD,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,EAAG;AAChC,IAAA,MAAM,IAAI,MAAM,kDAAkD,CAAA;AAAA,EACpE;AACA,EAAA,YAAA,CAAa,OAAA;AAAA,IAAQ,CAAC,KAAA,EAAO,KAAA,KAC3B,qBAAqB,KAAA,EAAO,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAA,CAAA,EAAK;AAAA,MAC5D,aAAA,EAAe;AAAA,KAChB;AAAA,GACH;AACA,EAAAyE,cAAAA,CAAc,oBAAoB,QAAQ,CAAA;AAC1C,EAAA,mBAAA,CAAoB,oBAAoB,QAAQ,CAAA;AAChD,EAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,oBAAoB,UAAU,CAAA;AACxD,EAAA,MAAM,QAAA,GAAW,0BAAyB,CAAE,KAAA;AAC5C,EAAA,MAAM,gBAAA,GAAmB,YAAY,QAAA,CAAS,UAAA;AAC9C,EAAA,MAAM,gBAAgB,MAAA,KAAW,cAAA;AAEjC,EAAA,uBACEzE,GAAAA,CAAAW,QAAAA,EAAA,EACG,gBAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,6BACpCX,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MAEC,WAAA,EAAU,aAAA;AAAA,MACV,YAAA,EAAY,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAAI,WAAW,CAAC,CAAA,CAAA;AAAA,MAC/C,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,eAAA;AAAA,QACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,aAAA;AAAA,QAC7B,UAAA,EAAY,GAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,QAChB,GAAI,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,aAAA,GAAgB,MAAA;AAAA,QACjD,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,EAAA,EAAI,WAAA,qBACxCA,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UAEC,WAAA,EAAU,cAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,MAAM,KAAA,CAAM,gBAAA;AAAA,YACZ,aAAA,IAAiB,MAAM,KAAA,CAAM,cAAA;AAAA,YAC7B,UAAA,EAAY;AAAA,WACd;AAAA,UAEA,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,WAAA,EAAU,kBAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,oBAAA;AAAA,gBACZ,QAAA,IAAY,0CAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO4E,UAAAA,CAAU,YAAA,CAAa,WAAW,CAAC;AAAA;AAC5C;AAAA;AACF,SAAA;AAAA,QAnBK;AAAA,OAqBR;AAAA,KAAA;AAAA,IAvCI;AAAA,GAyCR,CAAA,EACH,CAAA;AAEJ;AC3gDO,IAAM,kBAAA,GAAqBjF,UAAAA,CAGhC,SAAS4F,mBAAAA,CACT;AAAA,EACE,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,IAAI,OAAO,aAAa,SAAA,EAAW;AACjC,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,uBACExF,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,cAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,kBAAA;AAAA,MACvB,WAAA,EAAU,YAAA;AAAA,MACV,4BAAA,EAA2B,EAAA;AAAA,MAC3B,eAAA,EAAe,WAAW,EAAA,GAAK,MAAA;AAAA,MAC/B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,QAAA,IAAY,MAAM,KAAA,CAAM,sBAAA;AAAA,QACxB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,cAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,OAAO,CAAA,mBACxBC,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,qBAAA,EAAuB,UAAA,EAAY,OAAO,CAAA,EACtE,mBACH,CAAA,GACE,IAAA;AAAA,QAEH,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,qBAAA,EAAuB,UAAA,EAAY,OAAO,CAAA,EACtE,UACH,CAAA,GACE,IAAA;AAAA,QAEH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,qBAAA,EAAuB,UAAA,EAAY,OAAO,CAAA,EACtE,mBACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;ACzDD,SAAS,iBAAA,CAAkB;AAAA,EACzB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,UAAU,kCAAkC,CAAA;AAAA,EACxD;AACA,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,QAAA,EAAU;AACpD,IAAA,MAAM,IAAI,UAAU,kCAAkC,CAAA;AAAA,EACxD;AACA,EAAA,IAAI,YAAA,KAAiB,MAAA,IAAa,OAAO,YAAA,KAAiB,QAAA,EAAU;AAClE,IAAA,MAAM,IAAI,UAAU,yCAAyC,CAAA;AAAA,EAC/D;AACA,EAAA,IAAI,WAAA,KAAgB,YAAA,IAAgB,WAAA,KAAgB,UAAA,EAAY;AAC9D,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,cAAA,KAAmB,WAAA,IAAe,cAAA,KAAmB,QAAA,EAAU;AACjE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAY;AAC/B,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,IAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,uBAAA,EAA0B,KAAK,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC1E;AACA,IAAA,IAAI,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,EAAU;AAClC,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,gCAAgC,KAAK,CAAA,kBAAA;AAAA,OACvC;AAAA,IACF;AACA,IAAA,IAAI,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA,EAAG;AAC1B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,0DACqB,IAAA,CAAK,SAAA,CAAU,KAAK,KAAK,CAAC,aAAa,KAAK,CAAA,CAAA;AAAA,OACnE;AAAA,IACF;AACA,IAAA,IAAI,KAAK,QAAA,KAAa,MAAA,IAAa,OAAO,IAAA,CAAK,aAAa,SAAA,EAAW;AACrE,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,mCAAmC,KAAK,CAAA,mBAAA;AAAA,OAC1C;AAAA,IACF;AACA,IAAA,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,EACvB,CAAC,CAAA;AACH;AAEA,SAAS,gBAAA,CAAiB,OAAuB,SAAA,EAAoB;AACnE,EAAA,IACE,SAAA,KAAc,MAAA,IACd,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,KAAA,KAAU,SAAA,IAAa,CAAC,IAAA,CAAK,QAAQ,CAAA,EAC/D;AACA,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAM,IAAA,CAAK,CAAC,SAAS,CAAC,IAAA,CAAK,QAAQ,CAAA,EAAG,KAAA;AAC/C;AAEA,SAASiD,SAAQ,KAAA,EAAe;AAC9B,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,GAAG,CAAA;AAC7C;AAEA,SAASuC,mBAAkB,KAAA,EAAuB;AAChD,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAAY;AAEtC,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAChC,IAAA,MAAM,YAAA,GAAevC,QAAAA,CAAQ,IAAA,CAAK,KAAK,CAAA;AACvC,IAAA,IAAI,QAAA,GAAW,YAAA;AAEf,IAAA,IAAI,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC/B,MAAA,QAAA,GAAW,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AACnC,MAAA,OAAO,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,EAAG;AAClC,QAAA,QAAA,GAAW,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,MACjC;AAAA,IACF;AAEA,IAAA,aAAA,CAAc,IAAI,QAAQ,CAAA;AAC1B,IAAA,OAAO,QAAA;AAAA,EACT,CAAC,CAAA;AACH;AAEA,SAAS,iBAAA,CACP,OACA,GAAA,EACA;AACA,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,aAAA,CAAc,aAAA,CAAc,WAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,IAAA,EAAM,gBAAA,CAAiB,KAAA,CAAM,aAAa,CAAA,CAAE,SAAA;AAC9D,EAAA,MAAM,MAAM,SAAA,KAAc,KAAA;AAE1B,EAAA,IAAI,GAAA,KAAQ,YAAA,EAAc,OAAO,GAAA,GAAM,EAAA,GAAK,CAAA;AAC5C,EAAA,OAAO,MAAM,CAAA,GAAI,EAAA;AACnB;AAEO,IAAM,QAAA,GAAWtD,UAAAA;AAAA,EACtB,SAAS8F,SAAAA,CACP;AAAA,IACE,QAAQ,EAAC;AAAA,IACT,KAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA,GAAc,YAAA;AAAA,IACd,cAAA,GAAiB,WAAA;AAAA,IACjB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,EAAA;AAAA,IACA,YAAA,EAAc,gBAAA;AAAA,IACd,iBAAA,EAAmB,qBAAA;AAAA,IACnB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,iBAAA,CAAkB;AAAA,MAChB,KAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,cAAc5D,KAAAA,EAAM;AAC1B,IAAA,MAAM,SAAS,EAAA,IAAM,WAAA;AACrB,IAAA,MAAM,gBAAA,GAAmB,KAAA,KAAU,MAAA,GAAY,KAAA,GAAQ,YAAA;AACvD,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIhC,QAAAA;AAAA,MAAS,MACzD,gBAAA,CAAiB,KAAA,EAAO,YAAY;AAAA,KACtC;AACA,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,QAAAA;AAAA,MAAS,MAC/C,gBAAA,CAAiB,KAAA,EAAO,gBAAgB;AAAA,KAC1C;AACA,IAAA,MAAM,WAAA,GAAcS,MAAAA,CAAwC,EAAE,CAAA;AAC9D,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,aAAA,GAAgB,gBAAA;AAAA,MACpB,KAAA;AAAA,MACA,eAAe,KAAA,GAAQ;AAAA,KACzB;AACA,IAAA,MAAM,gBAAgB,KAAA,CAAM,SAAA;AAAA,MAC1B,CAAC,IAAA,KAAS,IAAA,CAAK,KAAA,KAAU,aAAA,IAAiB,CAAC,IAAA,CAAK;AAAA,KAClD;AACA,IAAA,MAAM,YAAA,GAAe,aAAA,IAAiB,CAAA,GAAI,KAAA,CAAM,aAAa,CAAA,GAAI,MAAA;AACjE,IAAA,MAAM,iBAAiB,KAAA,CAAM,MAAA,CAAiB,CAAC,OAAA,EAAS,MAAM,KAAA,KAAU;AACtE,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAA,CAAQ,KAAK,KAAK,CAAA;AACtC,MAAA,OAAO,OAAA;AAAA,IACT,CAAA,EAAG,EAAE,CAAA;AACL,IAAA,MAAM,mBAAmB,KAAA,CAAM,SAAA;AAAA,MAC7B,CAAC,IAAA,KAAS,IAAA,CAAK,KAAA,KAAU,YAAA,IAAgB,CAAC,IAAA,CAAK;AAAA,KACjD;AACA,IAAA,MAAM,WAAA,GACJ,gBAAA,IAAoB,CAAA,GAAI,gBAAA,GAAmB,aAAA;AAC7C,IAAA,MAAM,WAAA,GAAckF,mBAAkB,KAAK,CAAA;AAC3C,IAAA,MAAM,UAAA,GAAa,eAAe,QAAA,GAAW,UAAA;AAC7C,IAAA,MAAM,iBACJ,OAAO,SAAA,CAAU,QAAQ,QAAA,GACrB,SAAA,CAAU,MACV,mBAAA,CAAoB,GAAA;AAE1B,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAuB;AAC3C,MAAA,IAAI,KAAK,QAAA,EAAU;AACnB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,oBAAA,CAAqB,KAAK,KAAK,CAAA;AAAA,MACjC;AACA,MAAA,aAAA,GAAgB,KAAK,KAAK,CAAA;AAAA,IAC5B,CAAA;AAEA,IAAA,MAAM,SAAA,GAAY,CAChB,KAAA,EACA,WAAA,KACG;AACH,MAAA,MAAM,UAAA,GAAa,MAAM,WAAW,CAAA;AACpC,MAAA,IAAI,CAAC,UAAA,IAAc,UAAA,CAAW,QAAA,EAAU;AAExC,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,eAAA,CAAgB,WAAW,KAAK,CAAA;AAChC,MAAA,WAAA,CAAY,OAAA,CAAQ,WAAW,CAAA,EAAG,KAAA,EAAM;AACxC,MAAA,IAAI,mBAAmB,WAAA,EAAa;AAClC,QAAA,YAAA,CAAa,UAAU,CAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,EACA,IAAA,EACA,KAAA,KACG;AACH,MAAA,IAAI,KAAK,QAAA,EAAU;AAEnB,MAAA,IACE,mBAAmB,QAAA,KAClB,KAAA,CAAM,QAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,CAAA,EACxC;AACA,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AACjC,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,EAAQ;AACxB,QAAA,SAAA,CAAU,KAAA,EAAO,cAAA,CAAe,CAAC,CAAC,CAAA;AAClC,QAAA;AAAA,MACF;AACA,MAAA,IAAI,KAAA,CAAM,QAAQ,KAAA,EAAO;AACvB,QAAA,SAAA,CAAU,KAAA,EAAO,cAAA,CAAe,cAAA,CAAe,MAAA,GAAS,CAAC,CAAC,CAAA;AAC1D,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,IAAA;AACJ,MAAA,IACE,gBAAgB,YAAA,KACf,KAAA,CAAM,QAAQ,WAAA,IAAe,KAAA,CAAM,QAAQ,YAAA,CAAA,EAC5C;AACA,QAAA,IAAA,GAAO,iBAAA,CAAkB,KAAA,EAAO,KAAA,CAAM,GAAG,CAAA;AAAA,MAC3C,CAAA,MAAA,IAAW,WAAA,KAAgB,UAAA,IAAc,KAAA,CAAM,QAAQ,SAAA,EAAW;AAChE,QAAA,IAAA,GAAO,EAAA;AAAA,MACT,CAAA,MAAA,IAAW,WAAA,KAAgB,UAAA,IAAc,KAAA,CAAM,QAAQ,WAAA,EAAa;AAClE,QAAA,IAAA,GAAO,CAAA;AAAA,MACT;AACA,MAAA,IAAI,SAAS,MAAA,EAAW;AAExB,MAAA,MAAM,eAAA,GAAkB,cAAA,CAAe,OAAA,CAAQ,KAAK,CAAA;AACpD,MAAA,MAAM,YAAA,GAAA,CACH,eAAA,GAAkB,IAAA,GAAO,cAAA,CAAe,UACzC,cAAA,CAAe,MAAA;AACjB,MAAA,SAAA,CAAU,KAAA,EAAO,cAAA,CAAe,YAAY,CAAC,CAAA;AAAA,IAC/C,CAAA;AAEA,IAAA,uBACEzF,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,wBAAA,EAAuB,MAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,UAAA;AAAA,QACZ,kBAAA,EAAkB,WAAA;AAAA,QAClB,sBAAA,EAAsB,cAAA;AAAA,QACtB,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,QAAA,EAAU,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAC/D,KAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,GAAA,EAAK,cAAA;AAAA,cACL,IAAA,EAAK,SAAA;AAAA,cACL,YAAA,EAAY,gBAAA;AAAA,cACZ,iBAAA,EAAiB,qBAAA;AAAA,cACjB,kBAAA,EAAkB,WAAA;AAAA,cAClB,wBAAA,EAAuB,MAAA;AAAA,cACvB,WAAA,EAAU,MAAA;AAAA,cACV,YAAA,EAAY,UAAA;AAAA,cACZ,kBAAA,EAAkB,WAAA;AAAA,cAClB,sBAAA,EAAsB,cAAA;AAAA,cACtB,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,QAAA;AAAA,gBACZ,gBAAgB,UAAA,IAAc,wBAAA;AAAA,gBAC9B,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,QAAA;AAAA,cAEnB,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,gBAAA,MAAM,MAAA,GAAS,YAAY,KAAK,CAAA;AAChC,gBAAA,MAAM,WAAW,KAAA,KAAU,aAAA;AAC3B,gBAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,QAAA,GACf,UAAA,GACA,WACE,QAAA,GACA,UAAA;AAEN,gBAAA,uBACEmC,aAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,mBAAA;AAAA,oBACJ,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,sBAAA,WAAA,CAAY,OAAA,CAAQ,KAAK,CAAA,GAAI,IAAA;AAAA,oBAC/B,CAAA;AAAA,oBACA,KAAK,IAAA,CAAK,KAAA;AAAA,oBACV,EAAA,EAAI,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,IAAA,CAAA;AAAA,oBACvB,IAAA,EAAK,QAAA;AAAA,oBACL,IAAA,EAAK,KAAA;AAAA,oBACL,UAAU,CAAC,IAAA,CAAK,QAAA,IAAY,KAAA,KAAU,cAAc,CAAA,GAAI,EAAA;AAAA,oBACxD,eAAA,EAAe,QAAA;AAAA,oBACf,eAAA,EAAe,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,MAAA,CAAA;AAAA,oBAClC,UAAU,IAAA,CAAK,QAAA;AAAA,oBACf,GAAA,EAAK,cAAA;AAAA,oBACL,wBAAA,EAAuB,MAAA;AAAA,oBACvB,WAAA,EAAU,SAAA;AAAA,oBACV,YAAA,EAAY,KAAA;AAAA,oBACZ,kBAAA,EAAkB,WAAA;AAAA,oBAClB,sBAAA,EAAsB,cAAA;AAAA,oBACtB,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,oBAChC,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,WAAA;AAAA,sBACZ,QAAA,IAAY,MAAM,KAAA,CAAM,iBAAA;AAAA,sBACxB,IAAA,CAAK,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,sBAC7B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,oBACpB,OAAA,EAAS,MAAM,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAAA,oBACzC,WAAW,CAAC,KAAA,KAAU,aAAA,CAAc,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,oBACtD,SAAS,MAAM;AACb,sBAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAC1B,sBAAA,YAAA,CAAa,IAAI,CAAA;AAAA,oBACnB;AAAA,mBAAA;AAAA,kCAEAnC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,eAAK,KAAA,EAAM;AAAA,iBACjD;AAAA,cAEJ,CAAC;AAAA;AAAA,WACH;AAAA,UAEC,+BACCA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACE,GAAG,mBAAA;AAAA,cACJ,IAAI,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,WAAA,CAAY,aAAa,CAAC,CAAA,MAAA,CAAA;AAAA,cAC3C,IAAA,EAAK,UAAA;AAAA,cACL,QAAA,EAAU,CAAA;AAAA,cACV,mBAAiB,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,WAAA,CAAY,aAAa,CAAC,CAAA,IAAA,CAAA;AAAA,cACxD,GAAA,EAAK,cAAA;AAAA,cACL,wBAAA,EAAuB,MAAA;AAAA,cACvB,WAAA,EAAU,OAAA;AAAA,cACV,YAAA,EAAW,QAAA;AAAA,cACX,kBAAA,EAAkB,WAAA;AAAA,cAClB,sBAAA,EAAsB,cAAA;AAAA,cACtB,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,SAAA,EAAW,YAAY,KAAK,CAAA;AAAA,cACtD,KAAA,EAAO,MAAM,MAAA,CAAO,SAAA;AAAA,cAEnB,4BAAkB,YAAA,CAAa,OAAO,CAAA,GACrC,YAAA,CAAa,UACX,iBAAA,CAAkB,YAAA,CAAa,WAAW,CAAA,mBAC5CA,GAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,2BAAA,EACV,QAAA,EAAA,YAAA,CAAa,aAChB,CAAA,GACE;AAAA;AAAA,WACN,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AC/VA,IAAM0F,sBAAAA,GAAwB;AAAA,EAC5B,EAAA,EAAI,0CAAA;AAAA,EACJ,EAAA,EAAI,sCAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,YAAA,GAAe/F,UAAAA;AAAA,EAC1B,SAASgG,aAAAA,CACP;AAAA,IACE,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,MAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK;AAAA,MAC1B,CAAC,WAAW,OAAO,CAAA;AAAA,MACnB,CAAC,YAAY,QAAQ,CAAA;AAAA,MACrB,CAAC,YAAY,QAAQ;AAAA,KACvB,EAAY;AACV,MAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,aAAA,EAAgB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC/D;AAAA,IACF;AACA,IAAA,IACE,gBAAgB,MAAA,IAChB,WAAA,KAAgB,QAChB,WAAA,KAAgB,IAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,MAAA,MAAM,IAAI,SAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,eAAe,mBAAA,EAAoB;AACzC,IAAA,MAAM,eAAA,GAAkB,WAAW,YAAA,CAAa,OAAA;AAEhD,IAAA,uBACE3F,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAc,sBAAsB,eAAA,IAAmB,MAAA,CAAA;AAAA,QACvD,wBAAA,EAAuB,UAAA;AAAA,QACvB,WAAA,EAAU,SAAA;AAAA,QACV,WAAA,EAAW,WAAA;AAAA,QACX,gBAAc,eAAA,IAAmB,MAAA;AAAA,QACjC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,MAAM,KAAA,CAAM,WAAA;AAAA,UACZ,MAAM,KAAA,CAAM,eAAA;AAAA,UACZ,eAAA,IAAmB,MAAM,KAAA,CAAM,cAAA;AAAA,UAC/B,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,WAAA,IAAe0F,uBAAsB,WAAW,CAAA;AAAA,UAChD,UAAA,EAAY,OAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,eAAA,GAAkB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UACpD,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QACA,MAAA,EAAQ,CAAC,KAAA,KAAU;AACjB,UAAA,MAAA,GAAS,KAAK,CAAA;AACd,UAAA,YAAA,CAAa,UAAA,CAAW,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,QACnD,CAAA;AAAA,QACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,UAAA,QAAA,GAAW,KAAK,CAAA;AAChB,UAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,QACrD;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;ACzFO,IAAM,QAAA,GAAW/F,UAAAA,CAAuC,SAASiG,SAAAA,CACtE;AAAA,EACE,EAAA,GAAK,GAAA;AAAA,EACL,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,IAAA,GAAO,SAAA;AAAA,EACP,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,OAAOzD,aAAAA;AAAA,IACL,EAAA;AAAA,IACA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACH,GAAA;AAAA,MACA,wBAAA,EAA0B,MAAA;AAAA,MAC1B,WAAA,EAAa,MAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,WAAA,EAAa,IAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,QAAA;AAAA,QACZ,wBAAA,CAAyB,OAAO,IAAI,CAAA;AAAA,QACpC,8BAAA,CAA+B,OAAO,IAAI,CAAA;AAAA,QAC1C,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,QAChB,GAAG;AAAA;AACL,KACF;AAAA,IACA;AAAA,GACF;AACF,CAAC;ACtCD,SAASd,gBAAAA,CAAgB,OAAgB,IAAA,EAAc;AACrD,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,YAAA,EAAe,IAAI,CAAA,mBAAA,CAAqB,CAAA;AAAA,EAC9D;AACF;AAEA,SAASwE,mBAAkB,KAAA,EAAgB;AACzC,EAAA,IACE,UAAU,KAAA,IACV,KAAA,KAAU,YACV,KAAA,KAAU,MAAA,IACV,UAAU,OAAA,EACV;AACA,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,gBAAA,CAAiB,UAAqB,QAAA,EAAmB;AAChE,EAAA,IAAIC,cAAAA,CAAe,QAAQ,CAAA,IAAK,QAAA,CAAS,SAASnF,UAAAA,EAAU;AAC1D,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,uBACEX,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,CAAC,QAAA,IAAY,iBAAA,CAAkB,QAAQ,CAAA,GAAI,CAAA,GAAI,MAAA,EAC5D,QAAA,EACH,CAAA;AAEJ;AAEO,IAAM,WAAA,GAAcL,UAAAA;AAAA,EACzB,SAASoG,YAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA,GAAY,KAAA;AAAA,IACZ,QAAA,GAAW,KAAA;AAAA,IACX,MAAA,GAAS,KAAA;AAAA,IACT,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,IAAI,IAAA,KAAS,MAAA,EAAW1E,gBAAAA,CAAgB,MAAM,MAAM,CAAA;AACpD,IAAAA,gBAAAA,CAAgB,aAAa,aAAa,CAAA;AAC1C,IAAAA,gBAAAA,CAAgB,UAAU,UAAU,CAAA;AACpC,IAAAA,gBAAAA,CAAgB,QAAQ,QAAQ,CAAA;AAChC,IAAAwE,mBAAkB,SAAS,CAAA;AAE3B,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,IAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,IAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AACtD,IAAA,MAAM,gBAAgB,oBAAA,CAAqB,EAAE,QAAA,EAAU,CAAC,QAAQ,CAAA;AAChE,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIhG,SAAS,WAAW,CAAA;AACpE,IAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,IAAA,MAAM,OAAA,GAAU,CAAC,QAAA,IAAY,iBAAA,CAAkB,OAAO,CAAA;AACtD,IAAA,MAAM,aAAA,GAAgB,eAAe,IAAA,GAAO,gBAAA;AAC5C,IAAA,MAAM,SAAS,OAAA,IAAW,aAAA;AAC1B,IAAA,MAAM,WAAA,GACJ,MAAA,IAAU,aAAA,CAAc,YAAA,GAAe,UAAA,GAAa,QAAA;AAEtD,IAAA,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAsB;AAC9C,MAAA,IAAI,QAAA,IAAY,CAAC,OAAA,EAAS;AAC1B,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,MAC9B;AACA,MAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,QAAA,EAAU,QAAQ,CAAA;AACnD,IAAA,MAAM,cAAA,GAAiB,0BACrBG,GAAAA;AAAA,MAAS,OAAA,CAAA,OAAA;AAAA,MAAR;AAAA,QACE,GAAG,mBAAA;AAAA,QACJ,IAAA,EAAM,SAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,gBAAA,EAAkB,CAAA;AAAA,QAClB,wBAAA,EAAuB,SAAA;AAAA,QACvB,WAAA,EAAU,SAAA;AAAA,QACV,gBAAA,EAAgB,SAAA;AAAA,QAChB,aAAA,EAAa,WAAA;AAAA,QACb,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,OAAO,CAAA;AAAA,QAC7D,KAAA,EAAO,MAAM,MAAA,CAAO,OAAA;AAAA,QAEnB,QAAA,EAAA;AAAA;AAAA,KACH,GACE,IAAA;AAEJ,IAAA,uBACEA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,mBAAA;AAAA,QACH,GAAG,YAAA;AAAA,QACJ,GAAA;AAAA,QACA,wBAAA,EAAuB,SAAA;AAAA,QACvB,WAAA,EAAU,MAAA;AAAA,QACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,QAC9B,gBAAA,EAAgB,SAAA;AAAA,QAChB,aAAA,EAAa,WAAA;AAAA,QACb,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,WAAA,EAAa,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAClE,KAAA;AAAA,QAEA,QAAA,kBAAAA,GAAAA;AAAA,UAAS,OAAA,CAAA,QAAA;AAAA,UAAR;AAAA,YACC,aAAA,EAAe,CAAA;AAAA,YACf,iBAAA,EAAmB,CAAA;AAAA,YACnB,uBAAA,EAAuB,IAAA;AAAA,YAEvB,QAAA,kBAAAD,IAAAA;AAAA,cAAS,OAAA,CAAA,IAAA;AAAA,cAAR;AAAA,gBACC,IAAA,EAAM,MAAA;AAAA,gBACN,YAAA,EAAc,gBAAA;AAAA,gBACd,aAAA,EAAe,CAAA;AAAA,gBACf,uBAAA,EAAuB,IAAA;AAAA,gBAEvB,QAAA,EAAA;AAAA,kCAAAC,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACE,GAAG,mBAAA;AAAA,sBACJ,wBAAA,EAAuB,SAAA;AAAA,sBACvB,WAAA,EAAU,iBAAA;AAAA,sBACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,sBAC9B,gBAAA,EAAgB,SAAA;AAAA,sBAChB,aAAA,EAAa,WAAA;AAAA,sBACb,iBAAe,QAAA,IAAY,MAAA;AAAA,sBAC3B,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,YAAY,OAAO,CAAA;AAAA,sBAE7D,QAAA,kBAAAA,GAAAA;AAAA,wBAAS,OAAA,CAAA,OAAA;AAAA,wBAAR;AAAA,0BACC,OAAA,EAAO,IAAA;AAAA,0BACN,GAAG,mBAAA;AAAA,0BACJ,wBAAA,EAAuB,SAAA;AAAA,0BACvB,WAAA,EAAU,SAAA;AAAA,0BACV,gBAAA,EAAgB,SAAA;AAAA,0BAChB,aAAA,EAAa,WAAA;AAAA,0BACb,iBAAe,QAAA,IAAY,MAAA;AAAA,0BAE1B,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,mBACF;AAAA,kBACC,MAAA,IAAU,aAAA,CAAc,YAAA,mBACvBA,GAAAA,CAAS,OAAA,CAAA,MAAA,EAAR,EAAgB,GAAG,aAAA,CAAc,gBAAA,EAC/B,QAAA,EAAA,cAAA,EACH,CAAA,GAEA;AAAA;AAAA;AAAA;AAEJ;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF;ACxKO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,aAAA,GAAgB,iBAAA,CAAkB,KAAK,CAAA,IAAK,kBAAkB,WAAW,CAAA;AAE/E,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,WAAA,EAAa,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MAClE,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,MAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,OAAO,CAAA,EAC/D,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,OAAO,IAAI,OAAA,GAAU,IAAA;AAAA,UACvC,aAAA,mBACCA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,OAAO,CAAA,EAC/D,QAAA,EAAA;AAAA,YAAA,iBAAA,CAAkB,KAAK,CAAA,mBACtBC,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,UAAA,EAAY,KAAK,CAAA,EAC3D,iBACH,CAAA,GACE,IAAA;AAAA,YACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,kBAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA,aACH,GACE;AAAA,WAAA,EACN,CAAA,GACE;AAAA,SAAA,EACN,CAAA;AAAA,QAEC,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,OAAO,CAAA,EAC/D,UACH,CAAA,GACE,IAAA;AAAA,QAEH,iBAAA,CAAkB,OAAO,CAAA,mBACxBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,OAAO,CAAA,EAC/D,mBACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;ACtDO,IAAM,kBAAA,GAAqBL,UAAAA,CAGhC,SAASqG,mBAAAA,CACT;AAAA,EACE,QAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,UAAU,CAAA;AAC9D,EAAA,MAAM,sBAAsB,6BAAA,EAA8B;AAC1D,EAAA,MAAM,KAAA,GAAQ,sBAAsB,kBAAkB,CAAA;AAEtD,EAAA,IAAI,OAAO,cAAc,SAAA,EAAW;AAClC,IAAA,MAAM,IAAI,UAAU,iDAAiD,CAAA;AAAA,EACvE;AAEA,EAAA,uBACEhG,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,mBAAA;AAAA,MACH,GAAG,WAAA;AAAA,MACJ,GAAA;AAAA,MACA,wBAAA,EAAuB,iBAAA;AAAA,MACvB,WAAA,EAAU,MAAA;AAAA,MACV,kBAAgB,SAAA,IAAa,MAAA;AAAA,MAC7B,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,kBAAA;AAAA,QACZ,SAAA,IAAa,MAAM,KAAA,CAAM,uBAAA;AAAA,QACzB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,cAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC","file":"index.mjs","sourcesContent":["import type { MonkeysLocale } from './types';\n\nexport const enUS = {\n locale: 'en-US',\n messages: {\n pagination: {\n navigation: 'Pagination',\n first: 'First',\n previous: 'Previous',\n next: 'Next',\n last: 'Last',\n page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n currentPage: ({ page, pageCount }) =>\n `Page ${page} of ${pageCount}, current page`,\n emptyResults: '0 results',\n range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n },\n dialog: {\n close: 'Close dialog',\n },\n dropdownMenu: {\n actions: 'Actions',\n },\n loading: {\n spinner: 'Loading',\n },\n layout: {\n resizePanels: 'Resize panels',\n },\n steps: {\n label: 'Progress',\n current: 'Current',\n completed: 'Completed',\n error: 'Error',\n disabled: 'Disabled',\n },\n numberInput: {\n increment: 'Increase value',\n decrement: 'Decrease value',\n },\n passwordInput: {\n showPassword: 'Show password',\n hidePassword: 'Hide password',\n },\n multiSelect: {\n placeholder: 'Select options',\n empty: 'No options',\n removeOption: ({ value }) => `Remove ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `Sort column ${columnId}` : 'Sort column',\n loadingRow: 'Loading table row',\n },\n toolbar: {\n theme: {\n label: 'Appearance',\n toggle: 'Toggle theme',\n auto: 'Auto',\n light: 'Light',\n dark: 'Dark',\n },\n language: {\n label: 'Language',\n switch: 'Switch language',\n },\n },\n toast: {\n errorTitle: 'Error',\n warningTitle: 'Warning',\n defaultErrorDescription: 'Something went wrong.',\n defaultWarningDescription: 'Please check and try again.',\n },\n dataExplorer: {\n viewTree: {\n actions: 'More actions',\n expand: 'Expand',\n collapse: 'Collapse',\n loading: 'Loading...',\n empty: 'No views',\n error: 'Unable to load views',\n },\n },\n workbench: {\n interactiveTable: {\n columnActions: 'Column actions',\n freezeColumn: 'Freeze to left',\n freezeEndColumn: 'Freeze to right',\n unfreezeColumn: 'Unfreeze from left',\n unfreezeEndColumn: 'Unfreeze from right',\n unfreezeAllColumns: 'Unfreeze all columns',\n resetColumnWidth: 'Reset column width',\n frozenColumnTitle: 'Frozen column',\n },\n },\n agentWorkbench: {\n label: 'Session activity',\n reasoning: 'Reasoning',\n plan: 'Plan',\n taskNoDetail: 'No additional details',\n modes: { chat: 'Chat', work: 'Work' },\n composer: {\n send: 'Send message',\n stop: 'Stop generating',\n queue: 'Queue message',\n attach: 'Add photos or files',\n voice: 'Start voice input',\n webSearch: 'Web search',\n chatMode: 'Chat mode',\n model: 'Model',\n reasoning: 'Reasoning effort',\n permissions: 'Permissions',\n removeAttachment: 'Remove attachment',\n editQueued: 'Edit queued message',\n deleteQueued: 'Delete queued message',\n moveUp: 'Move message up',\n moveDown: 'Move message down',\n queued: 'Queued messages',\n uploading: 'Uploading',\n noModels: 'No models available',\n message: 'Message',\n attachmentOnly: 'Attachment',\n reasoningOptions: { low: 'Low', medium: 'Medium', high: 'High', xhigh: 'Extra high' },\n permissionOptions: { 'approval-required': 'Approval required', 'auto-approve': 'Auto approve', 'full-access': 'Full access' },\n },\n quickStart: {\n label: 'Quick start',\n back: 'Back',\n addFile: 'Add file',\n },\n tool: {\n input: 'Input',\n output: 'Output',\n status: {\n pending: 'Pending',\n running: 'Running',\n completed: 'Completed',\n failed: 'Error',\n denied: 'Denied',\n },\n },\n approval: {\n approve: 'Approve',\n reject: 'Reject',\n approved: 'Approved',\n rejected: 'Rejected',\n },\n artifact: {\n pending: 'Preparing',\n ready: 'Ready',\n failed: 'Failed',\n open: ({ name }) => `Open ${name}`,\n },\n run: {\n stopping: 'Stopping...',\n stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n },\n process: {\n running: 'Working',\n processed: 'Processed',\n processedFor: ({ duration }) => `Worked for ${duration}`,\n completedCount: ({ completed, total }) => `${completed}/${total} completed`,\n },\n artifactWorkspace: {\n outputs: 'Outputs',\n sources: 'Sources',\n viewAll: 'View all',\n toggleSummary: 'Toggle files',\n tabs: 'Open files',\n closeTab: ({ name }) => `Close ${name}`,\n closeWorkspace: 'Close workspace',\n download: ({ name }) => `Download ${name}`,\n openExternal: ({ name }) => `Open ${name} in a new window`,\n },\n usage: {\n label: 'Context usage',\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: 'Search agents and sessions',\n searchSessions: 'Search sessions',\n searchShortcut: 'Focus search',\n clearSearch: 'Clear search',\n tabsLabel: 'Agent workbench navigation',\n agents: 'Agents',\n sessions: 'Sessions',\n newAgent: 'New Agent',\n newSession: 'New Session',\n capabilities: 'Capabilities & Extensions',\n settings: 'Agent Settings',\n allAgents: 'All Agents',\n recentSessions: 'Recent Sessions',\n chat: 'Chat',\n work: 'Work',\n chats: 'Chats',\n builtIn: 'Built-in',\n noDescription: 'No description',\n loading: 'Loading...',\n emptyAgents: 'No agents yet',\n emptySessions: 'No sessions yet',\n noResults: 'No matching results',\n retry: 'Retry',\n pin: 'Pin',\n unpin: 'Unpin',\n rename: 'Rename',\n delete: 'Delete',\n actions: 'Actions',\n save: 'Save',\n cancel: 'Cancel',\n running: 'Running',\n completed: 'Completed',\n failed: 'Failed',\n contextUsage: ({ percent }) => `${percent}% context used`,\n },\n details: {\n title: 'Task details',\n description: 'Summary and workspace activity',\n duration: 'Duration',\n updated: 'Updated',\n model: 'Model',\n mode: 'Mode',\n permissions: 'Permissions',\n tokenUsage: 'Token usage',\n summary: 'Summary',\n summaryEmpty: 'No summary is available yet.',\n summaryFailed: 'The summary could not be generated.',\n highlights: 'Highlights',\n pendingItems: 'Pending items',\n tabs: {\n label: 'Task detail views',\n summary: 'Summary',\n workspace: 'Workspace',\n },\n status: {\n queued: 'Queued',\n running: 'Running',\n waiting_approval: 'Waiting for approval',\n stopping: 'Stopping',\n stopped: 'Stopped',\n completed: 'Completed',\n failed: 'Failed',\n },\n state: {\n loading: { title: 'Loading task details', description: 'Restoring the latest session activity.' },\n empty: { title: 'No task selected', description: 'Select a task to inspect its details.' },\n error: { title: 'Unable to load task details', description: 'Try again after the session is available.' },\n },\n actions: {\n close: 'Close task details',\n copySummary: 'Copy summary',\n retry: 'Retry',\n retrySummary: 'Retry summary',\n resume: 'Resume',\n continueInNewTask: 'Continue in new task',\n editAndRerun: 'Edit and rerun',\n export: 'Export',\n },\n workspace: {\n diffs: 'Code changes',\n files: 'Files',\n terminals: 'Terminals',\n tests: 'Tests',\n artifacts: 'Artifacts',\n exitCode: ({ code }) => `Exit code ${code}`,\n diffStatus: { added: 'Added', modified: 'Modified', deleted: 'Deleted', renamed: 'Renamed' },\n fileOperation: { upsert: 'Updated', delete: 'Deleted' },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n MonkeysBuiltInLocaleId,\n MonkeysLocale,\n MonkeysLocaleInput,\n MonkeysLocaleMessages,\n MonkeysLocaleMessagesOverride,\n MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n 'en-US': enUS,\n 'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n if (typeof locale !== 'string' || !locale.trim()) {\n throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n }\n\n try {\n return Intl.getCanonicalLocales(locale)[0];\n } catch {\n throw new RangeError(\n `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n );\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n value: unknown,\n schema: unknown,\n path: string,\n) {\n if (!isRecord(value) || !isRecord(schema)) {\n throw new TypeError(`${path} must be an object.`);\n }\n\n for (const [key, candidate] of Object.entries(value)) {\n if (candidate === undefined) continue;\n if (!(key in schema)) {\n throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n }\n\n const expected = schema[key];\n const candidatePath = `${path}.${key}`;\n if (typeof expected === 'function') {\n if (typeof candidate !== 'function') {\n throw new TypeError(`${candidatePath} must be a function.`);\n }\n } else if (typeof expected === 'string') {\n if (typeof candidate !== 'string') {\n throw new TypeError(`${candidatePath} must be a string.`);\n }\n } else {\n validateMessageOverride(candidate, expected, candidatePath);\n }\n }\n}\n\nfunction assertMessagesOverride(\n value: unknown,\n path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n locale: string | undefined;\n messages: MonkeysLocaleMessagesOverride | undefined;\n hasExplicitLocale: boolean;\n} {\n if (input === undefined) {\n return {\n locale: undefined,\n messages: undefined,\n hasExplicitLocale: false,\n };\n }\n\n if (typeof input === 'string') {\n const locale = normalizeLocaleId(input);\n if (!isBuiltInLocale(locale)) {\n throw new RangeError(\n `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n );\n }\n return { locale, messages: undefined, hasExplicitLocale: true };\n }\n\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n }\n\n const locale = normalizeLocaleId(input.locale);\n assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n return {\n locale,\n messages: input.messages,\n hasExplicitLocale: true,\n };\n}\n\nexport function mergeMonkeysLocaleMessages(\n base: MonkeysLocaleMessages,\n override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n if (!override) return base;\n\n return {\n pagination: { ...base.pagination, ...override.pagination },\n dialog: { ...base.dialog, ...override.dialog },\n dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n loading: { ...base.loading, ...override.loading },\n layout: { ...base.layout, ...override.layout },\n steps: { ...base.steps, ...override.steps },\n numberInput: { ...base.numberInput, ...override.numberInput },\n passwordInput: { ...base.passwordInput, ...override.passwordInput },\n multiSelect: { ...base.multiSelect, ...override.multiSelect },\n table: { ...base.table, ...override.table },\n toolbar: {\n theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n language: { ...base.toolbar.language, ...override.toolbar?.language },\n },\n toast: { ...base.toast, ...override.toast },\n dataExplorer: {\n viewTree: {\n ...base.dataExplorer.viewTree,\n ...override.dataExplorer?.viewTree,\n },\n },\n workbench: {\n interactiveTable: {\n ...base.workbench.interactiveTable,\n ...override.workbench?.interactiveTable,\n },\n },\n agentWorkbench: {\n ...base.agentWorkbench,\n ...override.agentWorkbench,\n modes: {\n ...base.agentWorkbench.modes,\n ...override.agentWorkbench?.modes,\n },\n composer: {\n ...base.agentWorkbench.composer,\n ...override.agentWorkbench?.composer,\n },\n quickStart: {\n ...base.agentWorkbench.quickStart,\n ...override.agentWorkbench?.quickStart,\n },\n tool: {\n ...base.agentWorkbench.tool,\n ...override.agentWorkbench?.tool,\n status: {\n ...base.agentWorkbench.tool.status,\n ...override.agentWorkbench?.tool?.status,\n },\n },\n approval: {\n ...base.agentWorkbench.approval,\n ...override.agentWorkbench?.approval,\n },\n artifact: {\n ...base.agentWorkbench.artifact,\n ...override.agentWorkbench?.artifact,\n },\n run: {\n ...base.agentWorkbench.run,\n ...override.agentWorkbench?.run,\n },\n process: {\n ...base.agentWorkbench.process,\n ...override.agentWorkbench?.process,\n },\n artifactWorkspace: {\n ...base.agentWorkbench.artifactWorkspace,\n ...override.agentWorkbench?.artifactWorkspace,\n },\n usage: {\n ...base.agentWorkbench.usage,\n ...override.agentWorkbench?.usage,\n },\n navigation: {\n ...base.agentWorkbench.navigation,\n ...override.agentWorkbench?.navigation,\n },\n details: {\n ...base.agentWorkbench.details,\n ...override.agentWorkbench?.details,\n tabs: {\n ...base.agentWorkbench.details.tabs,\n ...override.agentWorkbench?.details?.tabs,\n },\n status: {\n ...base.agentWorkbench.details.status,\n ...override.agentWorkbench?.details?.status,\n },\n state: {\n loading: {\n ...base.agentWorkbench.details.state.loading,\n ...override.agentWorkbench?.details?.state?.loading,\n },\n empty: {\n ...base.agentWorkbench.details.state.empty,\n ...override.agentWorkbench?.details?.state?.empty,\n },\n error: {\n ...base.agentWorkbench.details.state.error,\n ...override.agentWorkbench?.details?.state?.error,\n },\n },\n actions: {\n ...base.agentWorkbench.details.actions,\n ...override.agentWorkbench?.details?.actions,\n },\n workspace: {\n ...base.agentWorkbench.details.workspace,\n ...override.agentWorkbench?.details?.workspace,\n diffStatus: {\n ...base.agentWorkbench.details.workspace.diffStatus,\n ...override.agentWorkbench?.details?.workspace?.diffStatus,\n },\n fileOperation: {\n ...base.agentWorkbench.details.workspace.fileOperation,\n ...override.agentWorkbench?.details?.workspace?.fileOperation,\n },\n },\n },\n },\n };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n locale: enUS.locale,\n messages: mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n ),\n};\n\nexport function resolveMonkeysLocale(\n input?: MonkeysLocaleInput,\n override?: MonkeysLocaleMessagesOverride,\n parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n if (override !== undefined) {\n assertMessagesOverride(override, 'MonkeysProvider messages');\n }\n const normalized = normalizeLocaleInput(input);\n const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n const builtInMessages = isBuiltInLocale(locale)\n ? BUILT_IN_LOCALES[locale].messages\n : undefined;\n let messages = mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n builtInMessages,\n );\n\n if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n }\n\n messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n messages = mergeMonkeysLocaleMessages(messages, override);\n\n return { locale, messages };\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type Context,\n} from 'react';\n\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n defaultMonkeysLocale,\n type MonkeysLocaleMessages,\n type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n getDocument?: () => Document | null;\n getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n | Element\n | null\n | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nexport interface MonkeysComponentAttributes {\n dir?: MonkeysDirection;\n 'data-monkeys-direction'?: MonkeysDirection;\n 'data-monkeys-locale'?: string;\n 'data-monkeys-theme'?: string;\n 'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n provided: boolean;\n resolvedTheme?: CompiledThemeTokens;\n themeId?: string;\n baseAppearance?: BaseAppearance;\n dataExplorerAppearance?: DataExplorerAppearance;\n}\n\ninterface MonkeysDirectionContextValue {\n provided: boolean;\n direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n provided: boolean;\n environment: MonkeysEnvironment;\n portal: MonkeysPortalOptions;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n locale: Context<MonkeysLocaleContextValue>;\n theme: Context<MonkeysThemeContextValue>;\n direction: Context<MonkeysDirectionContextValue>;\n environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n return Object.freeze({\n locale: createContext<MonkeysLocaleContextValue>({\n ...defaultMonkeysLocale,\n provided: false,\n }),\n theme: createContext<MonkeysThemeContextValue>({\n provided: false,\n }),\n direction: createContext<MonkeysDirectionContextValue>({\n provided: false,\n }),\n environment: createContext<MonkeysEnvironmentContextValue>({\n provided: false,\n environment: EMPTY_ENVIRONMENT,\n portal: EMPTY_PORTAL,\n }),\n });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n const host = globalThis as MonkeysProviderContextHost;\n const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n if (existing) return existing;\n\n const contexts = createMonkeysProviderContexts();\n Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n value: contexts,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n inherited: T | undefined,\n explicit: T | undefined,\n): T | undefined {\n if (explicit === undefined) return inherited;\n if (inherited === undefined) return explicit;\n\n return {\n ...inherited,\n ...explicit,\n slots:\n inherited.slots || explicit.slots\n ? { ...inherited.slots, ...explicit.slots }\n : undefined,\n styles:\n inherited.styles || explicit.styles\n ? { ...inherited.styles, ...explicit.styles }\n : undefined,\n };\n}\n\nexport function useMonkeysLocale() {\n return useContext(MonkeysLocaleContext);\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).baseAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDirection() {\n return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n const locale = useContext(MonkeysLocaleContext);\n const theme = useContext(MonkeysThemeContext);\n const direction = useContext(MonkeysDirectionContext);\n const providerActive = locale.provided || theme.provided || direction.provided;\n\n return useMemo(\n () =>\n providerActive\n ? {\n dir: direction.direction,\n 'data-monkeys-direction': direction.direction,\n 'data-monkeys-locale': locale.locale,\n 'data-monkeys-theme': theme.themeId,\n 'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n }\n : {},\n [\n direction.direction,\n locale.locale,\n providerActive,\n theme.resolvedTheme?.colorMode,\n theme.themeId,\n ],\n );\n}\n","import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n if (typeof node === 'string') return node.trim().length > 0;\n return hasRenderableNode(node);\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseHeadingSize,\n BaseLayoutAlign,\n BaseLayoutJustify,\n BaseLayoutLength,\n BaseListMarker,\n BaseListSpacing,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n BaseTypographySize,\n BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n '[scrollbar-width:thin]',\n '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n 'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n buttonWarning:\n 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n textRoot: 'min-w-0 break-words leading-6',\n textSizeXs: 'text-xs',\n textSizeSm: 'text-sm',\n textSizeMd: 'text-base',\n textSizeLg: 'text-lg',\n textSizeXl: 'text-xl',\n typographyToneDefault: 'text-foreground',\n typographyToneMuted: 'text-muted-foreground',\n typographyTonePrimary: 'text-primary',\n typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n typographyToneDanger: 'text-destructive-text',\n typographyToneInherit: 'text-inherit',\n headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n headingSizeXs: 'text-sm leading-5',\n headingSizeSm: 'text-base leading-6',\n headingSizeMd: 'text-lg leading-7',\n headingSizeLg: 'text-xl leading-7',\n headingSizeXl: 'text-2xl leading-8',\n headingSize2xl: 'text-3xl leading-9',\n linkRoot:\n 'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n codeInline:\n 'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n codeBlock:\n 'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n codeContent: 'font-mono text-sm leading-6',\n kbdRoot:\n 'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n listSpacingCompact: '[&>li+li]:mt-1',\n listSpacingDefault: '[&>li+li]:mt-2',\n listSpacingRelaxed: '[&>li+li]:mt-3',\n listMarkerNone: 'list-none ps-0',\n listMarkerDisc: 'list-disc',\n listMarkerCircle: 'list-[circle]',\n listMarkerSquare: 'list-[square]',\n listMarkerDecimal: 'list-decimal',\n listMarkerLowerAlpha: 'list-[lower-alpha]',\n listMarkerUpperAlpha: 'list-[upper-alpha]',\n listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n stackRoot: 'flex min-w-0 flex-col',\n inlineRoot: 'flex min-w-0 flex-row',\n gridRoot: 'grid min-w-0',\n containerRoot: 'mx-auto w-full min-w-0',\n aspectRatioRoot:\n 'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n spinnerRoot:\n 'inline-flex shrink-0 items-center justify-center text-current align-middle',\n spinnerIndicator:\n 'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n visuallyHiddenRoot: 'sr-only',\n visuallyHiddenFocusable:\n 'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n stepsHorizontal:\n 'flex w-full max-w-full items-start overflow-x-auto pb-2',\n stepsVertical: 'grid',\n stepsItem: 'relative min-w-0',\n stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n stepsItemVertical: 'pb-6 last:pb-0',\n stepsTrigger:\n 'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n stepsTriggerInteractive:\n 'cursor-pointer hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n stepsIndicator:\n 'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n stepsIndicatorCompleted:\n 'border-primary bg-primary text-primary-foreground',\n stepsIndicatorError:\n 'border-destructive bg-destructive text-destructive-foreground',\n stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n stepsDescription:\n 'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n stepsStatus: 'sr-only',\n stepsConnector: 'shrink-0 bg-border',\n stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n stepsConnectorVertical:\n 'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n stepsConnectorCompleted: 'bg-primary/60',\n stepsConnectorError: 'bg-destructive/60',\n scrollAreaViewport: 'min-h-0 min-w-0',\n numberInputControl: 'tabular-nums',\n numberInputStepControls:\n 'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n numberInputStepButton:\n 'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n passwordInputControl: 'pe-2',\n passwordInputToggle:\n 'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n inputGroupRoot:\n cn(\n 'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n motionBase,\n ),\n inputGroupInvalid:\n 'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n inputGroupContent:\n 'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n inputGroupStartElement:\n 'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n inputGroupEndElement:\n 'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n inputGroupStartAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n inputGroupEndAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-4',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n panelBodyStandalone: 'pt-4',\n panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n loadingSpinner:\n 'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n fieldRoot: 'grid min-w-0 gap-2',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive-text',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-[11px] font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger:\n 'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n dropdownItemDisabled:\n '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n noticeDanger:\n 'border-destructive/30 bg-destructive/10 text-destructive-text',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-3',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-3',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n paginationEllipsis:\n 'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n 'motion-reduce:transition-none',\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n tableScrollbarChrome,\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader:\n cn(\n 'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n tableStickyHeaderCells,\n ),\n tableBody: '[&_tr:last-child>*]:border-b-0',\n tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n tableSplitRoot:\n 'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableSplitHeader:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n tableSplitBody:\n cn(\n 'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n tableScrollbarChrome,\n ),\n tableSplitFooter:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n tableSplitRow:\n 'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n tableSplitHead: 'flex min-w-0 overflow-hidden',\n tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n tableRow:\n cn(\n '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive:\n 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n cn(\n 'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-[11px]',\n panelHeader: 'p-3',\n panelBody: 'px-3 pb-3 text-xs',\n panelBodyStandalone: 'pt-3',\n panelFooter: 'px-3 py-2',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-1.5',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-[11px] leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-[11px]',\n sectionHeaderRoot: 'gap-2',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-0.5 p-0.5',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-0.5 p-0.5',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-2 px-3 py-2',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-[11px]',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-[11px]',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-[11px]',\n tableContainer: '[--base-table-header-height:2.25rem]',\n tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-[11px]',\n tableHeadDescription: 'text-[10px] leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-2 p-2',\n layoutBody: 'gap-2',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-5',\n panelBody: 'px-5 pb-5',\n panelBodyStandalone: 'pt-5',\n panelFooter: 'px-5 py-3.5',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-2.5',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-5 py-4',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableContainer: '[--base-table-header-height:3rem]',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-4 p-4',\n layoutBody: 'gap-4',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n tableHeader: 'border-transparent',\n tableFooter: '[&_tr>*]:border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: '[&>*]:border-transparent',\n tableEmptyRow: '[&>*]:border-transparent',\n tableLoadingRow: '[&>*]:border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n tableHeader: 'border-border/60',\n tableFooter: '[&_tr>*]:border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: '[&>*]:border-border/50',\n tableEmptyRow: '[&>*]:border-border/50',\n tableLoadingRow: '[&>*]:border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer:\n 'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n tableHeader: 'border-foreground/20',\n tableFooter: '[&_tr>*]:border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: '[&>*]:border-foreground/15',\n tableEmptyRow: '[&>*]:border-foreground/15',\n tableLoadingRow: '[&>*]:border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer:\n 'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n tableContainer:\n 'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer:\n 'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n BaseThemePresetId,\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n soft: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n compact: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n 'tinted-glass': {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n soft: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n compact: {\n buttonBase: 'text-xs',\n badgeBase: 'text-[11px]',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n 'tinted-glass': {\n buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n progressIndicator: 'bg-primary',\n avatarStatus: 'border-background',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const variant = appearance?.variant ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const state = appearance?.state ?? 'idle';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n variant,\n density,\n state,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n\nexport function getBaseTypographyToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseTypographyTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.typographyToneDefault,\n tone === 'muted' && theme.slots.typographyToneMuted,\n tone === 'primary' && theme.slots.typographyTonePrimary,\n tone === 'success' && theme.slots.typographyToneSuccess,\n tone === 'warning' && theme.slots.typographyToneWarning,\n tone === 'danger' && theme.slots.typographyToneDanger,\n tone === 'inherit' && theme.slots.typographyToneInherit,\n );\n}\n\nexport function getBaseTextSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseTypographySize = 'md',\n) {\n return cn(\n size === 'xs' && theme.slots.textSizeXs,\n size === 'sm' && theme.slots.textSizeSm,\n size === 'md' && theme.slots.textSizeMd,\n size === 'lg' && theme.slots.textSizeLg,\n size === 'xl' && theme.slots.textSizeXl,\n );\n}\n\nexport function getBaseHeadingSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseHeadingSize = 'lg',\n) {\n return cn(\n size === 'xs' && theme.slots.headingSizeXs,\n size === 'sm' && theme.slots.headingSizeSm,\n size === 'md' && theme.slots.headingSizeMd,\n size === 'lg' && theme.slots.headingSizeLg,\n size === 'xl' && theme.slots.headingSizeXl,\n size === '2xl' && theme.slots.headingSize2xl,\n );\n}\n\nexport function getBaseListSpacingClassName(\n theme: BaseResolvedTheme,\n spacing: BaseListSpacing = 'default',\n) {\n return cn(\n spacing === 'compact' && theme.slots.listSpacingCompact,\n spacing === 'default' && theme.slots.listSpacingDefault,\n spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n );\n}\n\nexport function getBaseListMarkerClassName(\n theme: BaseResolvedTheme,\n marker: Exclude<BaseListMarker, 'auto'>,\n) {\n return cn(\n marker === 'none' && theme.slots.listMarkerNone,\n marker === 'disc' && theme.slots.listMarkerDisc,\n marker === 'circle' && theme.slots.listMarkerCircle,\n marker === 'square' && theme.slots.listMarkerSquare,\n marker === 'decimal' && theme.slots.listMarkerDecimal,\n marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n const pairs: Record<string, string> = { ')': '(', ']': '[' };\n const stack: string[] = [];\n\n for (const character of value) {\n if (character === '(' || character === '[') {\n stack.push(character);\n } else if (character === ')' || character === ']') {\n if (stack.pop() !== pairs[character]) return false;\n }\n }\n\n return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n if (match[1].toLowerCase() === 'var') {\n return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n }\n\n return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n componentName: string,\n propName: string,\n value: BaseLayoutLength,\n) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new RangeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n return `${value}px`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n (!cssLengthPattern.test(normalized) &&\n !isSupportedCssLengthFunction(normalized))\n ) {\n throw new TypeError(\n `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n );\n }\n\n return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n if (typeof value === 'number') {\n if (!Number.isInteger(value) || value <= 0) {\n throw new RangeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n return `repeat(${value}, minmax(0, 1fr))`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n /\\burl\\s*\\(/i.test(normalized) ||\n !hasBalancedDelimiters(normalized) ||\n !gridTemplateTokenPattern.test(normalized)\n ) {\n throw new TypeError(\n 'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n );\n }\n\n return normalized;\n}\n\ntype BaseLayoutAlignValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'stretch'\n | 'baseline';\n\ntype BaseLayoutJustifyValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n BaseLayoutJustify,\n BaseLayoutJustifyValue\n> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n componentName: string,\n value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n throw new TypeError(\n `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n );\n }\n return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n componentName: string,\n value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n throw new TypeError(\n `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n );\n }\n return layoutJustifyValues[value];\n}\n","import {\n forwardRef,\n useEffect,\n useId,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseAccordionItem, BaseAccordionProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function validateBaseAccordionProps({\n items,\n value,\n defaultValue,\n allowCollapse,\n keyboardNavigation,\n}: Pick<\n BaseAccordionProps,\n | 'allowCollapse'\n | 'defaultValue'\n | 'items'\n | 'keyboardNavigation'\n | 'value'\n>) {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseAccordion items must be an array.');\n }\n if (value !== undefined && (typeof value !== 'string' || !value.trim())) {\n throw new TypeError(\n 'BaseAccordion value must be a non-empty string when provided.',\n );\n }\n if (\n defaultValue !== undefined &&\n (typeof defaultValue !== 'string' || !defaultValue.trim())\n ) {\n throw new TypeError(\n 'BaseAccordion defaultValue must be a non-empty string when provided.',\n );\n }\n if (typeof allowCollapse !== 'boolean') {\n throw new TypeError('BaseAccordion allowCollapse must be a boolean.');\n }\n if (typeof keyboardNavigation !== 'boolean') {\n throw new TypeError('BaseAccordion keyboardNavigation must be a boolean.');\n }\n\n const values = new Set<string>();\n items.forEach((item, index) => {\n if (!item || typeof item !== 'object') {\n throw new TypeError(\n `BaseAccordion item at index ${index} must be an object.`,\n );\n }\n if (typeof item.value !== 'string' || !item.value.trim()) {\n throw new TypeError(\n `BaseAccordion item value at index ${index} must be a non-empty string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n 'BaseAccordion items must use unique values; ' +\n `duplicate value ${JSON.stringify(item.value)} at index ${index}.`,\n );\n }\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseAccordion item disabled at index ${index} must be a boolean.`,\n );\n }\n values.add(item.value);\n });\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nfunction getDomIdFragments(items: BaseAccordionItem[]) {\n const usedFragments = new Set<string>();\n\n return items.map((item, index) => {\n const baseFragment = toDomId(item.value) || `item-${index}`;\n let fragment = baseFragment;\n\n if (usedFragments.has(fragment)) {\n fragment = `${baseFragment}-${index}`;\n while (usedFragments.has(fragment)) {\n fragment = `${fragment}-${index}`;\n }\n }\n\n usedFragments.add(fragment);\n return fragment;\n });\n}\n\nexport const BaseAccordion = forwardRef<HTMLDivElement, BaseAccordionProps>(\n function BaseAccordion(\n {\n items = [],\n value,\n defaultValue,\n allowCollapse = true,\n keyboardNavigation = true,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n onFocusCapture,\n onBlurCapture,\n ...accordionProps\n },\n ref,\n ) {\n validateBaseAccordionProps({\n items,\n value,\n defaultValue,\n allowCollapse,\n keyboardNavigation,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const [focusedValue, setFocusedValue] = useState<string>();\n const triggerRefs = useRef(new Map<string, HTMLButtonElement>());\n const ownsTriggerFocusRef = useRef(false);\n const isControlled = value !== undefined;\n const openValue = isControlled ? value : uncontrolledValue;\n const idFragments = getDomIdFragments(items);\n const enabledItems = items.filter((item) => !item.disabled);\n const openItem = items.find((item) => item.value === openValue);\n const layerDirection =\n typeof accordionProps.dir === 'string'\n ? accordionProps.dir\n : componentAttributes.dir;\n\n useEffect(() => {\n if (!ownsTriggerFocusRef.current || focusedValue === undefined) return;\n const focusedItem = items.find((item) => item.value === focusedValue);\n if (focusedItem && !focusedItem.disabled) return;\n\n const fallbackItem =\n enabledItems.find((item) => item.value === openValue) ?? enabledItems[0];\n if (!fallbackItem) {\n ownsTriggerFocusRef.current = false;\n return;\n }\n\n setFocusedValue(fallbackItem.value);\n triggerRefs.current.get(fallbackItem.value)?.focus();\n }, [enabledItems, focusedValue, items, openValue]);\n\n const handleToggle = (item: BaseAccordionItem) => {\n if (item.disabled) return;\n\n const isOpen = openValue === item.value;\n if (isOpen && !allowCollapse) {\n onValueChange?.(item.value);\n return;\n }\n\n const nextOpenValue = isOpen ? undefined : item.value;\n if (!isControlled) {\n setUncontrolledValue(nextOpenValue);\n }\n onValueChange?.(nextOpenValue);\n };\n\n const moveFocus = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseAccordionItem,\n step: number | 'first' | 'last',\n ) => {\n if (!keyboardNavigation || enabledItems.length === 0) return;\n\n let targetItem: BaseAccordionItem | undefined;\n if (step === 'first') {\n targetItem = enabledItems[0];\n } else if (step === 'last') {\n targetItem = enabledItems[enabledItems.length - 1];\n } else {\n const currentIndex = enabledItems.findIndex(\n (enabledItem) => enabledItem.value === item.value,\n );\n const nextIndex =\n (currentIndex + step + enabledItems.length) % enabledItems.length;\n targetItem = enabledItems[nextIndex];\n }\n\n if (!targetItem) return;\n event.preventDefault();\n setFocusedValue(targetItem.value);\n triggerRefs.current.get(targetItem.value)?.focus();\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseAccordionItem,\n ) => {\n if (item.disabled) return;\n if (event.key === 'ArrowDown') {\n moveFocus(event, item, 1);\n } else if (event.key === 'ArrowUp') {\n moveFocus(event, item, -1);\n } else if (event.key === 'Home') {\n moveFocus(event, item, 'first');\n } else if (event.key === 'End') {\n moveFocus(event, item, 'last');\n }\n };\n\n const isOwnedTrigger = (target: EventTarget | null) =>\n target instanceof HTMLElement &&\n target.dataset.accordionOwner === rootId;\n\n const handleFocusCapture = (event: FocusEvent<HTMLDivElement>) => {\n if (isOwnedTrigger(event.target)) {\n ownsTriggerFocusRef.current = true;\n }\n onFocusCapture?.(event);\n };\n\n const handleBlurCapture = (event: FocusEvent<HTMLDivElement>) => {\n if (\n isOwnedTrigger(event.target) &&\n !isOwnedTrigger(event.relatedTarget)\n ) {\n ownsTriggerFocusRef.current = false;\n }\n onBlurCapture?.(event);\n };\n\n return (\n <div\n {...componentAttributes}\n {...accordionProps}\n ref={ref}\n id={id}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"root\"\n data-state={openItem ? 'open' : 'closed'}\n data-collapsible={allowCollapse}\n data-keyboard-navigation={keyboardNavigation}\n className={cn(theme.slots.accordionRoot, classNames?.root, className)}\n style={{\n ...theme.styles.accordion,\n ...style,\n }}\n onFocusCapture={handleFocusCapture}\n onBlurCapture={handleBlurCapture}\n >\n {items.map((item, index) => {\n const itemId = idFragments[index];\n const triggerId = `${rootId}-${itemId}-trigger`;\n const panelId = `${rootId}-${itemId}-panel`;\n const open = item.value === openValue;\n const state = open ? 'open' : 'closed';\n\n return (\n <div\n {...componentAttributes}\n key={item.value}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"item\"\n data-state={state}\n data-disabled={item.disabled || undefined}\n className={cn(theme.slots.accordionItem, classNames?.item)}\n >\n <button\n {...componentAttributes}\n ref={(node) => {\n if (node) {\n triggerRefs.current.set(item.value, node);\n } else {\n triggerRefs.current.delete(item.value);\n }\n }}\n id={triggerId}\n type=\"button\"\n aria-expanded={open}\n aria-controls={panelId}\n aria-disabled={item.disabled || undefined}\n disabled={item.disabled}\n dir={layerDirection}\n data-accordion-owner={rootId}\n data-monkeys-component=\"accordion\"\n data-slot=\"trigger\"\n data-state={state}\n data-disabled={item.disabled || undefined}\n className={cn(\n theme.slots.accordionTrigger,\n classNames?.trigger,\n )}\n onFocus={() => setFocusedValue(item.value)}\n onKeyDown={(event) => handleKeyDown(event, item)}\n onClick={() => handleToggle(item)}\n >\n <span className=\"min-w-0 truncate\">{item.title}</span>\n <span\n aria-hidden=\"true\"\n data-monkeys-component=\"accordion\"\n data-slot=\"trigger-icon\"\n data-state={state}\n className={cn(\n theme.slots.accordionTriggerIcon,\n open && 'rotate-[225deg]',\n classNames?.triggerIcon,\n )}\n />\n </button>\n {open ? (\n <div\n {...componentAttributes}\n id={panelId}\n role=\"region\"\n aria-labelledby={triggerId}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"panel\"\n data-state=\"open\"\n className={cn(\n theme.slots.accordionPanel,\n classNames?.panel,\n )}\n >\n {hasRenderableNode(item.content) ? item.content : null}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n },\n);\n","import { forwardRef, useEffect, useState } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseAvatarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst sizeClassNames = {\n sm: 'h-7 w-7 text-xs',\n md: 'h-9 w-9 text-sm',\n lg: 'h-12 w-12 text-base',\n} as const;\n\nconst statusClassNames = {\n online: 'bg-[hsl(var(--success,142_72%_29%))]',\n busy: 'bg-[hsl(var(--warning,45_93%_47%))]',\n offline: 'bg-muted-foreground',\n neutral: 'bg-muted-foreground',\n} as const;\n\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\n return typeof status === 'string' && status in statusClassNames;\n}\n\nfunction getInitials(name?: string) {\n if (!name) return undefined;\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return undefined;\n return words\n .slice(0, 2)\n .map((word) => word[0]?.toUpperCase())\n .join('');\n}\n\nexport const BaseAvatar = forwardRef<HTMLDivElement, BaseAvatarProps>(\n function BaseAvatar(\n {\n src,\n alt,\n name,\n initials,\n icon,\n status,\n size = 'md',\n appearance,\n className,\n classNames,\n style,\n children,\n title,\n ...avatarProps\n },\n ref,\n ) {\n if (size !== 'sm' && size !== 'md' && size !== 'lg') {\n throw new TypeError('BaseAvatar size must be \"sm\", \"md\", or \"lg\".');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [failedSrc, setFailedSrc] = useState<string>();\n const imageFailed = Boolean(src && failedSrc === src);\n const showImage = Boolean(src) && !imageFailed;\n const generatedInitials = getInitials(name);\n const fallbackKind = hasRenderableNode(children)\n ? 'children'\n : hasRenderableNode(initials)\n ? 'initials'\n : hasRenderableNode(generatedInitials)\n ? 'name'\n : hasRenderableNode(icon)\n ? 'icon'\n : 'default';\n const fallback = hasRenderableNode(children)\n ? children\n : hasRenderableNode(initials)\n ? initials\n : hasRenderableNode(generatedInitials)\n ? generatedInitials\n : hasRenderableNode(icon)\n ? icon\n : '?';\n const statusKind = isStatusPreset(status)\n ? status\n : hasRenderableNode(status)\n ? 'custom'\n : undefined;\n\n useEffect(() => {\n setFailedSrc(undefined);\n }, [src]);\n\n return (\n <div\n {...componentAttributes}\n {...avatarProps}\n ref={ref}\n title={title ?? name}\n data-monkeys-component=\"avatar\"\n data-slot=\"root\"\n data-state={showImage ? 'image' : 'fallback'}\n data-size={size}\n data-status={statusKind}\n data-fallback={showImage ? undefined : fallbackKind}\n className={cn(\n theme.slots.avatarRoot,\n sizeClassNames[size],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.avatar,\n ...style,\n }}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt ?? name ?? ''}\n data-slot=\"image\"\n data-size={size}\n data-status={statusKind}\n className={cn(theme.slots.avatarImage, classNames?.image)}\n onError={() => setFailedSrc(src)}\n />\n ) : (\n <span\n data-slot=\"fallback\"\n data-size={size}\n data-status={statusKind}\n data-fallback={fallbackKind}\n className={cn(\n theme.slots.avatarFallback,\n classNames?.fallback,\n classNames?.text,\n )}\n >\n {fallback}\n </span>\n )}\n\n {isStatusPreset(status) ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"status\"\n data-size={size}\n data-status={status}\n className={cn(\n theme.slots.avatarStatus,\n statusClassNames[status],\n classNames?.status,\n )}\n />\n ) : hasRenderableNode(status) ? (\n <span\n data-slot=\"status\"\n data-size={size}\n data-status=\"custom\"\n className={cn(theme.slots.avatarStatus, classNames?.status)}\n >\n {status}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseAspectRatioProps } from './types';\nimport { cn } from './utils';\n\nfunction resolveAspectRatio(value: number) {\n if (!Number.isFinite(value) || value <= 0) {\n throw new RangeError('BaseAspectRatio ratio must be a positive finite number.');\n }\n return String(value);\n}\n\nexport const BaseAspectRatio = forwardRef<\n HTMLDivElement,\n BaseAspectRatioProps\n>(function BaseAspectRatio(\n {\n children,\n ratio = 16 / 9,\n appearance,\n className,\n classNames,\n style,\n ...aspectRatioProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...aspectRatioProps}\n ref={ref}\n data-monkeys-component=\"aspect-ratio\"\n data-slot=\"root\"\n data-ratio={ratio}\n className={cn(theme.slots.aspectRatioRoot, classNames?.root, className)}\n style={{\n ...theme.styles.aspectRatio,\n aspectRatio: resolveAspectRatio(ratio),\n ...style,\n }}\n >\n {children}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseBadgeProps } from './types';\nimport { getBaseBadgeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nexport const BaseBadge = forwardRef<HTMLSpanElement, BaseBadgeProps>(\n function BaseBadge(\n {\n children,\n label,\n icon,\n tone,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...badgeProps\n },\n ref,\n ) {\n if (\n tone !== undefined &&\n tone !== 'default' &&\n tone !== 'primary' &&\n tone !== 'success' &&\n tone !== 'warning' &&\n tone !== 'danger' &&\n tone !== 'muted'\n ) {\n throw new TypeError(\n 'BaseBadge tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance({\n ...resolvedAppearance,\n variant,\n density,\n state,\n });\n const resolvedLabel = children ?? label;\n const resolvedTone = tone ?? 'default';\n\n return (\n <span\n {...componentAttributes}\n {...badgeProps}\n ref={ref}\n data-monkeys-component=\"badge\"\n data-slot=\"root\"\n data-tone={resolvedTone}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={theme.state}\n className={cn(\n theme.slots.badgeBase,\n getBaseBadgeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.badge,\n ...style,\n }}\n >\n {icon ? (\n <span\n data-slot=\"icon\"\n data-tone={resolvedTone}\n className={cn(theme.slots.badgeIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : null}\n {resolvedLabel !== undefined && resolvedLabel !== null ? (\n <span\n data-slot=\"label\"\n data-tone={resolvedTone}\n className={cn(theme.slots.badgeLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n </span>\n );\n },\n);\n","import type { MouseEvent } from 'react';\n\nimport type { BaseBreadcrumbItem, BaseBreadcrumbProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nfunction isCurrentItem(item: BaseBreadcrumbItem, index: number, length: number) {\n return item.current ?? index === length - 1;\n}\n\nexport function BaseBreadcrumb({\n items = [],\n separator = '/',\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...breadcrumbProps\n}: BaseBreadcrumbProps) {\n const theme = resolveBaseAppearance(appearance);\n\n const handleClick = (\n event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n item: BaseBreadcrumbItem,\n index: number,\n ) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(item, index);\n };\n\n return (\n <nav\n {...breadcrumbProps}\n aria-label={breadcrumbProps['aria-label'] ?? 'Breadcrumb'}\n className={cn(theme.slots.breadcrumbRoot, classNames?.root, className)}\n style={{\n ...theme.styles.breadcrumb,\n ...style,\n }}\n >\n <ol className={cn(theme.slots.breadcrumbList, classNames?.list)}>\n {items.map((item, index) => {\n const current = isCurrentItem(item, index, items.length);\n return (\n <li\n key={`${index}-${item.value ?? item.href ?? String(item.label)}`}\n className={cn(theme.slots.breadcrumbItem, classNames?.item)}\n >\n {current ? (\n <span\n aria-current=\"page\"\n className={cn(theme.slots.breadcrumbCurrent, classNames?.current)}\n >\n {item.label}\n </span>\n ) : item.href ? (\n <a\n href={item.href}\n aria-disabled={item.disabled || undefined}\n className={cn(theme.slots.breadcrumbLink, classNames?.link)}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </a>\n ) : (\n <button\n type=\"button\"\n disabled={item.disabled}\n className={cn(\n theme.slots.breadcrumbLink,\n 'bg-transparent p-0',\n classNames?.link,\n )}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </button>\n )}\n {index < items.length - 1 ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.breadcrumbSeparator,\n classNames?.separator,\n )}\n >\n {separator}\n </span>\n ) : null}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n","import { forwardRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseButtonProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst buttonSizeClassNames = {\n sm: 'h-8 px-2.5 text-xs',\n md: 'h-9 px-3 text-sm',\n lg: 'h-10 px-3.5 text-base',\n} as const;\n\nconst iconOnlySizeClassNames = {\n sm: 'h-8 w-8 px-0',\n md: 'h-9 w-9 px-0',\n lg: 'h-10 w-10 px-0',\n} as const;\n\nconst iconSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nfunction nonEmptyText(value: string | undefined) {\n return typeof value === 'string' && value.trim() ? value : undefined;\n}\n\nfunction LoadingIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-full w-full motion-safe:animate-spin motion-reduce:animate-none\"\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\n function BaseButton(\n {\n children,\n label,\n icon,\n endIcon,\n type = 'button',\n title,\n ariaLabel,\n tone,\n size,\n active = false,\n iconOnly = false,\n disabled = false,\n loading = false,\n stopPropagation = false,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n onClick,\n 'aria-label': nativeAriaLabel,\n ...buttonProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['active', active],\n ['iconOnly', iconOnly],\n ['disabled', disabled],\n ['loading', loading],\n ['stopPropagation', stopPropagation],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseButton ${name} must be a boolean.`);\n }\n }\n if (size !== undefined && size !== 'sm' && size !== 'md' && size !== 'lg') {\n throw new TypeError('BaseButton size must be \"sm\", \"md\", or \"lg\".');\n }\n if (\n tone !== undefined &&\n tone !== 'default' &&\n tone !== 'primary' &&\n tone !== 'success' &&\n tone !== 'warning' &&\n tone !== 'danger' &&\n tone !== 'muted'\n ) {\n throw new TypeError(\n 'BaseButton tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance({\n ...resolvedAppearance,\n variant,\n density,\n state,\n });\n const resolvedLabel = children ?? label;\n const hasLabel =\n hasRenderableNode(resolvedLabel) &&\n (typeof resolvedLabel !== 'string' || Boolean(resolvedLabel.trim()));\n const explicitAriaLabel =\n nonEmptyText(ariaLabel) ?? nonEmptyText(nativeAriaLabel);\n const labelText =\n typeof resolvedLabel === 'string'\n ? nonEmptyText(resolvedLabel)\n : undefined;\n const resolvedTitle = nonEmptyText(title);\n if (iconOnly && !hasLabel && !explicitAriaLabel && !resolvedTitle) {\n throw new TypeError(\n 'BaseButton iconOnly requires ariaLabel, aria-label, title, or a renderable label.',\n );\n }\n const resolvedAriaLabel =\n explicitAriaLabel ??\n labelText ??\n resolvedTitle;\n const resolvedDisabled = disabled || loading;\n const resolvedTone = tone ?? 'default';\n const resolvedState = state ?? (loading\n ? 'loading'\n : disabled\n ? 'disabled'\n : active\n ? 'active'\n : 'idle');\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (resolvedDisabled) return;\n onClick?.(event);\n };\n\n return (\n <button\n {...componentAttributes}\n {...buttonProps}\n ref={ref}\n type={type}\n title={title}\n aria-label={resolvedAriaLabel}\n aria-pressed={active || undefined}\n aria-busy={loading || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n disabled={resolvedDisabled}\n data-monkeys-component=\"button\"\n data-slot=\"root\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n data-active={active || undefined}\n data-loading={loading || undefined}\n data-disabled={resolvedDisabled || undefined}\n data-icon-only={iconOnly || undefined}\n className={cn(\n theme.slots.buttonBase,\n iconOnly && theme.slots.buttonIconOnly,\n size && buttonSizeClassNames[size],\n iconOnly && size && iconOnlySizeClassNames[size],\n getBaseButtonToneClassName(theme, tone, active),\n resolvedDisabled && theme.slots.buttonDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.button,\n ...(active ? theme.styles.buttonActive : undefined),\n ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\n ...style,\n }}\n onClick={handleClick}\n >\n {loading ? (\n <span\n data-slot=\"icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n )}\n >\n <LoadingIcon />\n </span>\n ) : icon ? (\n <span\n data-slot=\"icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n )}\n >\n {icon}\n </span>\n ) : null}\n {iconOnly ? (\n hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className=\"sr-only\"\n >\n {resolvedLabel}\n </span>\n ) : null\n ) : hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(theme.slots.buttonLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n {!loading && endIcon ? (\n <span\n data-slot=\"end-icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n classNames?.endIcon,\n )}\n >\n {endIcon}\n </span>\n ) : null}\n </button>\n );\n },\n);\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react';\n\nexport type BaseFieldControlValue = string | boolean;\n\nexport function resolveBaseFieldValidationResult(result: unknown) {\n if (result === null) return null;\n if (typeof result === 'string' && result.trim().length > 0) return result;\n throw new TypeError(\n 'BaseField validate must return a non-empty error string or null.',\n );\n}\n\ninterface BaseFieldContextValue {\n invalid: boolean;\n registerControl: (controlKey: symbol) => () => void;\n notifyBlur: (value: BaseFieldControlValue) => void;\n notifyChange: (value: BaseFieldControlValue) => void;\n}\n\nexport const BaseFieldContext = createContext<BaseFieldContextValue | null>(\n null,\n);\n\nexport function useBaseFieldControl() {\n const context = useContext(BaseFieldContext);\n const controlKeyRef = useRef<symbol | null>(null);\n if (controlKeyRef.current === null) {\n controlKeyRef.current = Symbol('BaseFieldControl');\n }\n\n const registerControl = context?.registerControl;\n useEffect(() => {\n if (!registerControl || controlKeyRef.current === null) return undefined;\n return registerControl(controlKeyRef.current);\n }, [registerControl]);\n\n const notifyBlur = context?.notifyBlur;\n const notifyChange = context?.notifyChange;\n\n return {\n invalid: context?.invalid ?? false,\n notifyBlur: useCallback(\n (value: BaseFieldControlValue) => notifyBlur?.(value),\n [notifyBlur],\n ),\n notifyChange: useCallback(\n (value: BaseFieldControlValue) => notifyChange?.(value),\n [notifyChange],\n ),\n };\n}\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type Ref,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseCheckboxProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasNonEmptyRenderableNode, hasRenderableNode } from './utils';\n\nconst boxSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst indicatorSizeClassNames = {\n sm: 'text-[10px]',\n md: 'text-[11px]',\n lg: 'text-xs',\n} as const;\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === 'function') {\n ref(element);\n continue;\n }\n (ref as { current: TElement | null }).current = element;\n }\n}\n\nexport const BaseCheckbox = forwardRef<HTMLInputElement, BaseCheckboxProps>(\n function BaseCheckbox(\n {\n label,\n description,\n indeterminate = false,\n invalid = false,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onBlur,\n onChange,\n 'aria-invalid': nativeAriaInvalid,\n ...checkboxProps\n },\n forwardedRef,\n ) {\n for (const [name, value] of [\n ['indeterminate', indeterminate],\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseCheckbox ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseCheckbox controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n const hasLabel = hasRenderableNode(label);\n const hasDescription = hasNonEmptyRenderableNode(description);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const indeterminateRef = useRef(indeterminate);\n indeterminateRef.current = indeterminate;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = Boolean(isControlled ? checked : uncontrolledChecked);\n const active = indeterminate || resolvedChecked;\n const state = indeterminate\n ? 'mixed'\n : resolvedChecked\n ? 'checked'\n : 'unchecked';\n\n const setInputRef = useCallback(\n (element: HTMLInputElement | null) => {\n inputRef.current = element;\n if (element) element.indeterminate = indeterminateRef.current;\n setRefs(element, forwardedRef);\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.checked);\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n };\n\n return (\n <label\n {...componentAttributes}\n data-monkeys-component=\"checkbox\"\n data-slot=\"root\"\n data-state={state}\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.checkboxRoot,\n !hasDescription && 'items-center',\n disabled && theme.slots.checkboxDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.checkboxRoot,\n ...style,\n }}\n >\n <span\n data-slot=\"box\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.checkboxBox,\n !hasDescription && 'mt-0',\n active && theme.slots.checkboxBoxChecked,\n resolvedInvalid && theme.slots.checkboxBoxInvalid,\n controlSize && boxSizeClassNames[controlSize],\n classNames?.box,\n )}\n style={{\n ...theme.styles.checkboxBox,\n }}\n >\n <input\n {...checkboxProps}\n ref={setInputRef}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-checked={indeterminate ? 'mixed' : resolvedChecked}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.checkboxInput, classNames?.input)}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.checked);\n }}\n onChange={handleChange}\n />\n {active ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.checkboxIndicator,\n controlSize && indicatorSizeClassNames[controlSize],\n classNames?.indicator,\n )}\n >\n {indeterminate ? '–' : '✓'}\n </span>\n ) : null}\n </span>\n {hasLabel || hasDescription ? (\n <span\n data-slot=\"content\"\n className={cn(theme.slots.checkboxContent, classNames?.content)}\n >\n {hasLabel ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.checkboxLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : null}\n {hasDescription ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.checkboxDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import { forwardRef, type Ref } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseCodeProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseCode = forwardRef<HTMLElement, BaseCodeProps>(function BaseCode(\n {\n children,\n display = 'inline',\n appearance,\n className,\n classNames,\n style,\n ...codeProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (display === 'block') {\n return (\n <pre\n {...componentAttributes}\n {...codeProps}\n ref={ref as Ref<HTMLPreElement>}\n data-monkeys-component=\"code\"\n data-slot=\"root\"\n data-display=\"block\"\n className={cn(theme.slots.codeBlock, classNames?.root, className)}\n style={{\n ...theme.styles.code,\n ...style,\n }}\n >\n <code\n data-slot=\"code\"\n className={cn(theme.slots.codeContent, classNames?.code)}\n style={theme.styles.codeContent}\n >\n {children}\n </code>\n </pre>\n );\n }\n\n return (\n <code\n {...componentAttributes}\n {...codeProps}\n ref={ref as Ref<HTMLElement>}\n data-monkeys-component=\"code\"\n data-slot=\"root\"\n data-display=\"inline\"\n className={cn(\n theme.slots.codeInline,\n theme.slots.codeContent,\n classNames?.root,\n classNames?.code,\n className,\n )}\n style={{\n ...theme.styles.code,\n ...theme.styles.codeContent,\n ...style,\n }}\n >\n {children}\n </code>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseContainerProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseContainer = forwardRef<HTMLDivElement, BaseContainerProps>(\n function BaseContainer(\n {\n children,\n maxWidth = '80rem',\n padding = '1rem',\n appearance,\n className,\n classNames,\n style,\n ...containerProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedMaxWidth = resolveBaseLayoutLength(\n 'BaseContainer',\n 'maxWidth',\n maxWidth,\n );\n const resolvedPadding = resolveBaseLayoutLength(\n 'BaseContainer',\n 'padding',\n padding,\n );\n\n return (\n <div\n {...componentAttributes}\n {...containerProps}\n ref={ref}\n data-monkeys-component=\"container\"\n data-slot=\"root\"\n className={cn(theme.slots.containerRoot, classNames?.root, className)}\n style={{\n ...theme.styles.container,\n maxWidth: resolvedMaxWidth,\n paddingInline: resolvedPadding,\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n} from '../../provider/context';\nimport type { BasePortalContainer, BasePortalProps } from './types';\n\nfunction resolveContainerValue(\n value: BasePortalContainer,\n source: string,\n): Element | null {\n const candidate = typeof value === 'function' ? value() : value;\n if (candidate === null) return null;\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n candidate.nodeType !== 1\n ) {\n throw new TypeError(`${source} must resolve to an Element or null.`);\n }\n return candidate;\n}\n\ninterface ResolveBasePortalContainerOptions {\n explicitProvided: boolean;\n explicitContainer?: BasePortalContainer;\n providerProvided: boolean;\n providerContainer?: BasePortalContainer;\n getDocument?: () => Document | null;\n}\n\nexport function resolveBasePortalContainer({\n explicitProvided,\n explicitContainer,\n providerProvided,\n providerContainer,\n getDocument,\n}: ResolveBasePortalContainerOptions): Element | null {\n if (explicitProvided) {\n return resolveContainerValue(\n explicitContainer as BasePortalContainer,\n 'BasePortal container',\n );\n }\n if (providerProvided) {\n return resolveContainerValue(\n providerContainer as BasePortalContainer,\n 'MonkeysProvider portal.container',\n );\n }\n if (!getDocument) return null;\n\n const ownerDocument = getDocument();\n if (ownerDocument === null) return null;\n if (\n !ownerDocument ||\n typeof ownerDocument !== 'object' ||\n !('body' in ownerDocument)\n ) {\n throw new TypeError(\n 'MonkeysProvider environment.getDocument must resolve to a Document or null.',\n );\n }\n return resolveContainerValue(\n ownerDocument.body,\n 'MonkeysProvider environment.getDocument().body',\n );\n}\n\nexport function BasePortal(props: BasePortalProps) {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean') {\n throw new TypeError('BasePortal disabled must be a boolean.');\n }\n if (props.inline !== undefined && typeof props.inline !== 'boolean') {\n throw new TypeError('BasePortal inline must be a boolean.');\n }\n\n const disabled = props.disabled ?? portalOptions.disabled ?? false;\n if (!mounted || disabled || props.inline) {\n return <>{props.children}</>;\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: props.container !== undefined,\n explicitContainer: props.container,\n providerProvided: portalOptions.container !== undefined,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument,\n });\n\n return container\n ? createPortal(props.children, container)\n : <>{props.children}</>;\n}\n","import { useEffect, useState, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n type MonkeysPortalContainer,\n} from '../../../provider/context';\nimport { resolveBasePortalContainer } from '../BasePortal';\n\ninterface ResolveBaseOverlayPortalStateOptions {\n mounted: boolean;\n explicitDisabled?: boolean;\n explicitContainer?: MonkeysPortalContainer;\n providerDisabled?: boolean;\n providerContainer?: MonkeysPortalContainer;\n getDocument?: () => Document | null;\n}\n\ninterface BaseOverlayPortalInlineState {\n mounted: boolean;\n disabled: boolean;\n shouldPortal: false;\n container: null;\n radixPortalProps: undefined;\n}\n\ninterface BaseOverlayPortalReadyState {\n mounted: true;\n disabled: false;\n shouldPortal: true;\n container: Element;\n radixPortalProps: Readonly<{ container: Element }>;\n}\n\nexport type BaseOverlayPortalState =\n | BaseOverlayPortalInlineState\n | BaseOverlayPortalReadyState;\n\nexport function resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled,\n explicitContainer,\n providerDisabled,\n providerContainer,\n getDocument,\n}: ResolveBaseOverlayPortalStateOptions): BaseOverlayPortalState {\n const disabled = explicitDisabled ?? providerDisabled ?? false;\n if (!mounted || disabled) {\n return {\n mounted,\n disabled,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: explicitContainer !== undefined,\n explicitContainer,\n providerProvided: providerContainer !== undefined,\n providerContainer,\n getDocument,\n });\n\n if (!container) {\n return {\n mounted: true,\n disabled: false,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n return {\n mounted: true,\n disabled: false,\n shouldPortal: true,\n container,\n radixPortalProps: Object.freeze({ container }),\n };\n}\n\nexport interface UseBaseOverlayPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nfunction getDefaultDocument(): Document | null {\n return globalThis.document ?? null;\n}\n\nexport function useBaseOverlayPortal(\n options: UseBaseOverlayPortalOptions = {},\n): BaseOverlayPortalState {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled: options.disabled,\n explicitContainer: options.container,\n providerDisabled: portalOptions.disabled,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument ?? getDefaultDocument,\n });\n}\n\nexport interface BaseOverlayPortalProps extends UseBaseOverlayPortalOptions {\n children?: ReactNode;\n}\n\nexport function renderBaseOverlayPortalContent(\n children: ReactNode,\n portal: BaseOverlayPortalState,\n) {\n return portal.shouldPortal\n ? createPortal(children, portal.container)\n : <>{children}</>;\n}\n\nexport function BaseOverlayPortal({\n children,\n container,\n disabled,\n}: BaseOverlayPortalProps) {\n const portal = useBaseOverlayPortal({ container, disabled });\n return renderBaseOverlayPortalContent(children, portal);\n}\n","import * as ContextMenu from '@radix-ui/react-context-menu';\nimport { forwardRef, type ComponentRef, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysDirection,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\n\nimport type {\n BaseContextMenuCheckboxItemProps,\n BaseContextMenuContentProps,\n BaseContextMenuItemProps,\n BaseContextMenuLabelProps,\n BaseContextMenuProps,\n BaseContextMenuRadioGroupProps,\n BaseContextMenuRadioItemProps,\n BaseContextMenuSeparatorProps,\n BaseContextMenuSubContentProps,\n BaseContextMenuSubProps,\n BaseContextMenuSubTriggerProps,\n BaseContextMenuTriggerProps,\n} from './types';\nimport {\n getBaseMenuItemToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst contextMenuTones = [\n 'default',\n 'primary',\n 'success',\n 'warning',\n 'danger',\n 'muted',\n] as const;\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseContextMenu ${name} must be a boolean.`);\n }\n}\n\nfunction validateTone(value: unknown) {\n if (\n value !== undefined &&\n !contextMenuTones.includes(\n value as (typeof contextMenuTones)[number],\n )\n ) {\n throw new TypeError(\n 'BaseContextMenu tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n}\n\nfunction validateDirection(value: unknown) {\n if (value !== undefined && value !== 'ltr' && value !== 'rtl') {\n throw new TypeError('BaseContextMenu dir must be \"ltr\" or \"rtl\".');\n }\n}\n\nfunction CheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"M3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n );\n}\n\nfunction DotIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"currentColor\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"m6 4 4 4-4 4\" />\n </svg>\n );\n}\n\nfunction renderItemContent({\n label,\n icon,\n shortcut,\n children,\n classNames,\n inset,\n indicator,\n}: Pick<\n BaseContextMenuItemProps,\n 'children' | 'classNames' | 'icon' | 'inset' | 'label' | 'shortcut'\n> & {\n indicator?: ReactNode;\n}) {\n const resolvedLabel = children ?? label;\n\n return (\n <>\n {indicator ? indicator : null}\n {hasRenderableNode(icon) ? (\n <span data-slot=\"icon\" className={cn(classNames?.icon)}>\n {icon}\n </span>\n ) : inset ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"icon\"\n className=\"h-4 w-4 shrink-0\"\n />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span data-slot=\"label\" className={cn(classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n {hasRenderableNode(shortcut) ? (\n <span data-slot=\"shortcut\" className={cn(classNames?.shortcut)}>\n {shortcut}\n </span>\n ) : null}\n </>\n );\n}\n\nexport function BaseContextMenu({\n children,\n trigger,\n content,\n disabled = false,\n modal = true,\n dir,\n appearance,\n className,\n classNames,\n onOpenChange,\n}: BaseContextMenuProps) {\n validateBoolean(disabled, 'disabled');\n validateBoolean(modal, 'modal');\n validateDirection(dir);\n const inheritedDirection = useMonkeysDirection();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n\n return (\n <ContextMenu.Root\n onOpenChange={onOpenChange}\n modal={modal}\n dir={dir ?? inheritedDirection}\n >\n {trigger ? (\n <BaseContextMenuTrigger\n disabled={disabled}\n appearance={resolvedAppearance}\n className={cn(classNames?.trigger, className)}\n >\n {trigger}\n </BaseContextMenuTrigger>\n ) : null}\n {content ? (\n <BaseContextMenuContent\n appearance={resolvedAppearance}\n className={classNames?.content}\n >\n {content}\n </BaseContextMenuContent>\n ) : null}\n {children}\n </ContextMenu.Root>\n );\n}\n\nexport const BaseContextMenuTrigger = forwardRef<\n ComponentRef<typeof ContextMenu.Trigger>,\n BaseContextMenuTriggerProps\n>(function BaseContextMenuTrigger(\n {\n children,\n disabled = false,\n asChild = false,\n appearance,\n className,\n style,\n ...triggerProps\n },\n ref,\n) {\n validateBoolean(disabled, 'Trigger disabled');\n validateBoolean(asChild, 'Trigger asChild');\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Trigger\n {...componentAttributes}\n {...triggerProps}\n ref={ref}\n asChild={asChild}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"trigger\"\n data-disabled={disabled || undefined}\n className={cn(\n !asChild && theme.slots.menuTrigger,\n disabled && !asChild && theme.slots.menuItemDisabled,\n className,\n )}\n style={style}\n >\n {children}\n </ContextMenu.Trigger>\n );\n});\n\nexport const BaseContextMenuContent = forwardRef<\n ComponentRef<typeof ContextMenu.Content>,\n BaseContextMenuContentProps\n>(function BaseContextMenuContent(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...contentProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const portal = useBaseOverlayPortal();\n const content = (\n <ContextMenu.Content\n {...componentAttributes}\n {...contentProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"content\"\n className={cn(theme.slots.menuContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.Content>\n );\n\n return portal.shouldPortal ? (\n <ContextMenu.Portal {...portal.radixPortalProps}>\n {content}\n </ContextMenu.Portal>\n ) : content;\n});\n\nexport const BaseContextMenuLabel = forwardRef<\n ComponentRef<typeof ContextMenu.Label>,\n BaseContextMenuLabelProps\n>(function BaseContextMenuLabel(\n { children, appearance, className, style, ...labelProps },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Label\n {...componentAttributes}\n {...labelProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"label\"\n className={cn(theme.slots.menuLabel, className)}\n style={style}\n >\n {children}\n </ContextMenu.Label>\n );\n});\n\nexport const BaseContextMenuSeparator = forwardRef<\n ComponentRef<typeof ContextMenu.Separator>,\n BaseContextMenuSeparatorProps\n>(function BaseContextMenuSeparator(\n { appearance, className, style, ...separatorProps },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Separator\n {...componentAttributes}\n {...separatorProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"separator\"\n className={cn(theme.slots.menuSeparator, className)}\n style={style}\n />\n );\n});\n\nexport const BaseContextMenuItem = forwardRef<\n ComponentRef<typeof ContextMenu.Item>,\n BaseContextMenuItemProps\n>(function BaseContextMenuItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'Item disabled');\n validateBoolean(inset, 'Item inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Item\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"item\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuItem,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n })}\n </ContextMenu.Item>\n );\n});\n\nexport const BaseContextMenuCheckboxItem = forwardRef<\n ComponentRef<typeof ContextMenu.CheckboxItem>,\n BaseContextMenuCheckboxItemProps\n>(function BaseContextMenuCheckboxItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n checked,\n onCheckedChange,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'CheckboxItem disabled');\n validateBoolean(inset, 'CheckboxItem inset');\n validateTone(tone);\n if (\n checked !== undefined &&\n checked !== 'indeterminate' &&\n typeof checked !== 'boolean'\n ) {\n throw new TypeError(\n 'BaseContextMenu CheckboxItem checked must be a boolean or \"indeterminate\".',\n );\n }\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.CheckboxItem\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n checked={checked}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"checkbox-item\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n data-checked={\n checked === 'indeterminate'\n ? 'mixed'\n : checked === undefined\n ? undefined\n : String(checked)\n }\n onCheckedChange={(nextChecked) => {\n if (disabled) return;\n onCheckedChange?.(nextChecked);\n }}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n data-slot=\"indicator\"\n className={cn(theme.slots.menuCheckboxIndicator, classNames?.indicator)}\n >\n <CheckIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.CheckboxItem>\n );\n});\n\nexport function BaseContextMenuRadioGroup({\n children,\n value,\n onValueChange,\n}: BaseContextMenuRadioGroupProps) {\n return (\n <ContextMenu.RadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </ContextMenu.RadioGroup>\n );\n}\n\nexport const BaseContextMenuRadioItem = forwardRef<\n ComponentRef<typeof ContextMenu.RadioItem>,\n BaseContextMenuRadioItemProps\n>(function BaseContextMenuRadioItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n value,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'RadioItem disabled');\n validateBoolean(inset, 'RadioItem inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.RadioItem\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n value={value}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"radio-item\"\n data-tone={resolvedTone}\n data-value={value}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n data-slot=\"indicator\"\n className={cn(theme.slots.menuRadioIndicator, classNames?.indicator)}\n >\n <DotIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.RadioItem>\n );\n});\n\nexport function BaseContextMenuSub({\n children,\n open,\n defaultOpen,\n onOpenChange,\n}: BaseContextMenuSubProps) {\n if (open !== undefined) validateBoolean(open, 'Sub open');\n if (defaultOpen !== undefined) {\n validateBoolean(defaultOpen, 'Sub defaultOpen');\n }\n return (\n <ContextMenu.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n {children}\n </ContextMenu.Sub>\n );\n}\n\nexport const BaseContextMenuSubTrigger = forwardRef<\n ComponentRef<typeof ContextMenu.SubTrigger>,\n BaseContextMenuSubTriggerProps\n>(function BaseContextMenuSubTrigger(\n {\n children,\n label,\n icon,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'SubTrigger disabled');\n validateBoolean(inset, 'SubTrigger inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedLabel = children ?? label;\n\n return (\n <ContextMenu.SubTrigger\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"sub-trigger\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuSubTrigger,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span\n data-slot=\"icon\"\n className={cn(theme.slots.menuItemIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : inset ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"icon\"\n className=\"h-4 w-4 shrink-0\"\n />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.menuItemLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n <span\n data-slot=\"sub-indicator\"\n className={cn(\n theme.slots.menuSubTriggerIcon,\n classNames?.shortcut,\n 'rtl:rotate-180',\n )}\n >\n <ChevronRightIcon />\n </span>\n </ContextMenu.SubTrigger>\n );\n});\n\nexport const BaseContextMenuSubContent = forwardRef<\n ComponentRef<typeof ContextMenu.SubContent>,\n BaseContextMenuSubContentProps\n>(function BaseContextMenuSubContent(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n sideOffset = 6,\n ...subContentProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const portal = useBaseOverlayPortal();\n const content = (\n <ContextMenu.SubContent\n {...componentAttributes}\n {...subContentProps}\n ref={ref}\n sideOffset={sideOffset}\n data-monkeys-component=\"context-menu\"\n data-slot=\"sub-content\"\n className={cn(theme.slots.menuSubContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.SubContent>\n );\n\n return portal.shouldPortal ? (\n <ContextMenu.Portal {...portal.radixPortalProps}>\n {content}\n </ContextMenu.Portal>\n ) : content;\n});\n","import type { BaseDescriptionListProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst columnClassNames = {\n 1: 'grid-cols-1',\n 2: 'md:grid-cols-2',\n 3: 'md:grid-cols-2 xl:grid-cols-3',\n};\n\nexport function BaseDescriptionList({\n items,\n columns = 1,\n appearance,\n className,\n classNames,\n style,\n children,\n ...listProps\n}: BaseDescriptionListProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <dl\n {...listProps}\n className={cn(\n theme.slots.descriptionListRoot,\n columnClassNames[columns],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.descriptionList,\n ...style,\n }}\n >\n {items?.map((item, index) => (\n <div\n key={index}\n className={cn(theme.slots.descriptionListItem, classNames?.item)}\n >\n <dt className={cn(theme.slots.descriptionListTerm, classNames?.term)}>\n {item.term}\n </dt>\n <dd\n className={cn(theme.slots.descriptionListValue, classNames?.value)}\n >\n {item.value}\n </dd>\n </div>\n ))}\n {children}\n </dl>\n );\n}\n","import * as Dialog from '@radix-ui/react-dialog';\nimport { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseControlTone, BaseDialogProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst dialogTriggerTones = [\n 'default',\n 'primary',\n 'success',\n 'warning',\n 'danger',\n 'muted',\n] as const;\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseDialog ${name} must be a boolean.`);\n }\n}\n\nfunction validateTriggerTone(value: unknown) {\n if (\n !dialogTriggerTones.includes(\n value as (typeof dialogTriggerTones)[number],\n )\n ) {\n throw new TypeError(\n 'BaseDialog triggerTone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n}\n\nfunction renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone,\n triggerDisabled,\n theme,\n}: Pick<\n BaseDialogProps,\n 'trigger' | 'triggerDisabled' | 'triggerIcon' | 'triggerLabel'\n> & {\n triggerTone: BaseControlTone;\n theme: ReturnType<typeof resolveBaseAppearance>;\n}) {\n if (hasRenderableNode(trigger)) {\n return (\n <span\n role=\"button\"\n tabIndex={triggerDisabled ? -1 : 0}\n aria-disabled={triggerDisabled || undefined}\n onKeyDown={(event) => {\n if (triggerDisabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.currentTarget.click();\n }\n }}\n >\n {trigger}\n </span>\n );\n }\n\n if (!hasRenderableNode(triggerLabel)) return null;\n\n return (\n <button\n type=\"button\"\n disabled={triggerDisabled}\n aria-label={\n typeof triggerLabel === 'string' && triggerLabel.trim()\n ? triggerLabel\n : undefined\n }\n className={cn(\n theme.slots.buttonBase,\n getBaseButtonToneClassName(theme, triggerTone),\n triggerDisabled && theme.slots.buttonDisabled,\n )}\n style={{\n ...theme.styles.button,\n ...(triggerDisabled ? theme.styles.buttonDisabled : undefined),\n }}\n >\n {hasRenderableNode(triggerIcon) ? (\n <span data-slot=\"icon\" className={theme.slots.buttonIcon}>\n {triggerIcon}\n </span>\n ) : null}\n <span data-slot=\"label\" className={theme.slots.buttonLabel}>\n {triggerLabel}\n </span>\n </button>\n );\n}\n\nexport const BaseDialog = forwardRef<HTMLDivElement, BaseDialogProps>(\n function BaseDialog(\n {\n open,\n defaultOpen = false,\n title,\n description,\n header,\n footer,\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone = 'default',\n triggerDisabled = false,\n closeLabel,\n closeOnEscape = true,\n closeOnOverlayClick = true,\n showCloseButton = true,\n keepMounted = false,\n trapFocus = true,\n restoreFocus = true,\n initialFocus = 'first-interactive',\n initialFocusRef,\n zIndex,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n id,\n ...dialogProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(triggerDisabled, 'triggerDisabled');\n validateBoolean(closeOnEscape, 'closeOnEscape');\n validateBoolean(closeOnOverlayClick, 'closeOnOverlayClick');\n validateBoolean(showCloseButton, 'showCloseButton');\n validateBoolean(keepMounted, 'keepMounted');\n validateBoolean(trapFocus, 'trapFocus');\n validateBoolean(restoreFocus, 'restoreFocus');\n validateBoolean(portal, 'portal');\n validateTriggerTone(triggerTone);\n if (\n initialFocus !== 'first-interactive' &&\n initialFocus !== 'container' &&\n initialFocus !== 'explicit'\n ) {\n throw new TypeError(\n 'BaseDialog initialFocus must be \"first-interactive\", \"container\", or \"explicit\".',\n );\n }\n if (zIndex !== undefined && !Number.isFinite(zIndex)) {\n throw new TypeError('BaseDialog zIndex must be a finite number.');\n }\n\n const messages = useMonkeysLocaleMessages().dialog;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const resolvedCloseLabel =\n closeLabel === undefined ? messages.close : closeLabel;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const panelRef = useRef<HTMLDivElement | null>(null);\n const returnFocusRef = useRef<HTMLElement | null>(null);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n const hasTitle = hasRenderableNode(title);\n const hasDescription = hasRenderableNode(description);\n const hasCustomHeader = hasRenderableNode(header);\n\n if (\n showCloseButton &&\n (typeof resolvedCloseLabel !== 'string' || !resolvedCloseLabel.trim())\n ) {\n throw new TypeError(\n 'BaseDialog closeLabel must be a non-empty string when showCloseButton is true.',\n );\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n useEffect(() => {\n if (!isOpen || !keepMounted) return undefined;\n const panel = panelRef.current;\n const ownerDocument = panel?.ownerDocument;\n const ownerWindow = ownerDocument?.defaultView;\n if (!panel || !ownerDocument || !ownerWindow) return undefined;\n\n returnFocusRef.current =\n ownerDocument.activeElement instanceof ownerWindow.HTMLElement\n ? ownerDocument.activeElement\n : null;\n const focusableSelector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',');\n const focusInitial = () => {\n const firstInteractive = panel.querySelector<HTMLElement>(focusableSelector);\n const target =\n initialFocus === 'container'\n ? panel\n : initialFocus === 'explicit'\n ? initialFocusRef?.current ?? panel\n : firstInteractive ?? panel;\n target.focus();\n };\n const frame = ownerWindow.requestAnimationFrame(focusInitial);\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape) {\n event.preventDefault();\n event.stopPropagation();\n handleOpenChange(false);\n return;\n }\n if (event.key !== 'Tab' || !trapFocus) return;\n const focusable = Array.from(\n panel.querySelectorAll<HTMLElement>(focusableSelector),\n );\n if (focusable.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (event.shiftKey && ownerDocument.activeElement === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && ownerDocument.activeElement === last) {\n event.preventDefault();\n first.focus();\n }\n };\n ownerWindow.addEventListener('keydown', handleKeyDown);\n return () => {\n ownerWindow.cancelAnimationFrame(frame);\n ownerWindow.removeEventListener('keydown', handleKeyDown);\n if (restoreFocus && returnFocusRef.current?.isConnected) {\n returnFocusRef.current.focus();\n }\n };\n }, [\n closeOnEscape,\n initialFocus,\n initialFocusRef,\n isOpen,\n keepMounted,\n restoreFocus,\n trapFocus,\n ]);\n\n const semanticHeader =\n hasCustomHeader || hasTitle || hasDescription ? (\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"header\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogHeader, classNames?.header)}\n >\n {hasCustomHeader ? header : null}\n {hasTitle ? (\n <Dialog.Title\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"title\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={\n hasCustomHeader\n ? 'sr-only'\n : cn(theme.slots.dialogTitle, classNames?.title)\n }\n >\n {title}\n </Dialog.Title>\n ) : null}\n {hasDescription ? (\n <Dialog.Description\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"description\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={\n hasCustomHeader\n ? 'sr-only'\n : cn(\n theme.slots.dialogDescription,\n classNames?.description,\n )\n }\n >\n {description}\n </Dialog.Description>\n ) : null}\n </div>\n ) : null;\n\n const triggerNode = renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone,\n triggerDisabled,\n theme,\n });\n\n const dialogLayers = isOpen || keepMounted ? (\n <>\n <Dialog.Overlay\n forceMount={keepMounted || undefined}\n hidden={!isOpen}\n {...componentAttributes}\n aria-hidden=\"true\"\n data-monkeys-component=\"dialog\"\n data-slot=\"overlay\"\n data-portal={portalState}\n className={cn(theme.slots.dialogOverlay, classNames?.overlay)}\n style={{ ...theme.styles.dialogOverlay, zIndex }}\n />\n <div\n {...componentAttributes}\n hidden={!isOpen}\n data-monkeys-component=\"dialog\"\n data-slot=\"content\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogContent, classNames?.content)}\n style={{ zIndex }}\n >\n <Dialog.Content\n forceMount={keepMounted || undefined}\n {...componentAttributes}\n {...(!hasTitle ? { 'aria-labelledby': undefined } : {})}\n {...(!hasDescription ? { 'aria-describedby': undefined } : {})}\n asChild\n onOpenAutoFocus={(event) => {\n if (keepMounted) event.preventDefault();\n }}\n onCloseAutoFocus={(event) => {\n if (keepMounted) event.preventDefault();\n }}\n onEscapeKeyDown={(event) => {\n if (keepMounted || !closeOnEscape) event.preventDefault();\n }}\n onPointerDownOutside={(event) => {\n if (!closeOnOverlayClick) event.preventDefault();\n }}\n >\n <div\n {...componentAttributes}\n ref={panelRef}\n tabIndex={-1}\n aria-modal=\"true\"\n data-monkeys-component=\"dialog\"\n data-slot=\"panel\"\n data-portal={portalState}\n className={cn(theme.slots.dialogPanel, classNames?.panel)}\n style={theme.styles.dialogPanel}\n >\n {semanticHeader}\n\n {showCloseButton ? (\n <Dialog.Close asChild>\n <button\n {...componentAttributes}\n type=\"button\"\n aria-label={resolvedCloseLabel}\n title={resolvedCloseLabel}\n data-monkeys-component=\"dialog\"\n data-slot=\"close\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(\n theme.slots.dialogClose,\n classNames?.close,\n )}\n >\n ×\n </button>\n </Dialog.Close>\n ) : null}\n\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"body\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogBody, classNames?.body)}\n >\n {children}\n </div>\n\n {hasRenderableNode(footer) ? (\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"footer\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogFooter, classNames?.footer)}\n >\n {footer}\n </div>\n ) : null}\n </div>\n </Dialog.Content>\n </div>\n </>\n ) : null;\n\n return (\n <div\n {...componentAttributes}\n {...dialogProps}\n ref={ref}\n id={id}\n data-monkeys-component=\"dialog\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogRoot, classNames?.root, className)}\n style={style}\n >\n <Dialog.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={!keepMounted && trapFocus}\n >\n {triggerNode ? (\n <Dialog.Trigger\n {...componentAttributes}\n asChild\n disabled={triggerDisabled}\n data-monkeys-component=\"dialog\"\n data-slot=\"trigger\"\n data-portal={portalState}\n data-tone={triggerTone}\n data-disabled={triggerDisabled || undefined}\n className={cn(\n theme.slots.dialogTrigger,\n triggerDisabled && theme.slots.dialogTriggerDisabled,\n classNames?.trigger,\n )}\n >\n {triggerNode}\n </Dialog.Trigger>\n ) : null}\n {portal && overlayPortal.shouldPortal ? (\n <Dialog.Portal\n {...overlayPortal.radixPortalProps}\n forceMount={keepMounted || undefined}\n >\n {dialogLayers}\n </Dialog.Portal>\n ) : (\n dialogLayers\n )}\n </Dialog.Root>\n </div>\n );\n },\n);\n","import { forwardRef, type CSSProperties } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseDividerProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseDivider = forwardRef<HTMLDivElement, BaseDividerProps>(\n function BaseDivider(\n {\n orientation = 'horizontal',\n label,\n appearance,\n className,\n classNames,\n style,\n ...dividerProps\n },\n ref,\n ) {\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseDivider orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const isVertical = orientation === 'vertical';\n const hasLabel = hasRenderableNode(label) && !isVertical;\n const rootStyle: CSSProperties = {\n ...theme.styles.divider,\n ...style,\n };\n\n if (hasLabel) {\n return (\n <div\n {...componentAttributes}\n {...dividerProps}\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n data-monkeys-component=\"divider\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state=\"labeled\"\n className={cn(\n 'flex min-w-0 items-center',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n >\n <div\n data-slot=\"line\"\n data-orientation={orientation}\n className={cn(\n 'min-w-0 flex-1 border-t',\n theme.slots.dividerRoot,\n classNames?.line,\n )}\n />\n <span\n data-slot=\"label\"\n data-orientation={orientation}\n className={cn(theme.slots.dividerLabel, classNames?.label)}\n >\n {label}\n </span>\n <div\n data-slot=\"line\"\n data-orientation={orientation}\n className={cn(\n 'min-w-0 flex-1 border-t',\n theme.slots.dividerRoot,\n classNames?.line,\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n {...componentAttributes}\n {...dividerProps}\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n data-monkeys-component=\"divider\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state=\"unlabeled\"\n className={cn(\n theme.slots.dividerRoot,\n isVertical ? 'min-h-full self-stretch border-l' : 'w-full border-t',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n />\n );\n },\n);\n","import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { forwardRef, useState, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysDirection,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type {\n BaseDropdownMenuItem,\n BaseDropdownMenuPlacement,\n BaseDropdownMenuProps,\n} from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseDropdownMenu ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'bottom-start' &&\n value !== 'bottom-end' &&\n value !== 'top-start' &&\n value !== 'top-end'\n ) {\n throw new TypeError(\n 'BaseDropdownMenu placement must be \"bottom-start\", \"bottom-end\", \"top-start\", or \"top-end\".',\n );\n }\n}\n\nfunction validateDirection(value: unknown) {\n if (value !== undefined && value !== 'ltr' && value !== 'rtl') {\n throw new TypeError('BaseDropdownMenu dir must be \"ltr\" or \"rtl\".');\n }\n}\n\nfunction validateItems(items: unknown): asserts items is BaseDropdownMenuItem[] {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseDropdownMenu items must be an array.');\n }\n\n const values = new Set<string>();\n for (const [index, item] of items.entries()) {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n throw new TypeError(`BaseDropdownMenu items[${index}] must be an object.`);\n }\n if (typeof item.value !== 'string' || !item.value.trim()) {\n throw new TypeError(\n `BaseDropdownMenu items[${index}].value must be a non-empty string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n `BaseDropdownMenu item value \"${item.value}\" must be unique.`,\n );\n }\n values.add(item.value);\n for (const name of ['disabled', 'danger', 'separatorBefore'] as const) {\n const value = item[name];\n if (value !== undefined) {\n validateBoolean(value, `items[${index}].${name}`);\n }\n }\n if (item.onSelect !== undefined && typeof item.onSelect !== 'function') {\n throw new TypeError(\n `BaseDropdownMenu items[${index}].onSelect must be a function.`,\n );\n }\n }\n}\n\nfunction resolvePlacement(placement: BaseDropdownMenuPlacement) {\n const [side, align] = placement.split('-') as [\n 'bottom' | 'top',\n 'end' | 'start',\n ];\n return { side, align };\n}\n\nfunction renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n disabled,\n theme,\n}: Pick<\n BaseDropdownMenuProps,\n 'disabled' | 'trigger' | 'triggerIcon' | 'triggerLabel'\n> & {\n triggerLabel: ReactNode;\n theme: ReturnType<typeof resolveBaseAppearance>;\n}) {\n return hasRenderableNode(trigger) ? (\n <span\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled || undefined}\n >\n {trigger}\n </span>\n ) : (\n <button\n type=\"button\"\n disabled={disabled}\n aria-label={\n typeof triggerLabel === 'string' && triggerLabel.trim()\n ? triggerLabel\n : undefined\n }\n className={cn(\n theme.slots.buttonBase,\n getBaseButtonToneClassName(theme),\n disabled && theme.slots.buttonDisabled,\n )}\n style={{\n ...theme.styles.button,\n ...(disabled ? theme.styles.buttonDisabled : undefined),\n }}\n >\n {hasRenderableNode(triggerIcon) ? (\n <span data-slot=\"icon\" className={theme.slots.buttonIcon}>\n {triggerIcon}\n </span>\n ) : null}\n {hasRenderableNode(triggerLabel) ? (\n <span data-slot=\"label\" className={theme.slots.buttonLabel}>\n {triggerLabel}\n </span>\n ) : null}\n </button>\n );\n}\n\nexport const BaseDropdownMenu = forwardRef<\n HTMLDivElement,\n BaseDropdownMenuProps\n>(function BaseDropdownMenu(\n {\n items = [],\n label,\n trigger,\n triggerLabel,\n triggerIcon,\n disabled = false,\n open,\n defaultOpen = false,\n placement = 'bottom-start',\n closeOnSelect = true,\n portal = false,\n dir,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n onSelect,\n ...menuProps\n },\n ref,\n) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(closeOnSelect, 'closeOnSelect');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n validateDirection(dir);\n validateItems(items);\n\n const inheritedDirection = useMonkeysDirection();\n const resolvedDirection = dir ?? inheritedDirection;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const messages = useMonkeysLocaleMessages().dropdownMenu;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const resolvedTriggerLabel =\n triggerLabel === undefined ? messages.actions : triggerLabel;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n const { side, align } = resolvePlacement(placement);\n\n if (\n triggerLabel === undefined &&\n (typeof messages.actions !== 'string' || !messages.actions.trim())\n ) {\n throw new TypeError(\n 'BaseDropdownMenu locale actions message must be a non-empty string.',\n );\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const menuContent = (\n <DropdownMenu.Content\n {...componentAttributes}\n side={side}\n align={align}\n sideOffset={6}\n collisionPadding={8}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(theme.slots.dropdownMenu, classNames?.menu)}\n style={theme.styles.dropdownMenu}\n >\n {hasRenderableNode(label) ? (\n <DropdownMenu.Label\n {...componentAttributes}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"label\"\n data-state=\"static\"\n className={cn(theme.slots.dropdownLabel, classNames?.label)}\n >\n {label}\n </DropdownMenu.Label>\n ) : null}\n {items.map((item) => {\n const itemDisabled = item.disabled ?? false;\n const tone = item.danger ? 'danger' : 'default';\n\n return (\n <div\n key={item.value}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"item-wrapper\"\n >\n {item.separatorBefore ? (\n <DropdownMenu.Separator\n {...componentAttributes}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"separator\"\n data-state=\"static\"\n className={cn(\n theme.slots.dropdownSeparator,\n classNames?.separator,\n )}\n />\n ) : null}\n <DropdownMenu.Item\n asChild\n disabled={itemDisabled}\n onSelect={(event) => {\n item.onSelect?.(item);\n onSelect?.(item);\n if (!closeOnSelect) {\n event.preventDefault();\n }\n }}\n >\n <button\n {...componentAttributes}\n type=\"button\"\n disabled={itemDisabled}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"item\"\n data-state={itemDisabled ? 'disabled' : 'enabled'}\n data-value={item.value}\n data-placement={placement}\n data-portal={portalState}\n data-tone={tone}\n data-disabled={itemDisabled || undefined}\n className={cn(\n theme.slots.dropdownItem,\n item.danger && theme.slots.dropdownItemDanger,\n itemDisabled && theme.slots.dropdownItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.dropdownItem}\n >\n {hasRenderableNode(item.icon) ? (\n <span\n data-slot=\"item-icon\"\n className={cn(\n theme.slots.dropdownItemIcon,\n classNames?.itemIcon,\n )}\n >\n {item.icon}\n </span>\n ) : null}\n <span\n data-slot=\"item-content\"\n className={cn(\n theme.slots.dropdownItemContent,\n classNames?.itemContent,\n )}\n >\n <span\n data-slot=\"item-label\"\n className={cn(\n theme.slots.dropdownItemLabel,\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n {hasRenderableNode(item.description) ? (\n <span\n data-slot=\"item-description\"\n className={cn(\n theme.slots.dropdownItemDescription,\n classNames?.itemDescription,\n )}\n >\n {item.description}\n </span>\n ) : null}\n </span>\n {hasRenderableNode(item.shortcut) ? (\n <span\n data-slot=\"item-shortcut\"\n className={cn(\n theme.slots.dropdownItemShortcut,\n classNames?.itemShortcut,\n )}\n >\n {item.shortcut}\n </span>\n ) : null}\n </button>\n </DropdownMenu.Item>\n </div>\n );\n })}\n {children}\n </DropdownMenu.Content>\n );\n\n return (\n <div\n {...componentAttributes}\n {...menuProps}\n ref={ref}\n dir={resolvedDirection}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(theme.slots.dropdownRoot, classNames?.root, className)}\n style={style}\n >\n <DropdownMenu.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n dir={resolvedDirection}\n modal={false}\n >\n <DropdownMenu.Trigger\n {...componentAttributes}\n asChild\n disabled={disabled}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.dropdownTrigger,\n disabled && theme.slots.dropdownTriggerDisabled,\n classNames?.trigger,\n )}\n >\n {renderTrigger({\n trigger,\n triggerLabel: resolvedTriggerLabel,\n triggerIcon,\n disabled,\n theme,\n })}\n </DropdownMenu.Trigger>\n {portal && overlayPortal.shouldPortal ? (\n <DropdownMenu.Portal {...overlayPortal.radixPortalProps}>\n {menuContent}\n </DropdownMenu.Portal>\n ) : (\n menuContent\n )}\n </DropdownMenu.Root>\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseEmptyStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultEmptyIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.8\"\n >\n <rect width=\"16\" height=\"12\" x=\"4\" y=\"6\" rx=\"2\" />\n <path d=\"M8 10h8\" />\n <path d=\"M8 14h5\" />\n </svg>\n );\n}\n\nexport const BaseEmptyState = forwardRef<HTMLDivElement, BaseEmptyStateProps>(\n function BaseEmptyState(\n {\n icon = <DefaultEmptyIcon />,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n ...stateProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...stateProps}\n ref={ref}\n data-monkeys-component=\"empty-state\"\n data-slot=\"root\"\n data-state=\"empty\"\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div\n data-slot=\"icon\"\n data-state=\"empty\"\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n data-state=\"empty\"\n className={cn(theme.slots.stateTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n data-state=\"empty\"\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div\n data-slot=\"actions\"\n data-state=\"empty\"\n className={cn(theme.slots.stateActions, classNames?.actions)}\n >\n {actions}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseFieldControlProps, BaseFieldProps } from './types';\nimport {\n BaseFieldContext,\n resolveBaseFieldValidationResult,\n type BaseFieldControlValue,\n} from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction mergeAriaIds(...values: Array<string | undefined>) {\n const ids = values.flatMap(\n (value) => value?.split(/\\s+/).filter(Boolean) ?? [],\n );\n return ids.length ? Array.from(new Set(ids)).join(' ') : undefined;\n}\n\nfunction resolveOptionalId(\n value: string | undefined,\n fallback: string,\n name: string,\n) {\n if (value === undefined) return fallback;\n if (!value.trim() || /\\s/.test(value)) {\n throw new TypeError(\n `BaseField ${name} must be a non-empty ID without whitespace.`,\n );\n }\n return value;\n}\n\nexport const BaseField = forwardRef<HTMLDivElement, BaseFieldProps>(\n function BaseField(\n {\n label,\n description,\n message,\n error,\n required = false,\n disabled = false,\n htmlFor,\n descriptionId,\n messageId,\n errorId,\n validate,\n validationMode = 'onBlur',\n children,\n appearance,\n className,\n classNames,\n style,\n ...fieldProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['required', required],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseField ${name} must be a boolean.`);\n }\n }\n if (validate !== undefined && typeof validate !== 'function') {\n throw new TypeError('BaseField validate must be a function.');\n }\n if (validationMode !== 'onBlur' && validationMode !== 'onChange') {\n throw new TypeError(\n 'BaseField validationMode must be \"onBlur\" or \"onChange\".',\n );\n }\n\n const generatedId = useId();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasDescription = hasRenderableNode(description);\n const [internalError, setInternalError] = useState<string | null>(null);\n const registeredControlsRef = useRef(new Set<symbol>());\n const validateRef = useRef(validate);\n const validationModeRef = useRef(validationMode);\n const disabledRef = useRef(disabled);\n validateRef.current = validate;\n validationModeRef.current = validationMode;\n disabledRef.current = disabled;\n const hasValidator = validate !== undefined;\n\n useEffect(() => {\n if (!hasValidator || disabled) {\n setInternalError(null);\n }\n }, [disabled, hasValidator]);\n\n useEffect(() => {\n if (hasValidator && registeredControlsRef.current.size !== 1) {\n throw new TypeError(\n 'BaseField with validate must contain exactly one compatible Base control.',\n );\n }\n }, [hasValidator]);\n\n const registerControl = useCallback((controlKey: symbol) => {\n const registeredControls = registeredControlsRef.current;\n if (\n validateRef.current !== undefined &&\n !registeredControls.has(controlKey) &&\n registeredControls.size > 0\n ) {\n throw new TypeError(\n 'BaseField with validate supports exactly one compatible Base control. Use BaseFieldset for control groups.',\n );\n }\n registeredControls.add(controlKey);\n return () => {\n registeredControls.delete(controlKey);\n };\n }, []);\n\n const runValidation = useCallback(\n (mode: 'onBlur' | 'onChange', value: BaseFieldControlValue) => {\n const currentValidate = validateRef.current;\n if (\n disabledRef.current ||\n currentValidate === undefined ||\n validationModeRef.current !== mode\n ) {\n return;\n }\n\n const result = resolveBaseFieldValidationResult(currentValidate(value));\n if (result === null) {\n setInternalError(null);\n return;\n }\n setInternalError(result);\n },\n [],\n );\n\n const notifyBlur = useCallback(\n (value: BaseFieldControlValue) => runValidation('onBlur', value),\n [runValidation],\n );\n const notifyChange = useCallback(\n (value: BaseFieldControlValue) => runValidation('onChange', value),\n [runValidation],\n );\n\n const hasExternalError = hasRenderableNode(error);\n const resolvedError = hasExternalError ? error : internalError;\n const hasError = hasRenderableNode(resolvedError);\n const hasMessage = !hasError && hasRenderableNode(message);\n const resolvedMessage = hasError ? resolvedError : message;\n const resolvedControlId = htmlFor ?? `${generatedId}-control`;\n const resolvedDescriptionId = hasDescription\n ? resolveOptionalId(\n descriptionId,\n `${generatedId}-description`,\n 'descriptionId',\n )\n : undefined;\n const resolvedMessageId = hasMessage\n ? resolveOptionalId(messageId, `${generatedId}-message`, 'messageId')\n : undefined;\n const resolvedErrorId = hasError\n ? resolveOptionalId(errorId, `${generatedId}-error`, 'errorId')\n : undefined;\n const controlProps: BaseFieldControlProps = {\n id: resolvedControlId,\n 'aria-describedby': mergeAriaIds(\n resolvedDescriptionId,\n resolvedMessageId,\n ),\n 'aria-errormessage': resolvedErrorId,\n 'aria-invalid': hasError ? true : undefined,\n 'aria-required': required ? true : undefined,\n required: required || undefined,\n disabled: disabled || undefined,\n };\n const renderedChildren =\n typeof children === 'function' ? children(controlProps) : children;\n const fieldContextValue = useMemo(\n () => ({\n invalid: hasError,\n registerControl,\n notifyBlur,\n notifyChange,\n }),\n [hasError, notifyBlur, notifyChange, registerControl],\n );\n\n return (\n <div\n {...componentAttributes}\n {...fieldProps}\n ref={ref}\n aria-disabled={disabled || undefined}\n data-monkeys-component=\"field\"\n data-slot=\"root\"\n data-required={required || undefined}\n data-disabled={disabled || undefined}\n data-invalid={hasError || undefined}\n className={cn(\n theme.slots.fieldRoot,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.field,\n ...style,\n }}\n >\n {hasRenderableNode(label) ? (\n <div\n data-slot=\"label-row\"\n className={cn(theme.slots.fieldLabelRow, classNames?.labelRow)}\n >\n <label\n htmlFor={typeof children === 'function' ? resolvedControlId : htmlFor}\n data-slot=\"label\"\n className={cn(theme.slots.fieldLabel, classNames?.label)}\n >\n {label}\n {required ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"required-indicator\"\n className={cn(\n theme.slots.fieldRequired,\n classNames?.required,\n )}\n >\n {' '}\n *\n </span>\n ) : null}\n </label>\n </div>\n ) : null}\n\n {hasDescription ? (\n <div\n id={resolvedDescriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.fieldDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n\n {hasRenderableNode(renderedChildren) ? (\n <div\n data-slot=\"control\"\n className={cn(theme.slots.fieldControl, classNames?.control)}\n style={theme.styles.fieldControl}\n >\n <BaseFieldContext.Provider value={fieldContextValue}>\n {renderedChildren}\n </BaseFieldContext.Provider>\n </div>\n ) : null}\n\n {hasRenderableNode(resolvedMessage) ? (\n <div\n id={hasError ? resolvedErrorId : resolvedMessageId}\n role={hasError ? 'alert' : undefined}\n data-slot={hasError ? 'error' : 'message'}\n className={cn(\n theme.slots.fieldMessage,\n hasError && 'text-destructive-text',\n classNames?.message,\n )}\n >\n {resolvedMessage}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseFieldsetProps } from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction mergeAriaIds(...values: Array<string | undefined>) {\n const ids = values.flatMap(\n (value) => value?.split(/\\s+/).filter(Boolean) ?? [],\n );\n return ids.length ? Array.from(new Set(ids)).join(' ') : undefined;\n}\n\nfunction resolveOptionalId(\n value: string | undefined,\n fallback: string,\n name: string,\n) {\n if (value === undefined) return fallback;\n if (!value.trim() || /\\s/.test(value)) {\n throw new TypeError(\n `BaseFieldset ${name} must be a non-empty ID without whitespace.`,\n );\n }\n return value;\n}\n\nexport const BaseFieldset = forwardRef<HTMLFieldSetElement, BaseFieldsetProps>(\n function BaseFieldset(\n {\n children,\n legend,\n description,\n descriptionId,\n error,\n errorId,\n disabled,\n appearance,\n className,\n classNames,\n style,\n 'aria-describedby': ariaDescribedBy,\n 'aria-errormessage': ariaErrorMessage,\n ...fieldsetProps\n },\n ref,\n ) {\n const generatedId = useId();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (\n !hasRenderableNode(legend) ||\n (typeof legend === 'string' && !legend.trim())\n ) {\n throw new TypeError('BaseFieldset legend must contain an accessible name.');\n }\n if (disabled !== undefined && typeof disabled !== 'boolean') {\n throw new TypeError('BaseFieldset disabled must be a boolean.');\n }\n\n const hasDescription = hasRenderableNode(description);\n const hasError = hasRenderableNode(error);\n const resolvedDescriptionId = hasDescription\n ? resolveOptionalId(\n descriptionId,\n `${generatedId}-description`,\n 'descriptionId',\n )\n : undefined;\n const resolvedErrorId = hasError\n ? resolveOptionalId(errorId, `${generatedId}-error`, 'errorId')\n : undefined;\n return (\n <fieldset\n {...componentAttributes}\n {...fieldsetProps}\n ref={ref}\n disabled={disabled}\n aria-describedby={mergeAriaIds(ariaDescribedBy, resolvedDescriptionId)}\n aria-errormessage={mergeAriaIds(ariaErrorMessage, resolvedErrorId)}\n data-monkeys-component=\"fieldset\"\n data-slot=\"root\"\n className={cn(theme.slots.fieldsetRoot, classNames?.root, className)}\n style={{\n ...theme.styles.fieldset,\n ...style,\n }}\n >\n <legend\n data-slot=\"legend\"\n className={cn(theme.slots.fieldsetLegend, classNames?.legend)}\n style={theme.styles.fieldsetLegend}\n >\n {legend}\n </legend>\n {hasDescription ? (\n <div\n id={resolvedDescriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.fieldsetDescription,\n classNames?.description,\n )}\n style={theme.styles.fieldsetDescription}\n >\n {description}\n </div>\n ) : null}\n {hasError ? (\n <div\n id={resolvedErrorId}\n data-slot=\"error\"\n className={cn(theme.slots.fieldsetError, classNames?.error)}\n style={theme.styles.fieldsetError}\n >\n {error}\n </div>\n ) : null}\n <div\n data-slot=\"content\"\n className={cn(theme.slots.fieldsetContent, classNames?.content)}\n style={theme.styles.fieldsetContent}\n >\n {children}\n </div>\n </fieldset>\n );\n },\n);\n","import { createElement, forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseHeadingSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseHeadingLevel, BaseHeadingProps } from './types';\nimport { cn } from './utils';\n\nfunction isHeadingLevel(value: unknown): value is BaseHeadingLevel {\n return (\n typeof value === 'number' &&\n Number.isInteger(value) &&\n value >= 1 &&\n value <= 6\n );\n}\n\nexport const BaseHeading = forwardRef<HTMLHeadingElement, BaseHeadingProps>(\n function BaseHeading(\n {\n level = 2,\n children,\n size = 'lg',\n tone = 'default',\n appearance,\n className,\n classNames,\n style,\n ...headingProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (!isHeadingLevel(level)) {\n throw new RangeError('BaseHeading level must be an integer from 1 to 6.');\n }\n\n return createElement(\n `h${level}`,\n {\n ...componentAttributes,\n ...headingProps,\n ref,\n 'data-monkeys-component': 'heading',\n 'data-slot': 'root',\n 'data-level': level,\n 'data-size': size,\n 'data-tone': tone,\n className: cn(\n theme.slots.headingRoot,\n getBaseHeadingSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.heading,\n ...style,\n },\n },\n children,\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseGridColumns,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseGridProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseGrid = forwardRef<HTMLDivElement, BaseGridProps>(\n function BaseGrid(\n {\n children,\n columns = 1,\n gap,\n align = 'stretch',\n justify = 'start',\n appearance,\n className,\n classNames,\n style,\n ...gridProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseGrid', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...gridProps}\n ref={ref}\n data-monkeys-component=\"grid\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n data-columns={columns}\n className={cn(theme.slots.gridRoot, classNames?.root, className)}\n style={{\n ...theme.styles.grid,\n gridTemplateColumns: resolveBaseGridColumns(columns),\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseGrid', align),\n justifyContent: resolveBaseLayoutJustify('BaseGrid', justify),\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseInputProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst controlSizeClassNames = {\n sm: 'h-8 px-2.5 text-xs',\n md: 'h-9 px-3 text-sm',\n lg: 'h-10 px-3.5 text-base',\n} as const;\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n function BaseInput(\n {\n icon,\n trailing,\n invalid = false,\n disabled = false,\n readOnly = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n onBlur,\n onChange,\n ...inputProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseInput ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError('BaseInput controlSize must be \"sm\", \"md\", or \"lg\".');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"input\"\n data-slot=\"root\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span\n data-slot=\"icon\"\n className={cn(theme.slots.controlIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : null}\n <input\n {...inputProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n data-slot=\"control\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n controlSize && controlSizeClassNames[controlSize],\n classNames?.control,\n )}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n }}\n onChange={(event) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n }}\n />\n {hasRenderableNode(trailing) ? (\n <span\n data-slot=\"trailing\"\n className={cn(theme.slots.controlTrailing, classNames?.trailing)}\n >\n {trailing}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseInputGroupProps } from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseInputGroup = forwardRef<\n HTMLDivElement,\n BaseInputGroupProps\n>(function BaseInputGroup(\n {\n children,\n startElement,\n endElement,\n startAddon,\n endAddon,\n invalid = false,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n ...groupProps\n },\n ref,\n) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseInputGroup ${name} must be a boolean.`);\n }\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...groupProps}\n ref={ref}\n data-monkeys-component=\"input-group\"\n data-slot=\"root\"\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.inputGroupRoot,\n invalid && theme.slots.inputGroupInvalid,\n disabled && theme.slots.inputGroupDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.inputGroup,\n ...(invalid ? theme.styles.inputGroupInvalid : undefined),\n ...(disabled ? theme.styles.inputGroupDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(startAddon) ? (\n <span\n data-slot=\"start-addon\"\n data-placement=\"start\"\n className={cn(\n theme.slots.inputGroupStartAddon,\n classNames?.startAddon,\n )}\n style={theme.styles.inputGroupAddon}\n >\n {startAddon}\n </span>\n ) : null}\n {hasRenderableNode(startElement) ? (\n <span\n data-slot=\"start-element\"\n data-placement=\"start\"\n className={cn(\n theme.slots.inputGroupStartElement,\n classNames?.startElement,\n )}\n style={theme.styles.inputGroupElement}\n >\n {startElement}\n </span>\n ) : null}\n <div\n data-slot=\"content\"\n className={cn(\n theme.slots.inputGroupContent,\n classNames?.content,\n )}\n style={theme.styles.inputGroupContent}\n >\n {children}\n </div>\n {hasRenderableNode(endElement) ? (\n <span\n data-slot=\"end-element\"\n data-placement=\"end\"\n className={cn(\n theme.slots.inputGroupEndElement,\n classNames?.endElement,\n )}\n style={theme.styles.inputGroupElement}\n >\n {endElement}\n </span>\n ) : null}\n {hasRenderableNode(endAddon) ? (\n <span\n data-slot=\"end-addon\"\n data-placement=\"end\"\n className={cn(\n theme.slots.inputGroupEndAddon,\n classNames?.endAddon,\n )}\n style={theme.styles.inputGroupAddon}\n >\n {endAddon}\n </span>\n ) : null}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseInlineProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseInline = forwardRef<HTMLDivElement, BaseInlineProps>(\n function BaseInline(\n {\n children,\n gap,\n align = 'center',\n justify = 'start',\n wrap = true,\n appearance,\n className,\n classNames,\n style,\n ...inlineProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n if (typeof wrap !== 'boolean') {\n throw new TypeError('BaseInline wrap must be a boolean.');\n }\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseInline', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...inlineProps}\n ref={ref}\n data-monkeys-component=\"inline\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n data-wrap={wrap ? 'wrap' : 'nowrap'}\n className={cn(theme.slots.inlineRoot, classNames?.root, className)}\n style={{\n ...theme.styles.inline,\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseInline', align),\n justifyContent: resolveBaseLayoutJustify('BaseInline', justify),\n flexWrap: wrap ? 'wrap' : 'nowrap',\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseKbdProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseKbd = forwardRef<HTMLElement, BaseKbdProps>(function BaseKbd(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...kbdProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <kbd\n {...componentAttributes}\n {...kbdProps}\n ref={ref}\n data-monkeys-component=\"kbd\"\n data-slot=\"root\"\n className={cn(theme.slots.kbdRoot, classNames?.root, className)}\n style={{\n ...theme.styles.kbd,\n ...style,\n }}\n >\n {children}\n </kbd>\n );\n});\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type ElementType,\n type ForwardedRef,\n type KeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type {\n BaseLayoutPaneProps,\n BaseLayoutProps,\n BaseLayoutResizeHandleProps,\n BaseLayoutSplitProps,\n BaseLayoutOrientation,\n} from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DEFAULT_SPLIT_SIZE = 50;\nconst DEFAULT_MIN_SIZE = 20;\nconst DEFAULT_MAX_SIZE = 80;\nconst DEFAULT_KEYBOARD_STEP = 2.5;\n\ntype CssVariableStyle = CSSProperties & Record<`--${string}`, string>;\n\nfunction assignRef<T>(ref: ForwardedRef<T>, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction assertBoolean(name: string, value: boolean) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseLayout ${name} must be a boolean.`);\n }\n}\n\nfunction assertOrientation(orientation: BaseLayoutOrientation) {\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseLayout orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n}\n\nfunction toCssSize(value: number | string | undefined, fallback: string) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error('BaseLayout size and gap props must be finite, non-negative numbers.');\n }\n return `${value}px`;\n }\n if (typeof value === 'string') {\n if (value.trim().length === 0) {\n throw new TypeError('BaseLayout size and gap string props must not be empty.');\n }\n return value;\n }\n return fallback;\n}\n\nfunction assertPercent(name: string, value: number) {\n if (!Number.isFinite(value)) {\n throw new Error(`BaseLayoutSplit ${name} must be a finite number.`);\n }\n if (value < 0 || value > 100) {\n throw new Error(`BaseLayoutSplit ${name} must be between 0 and 100.`);\n }\n return value;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolveSplitBounds({\n minSize = DEFAULT_MIN_SIZE,\n maxSize = DEFAULT_MAX_SIZE,\n keyboardStep = DEFAULT_KEYBOARD_STEP,\n}: Pick<BaseLayoutSplitProps, 'minSize' | 'maxSize' | 'keyboardStep'>) {\n const min = assertPercent('minSize', minSize);\n const max = assertPercent('maxSize', maxSize);\n if (min > max) {\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\n }\n if (!Number.isFinite(keyboardStep) || keyboardStep <= 0) {\n throw new Error('BaseLayoutSplit keyboardStep must be a finite positive number.');\n }\n return { min, max, keyboardStep };\n}\n\nfunction resolveSplitSize(\n name: string,\n value: number | undefined,\n fallback: number,\n min: number,\n max: number,\n) {\n return clamp(assertPercent(name, value ?? fallback), min, max);\n}\n\nfunction getSeparatorOrientation(orientation: BaseLayoutOrientation) {\n return orientation === 'horizontal' ? 'vertical' : 'horizontal';\n}\n\nfunction isRtl(element: HTMLElement) {\n const ownerWindow = element.ownerDocument.defaultView;\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element).direction === 'rtl';\n }\n return element.closest('[dir=\"rtl\"]') !== null;\n}\n\nfunction setPointerCaptureIfAvailable(target: HTMLElement, pointerId: number) {\n if (!target.setPointerCapture) return;\n try {\n target.setPointerCapture(pointerId);\n } catch (error) {\n const OwnerDOMException = target.ownerDocument.defaultView?.DOMException;\n if (\n OwnerDOMException &&\n error instanceof OwnerDOMException &&\n error.name === 'NotFoundError'\n ) {\n // Synthetic pointer events may not register an active platform pointer.\n // Document listeners below preserve the drag contract in that environment.\n return;\n }\n throw error;\n }\n}\n\nexport const BaseLayout = forwardRef<HTMLDivElement, BaseLayoutProps>(\n function BaseLayout(\n {\n header,\n sidebar,\n aside,\n sidebarLabel,\n asideLabel,\n footer,\n children,\n sidebarSize,\n asideSize,\n gap,\n fullHeight = false,\n appearance,\n className,\n classNames,\n style,\n ...layoutProps\n },\n ref,\n ) {\n assertBoolean('fullHeight', fullHeight);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasHeader = hasRenderableNode(header);\n const hasSidebar = hasRenderableNode(sidebar);\n const hasAside = hasRenderableNode(aside);\n const hasFooter = hasRenderableNode(footer);\n const bodyColumns = [\n hasSidebar ? 'var(--base-layout-sidebar-size)' : undefined,\n 'minmax(0, 1fr)',\n hasAside ? 'var(--base-layout-aside-size)' : undefined,\n ]\n .filter(Boolean)\n .join(' ');\n const layoutRows = [\n hasHeader ? 'auto' : undefined,\n 'minmax(0, 1fr)',\n hasFooter ? 'auto' : undefined,\n ]\n .filter(Boolean)\n .join(' ');\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n\n const layoutStyle: CssVariableStyle = {\n ...theme.styles.layout,\n '--base-layout-sidebar-size': toCssSize(sidebarSize, '16rem'),\n '--base-layout-aside-size': toCssSize(asideSize, '20rem'),\n gridTemplateRows: layoutRows,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...style,\n };\n const bodyStyle: CSSProperties = {\n ...theme.styles.layoutBody,\n gridTemplateColumns: bodyColumns,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n };\n\n return (\n <div\n {...componentAttributes}\n {...layoutProps}\n ref={ref}\n data-monkeys-component=\"layout\"\n data-slot=\"root\"\n data-full-height={fullHeight ? 'true' : 'false'}\n className={cn(\n theme.slots.layoutRoot,\n fullHeight && theme.slots.layoutRootFull,\n classNames?.root,\n className,\n )}\n style={layoutStyle}\n >\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.layoutHeader, classNames?.header)}\n style={theme.styles.layoutHeader}\n >\n {header}\n </div>\n ) : null}\n\n <div\n data-slot=\"body\"\n className={cn(theme.slots.layoutBody, classNames?.body)}\n style={bodyStyle}\n >\n {hasSidebar ? (\n <aside\n aria-label={sidebarLabel}\n data-slot=\"sidebar\"\n className={cn(theme.slots.layoutSidebar, classNames?.sidebar)}\n style={theme.styles.layoutSidebar}\n >\n {sidebar}\n </aside>\n ) : null}\n\n <main\n data-slot=\"main\"\n className={cn(theme.slots.layoutMain, classNames?.main)}\n style={theme.styles.layoutMain}\n >\n {children}\n </main>\n\n {hasAside ? (\n <aside\n aria-label={asideLabel}\n data-slot=\"aside\"\n className={cn(theme.slots.layoutAside, classNames?.aside)}\n style={theme.styles.layoutAside}\n >\n {aside}\n </aside>\n ) : null}\n </div>\n\n {hasFooter ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.layoutFooter, classNames?.footer)}\n style={theme.styles.layoutFooter}\n >\n {footer}\n </div>\n ) : null}\n </div>\n );\n },\n);\n\nexport const BaseLayoutPane = forwardRef<HTMLElement, BaseLayoutPaneProps>(\n function BaseLayoutPane(\n {\n as = 'div',\n scrollable = false,\n bordered = true,\n surface = 'default',\n children,\n appearance,\n className,\n classNames,\n style,\n ...paneProps\n },\n ref,\n ) {\n assertBoolean('scrollable', scrollable);\n assertBoolean('bordered', bordered);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const Component = as as ElementType;\n\n return (\n <Component\n {...componentAttributes}\n {...paneProps}\n ref={ref}\n data-monkeys-component=\"layout-pane\"\n data-slot=\"root\"\n data-scrollable={scrollable ? 'true' : 'false'}\n data-surface={surface}\n className={cn(\n theme.slots.layoutPane,\n scrollable && theme.slots.layoutPaneScrollable,\n bordered && theme.slots.layoutPaneBordered,\n surface === 'muted' && theme.slots.layoutPaneMuted,\n surface === 'soft' && theme.slots.layoutPaneSoft,\n surface === 'transparent' && theme.slots.layoutPaneTransparent,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutPane,\n ...style,\n }}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport const BaseLayoutResizeHandle = forwardRef<\n HTMLDivElement,\n BaseLayoutResizeHandleProps\n>(function BaseLayoutResizeHandle(\n {\n orientation = 'horizontal',\n resizable = false,\n disabled = false,\n size,\n minSize,\n maxSize,\n label,\n appearance,\n className,\n classNames,\n style,\n tabIndex,\n ...handleProps\n },\n ref,\n) {\n assertOrientation(orientation);\n assertBoolean('resizable', resizable);\n assertBoolean('disabled', disabled);\n const resolvedMin = minSize === undefined ? undefined : assertPercent('minSize', minSize);\n const resolvedMax = maxSize === undefined ? undefined : assertPercent('maxSize', maxSize);\n if (\n resolvedMin !== undefined &&\n resolvedMax !== undefined &&\n resolvedMin > resolvedMax\n ) {\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\n }\n const resolvedSize =\n size === undefined\n ? undefined\n : clamp(\n assertPercent('size', size),\n resolvedMin ?? 0,\n resolvedMax ?? 100,\n );\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const messages = useMonkeysLocaleMessages().layout;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedLabel = label ?? messages.resizePanels;\n if (\n resizable &&\n (typeof resolvedLabel !== 'string' || resolvedLabel.trim().length === 0)\n ) {\n throw new TypeError('BaseLayoutResizeHandle label must be a non-empty string.');\n }\n const interactive = resizable && !disabled;\n const separatorOrientation = getSeparatorOrientation(orientation);\n\n return (\n <div\n {...componentAttributes}\n {...handleProps}\n ref={ref}\n data-monkeys-component=\"layout-resize-handle\"\n data-slot=\"handle\"\n data-orientation={orientation}\n data-state={interactive ? 'enabled' : disabled ? 'disabled' : 'static'}\n role={resizable ? 'separator' : undefined}\n aria-label={resizable ? resolvedLabel : undefined}\n aria-orientation={resizable ? separatorOrientation : undefined}\n aria-valuemin={resizable ? resolvedMin : undefined}\n aria-valuemax={resizable ? resolvedMax : undefined}\n aria-valuenow={resizable ? resolvedSize : undefined}\n aria-disabled={resizable && disabled ? true : undefined}\n tabIndex={interactive ? tabIndex ?? 0 : undefined}\n className={cn(\n theme.slots.layoutResizeHandle,\n orientation === 'horizontal'\n ? theme.slots.layoutResizeHandleHorizontal\n : theme.slots.layoutResizeHandleVertical,\n !interactive && theme.slots.layoutResizeHandleDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutResizeHandle,\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(\n theme.slots.layoutResizeHandleIndicator,\n orientation === 'horizontal' ? 'h-8 w-px' : 'h-px w-8',\n classNames?.indicator,\n )}\n />\n </div>\n );\n});\n\nexport const BaseLayoutSplit = forwardRef<HTMLDivElement, BaseLayoutSplitProps>(\n function BaseLayoutSplit(\n {\n orientation = 'horizontal',\n primary,\n secondary,\n children,\n resizable = false,\n disabled = false,\n size,\n defaultSize,\n minSize,\n maxSize,\n gap,\n keyboardStep,\n resizeLabel,\n appearance,\n className,\n classNames,\n style,\n onSizeChange,\n ...splitProps\n },\n ref,\n ) {\n assertOrientation(orientation);\n assertBoolean('resizable', resizable);\n assertBoolean('disabled', disabled);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const bounds = resolveSplitBounds({ minSize, maxSize, keyboardStep });\n const initialSize = resolveSplitSize(\n 'defaultSize',\n defaultSize,\n DEFAULT_SPLIT_SIZE,\n bounds.min,\n bounds.max,\n );\n const [uncontrolledSize, setUncontrolledSize] = useState(initialSize);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const cleanupRef = useRef<(() => void) | null>(null);\n const controlled = size !== undefined;\n const interactive = resizable && !disabled;\n const renderedSize = resolveSplitSize(\n 'size',\n controlled ? size : uncontrolledSize,\n initialSize,\n bounds.min,\n bounds.max,\n );\n const resolvedDirection = splitProps.dir ?? componentAttributes.dir;\n\n const setRootRef = useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n assignRef(ref, node);\n },\n [ref],\n );\n\n const commitSize = useCallback(\n (nextSize: number) => {\n const clampedSize = clamp(nextSize, bounds.min, bounds.max);\n if (!controlled) {\n setUncontrolledSize(clampedSize);\n }\n onSizeChange?.(clampedSize);\n },\n [bounds.max, bounds.min, controlled, onSizeChange],\n );\n\n const updateFromPointer = useCallback(\n (event: Pick<PointerEvent, 'clientX' | 'clientY'>) => {\n const root = rootRef.current;\n if (!root) return;\n const rect = root.getBoundingClientRect();\n const total = orientation === 'horizontal' ? rect.width : rect.height;\n if (!Number.isFinite(total) || total <= 0) return;\n const offset =\n orientation === 'horizontal'\n ? isRtl(root)\n ? rect.right - event.clientX\n : event.clientX - rect.left\n : event.clientY - rect.top;\n commitSize((offset / total) * 100);\n },\n [commitSize, orientation],\n );\n\n const stopResize = useCallback(() => {\n const cleanup = cleanupRef.current;\n cleanupRef.current = null;\n cleanup?.();\n }, []);\n\n useEffect(() => {\n if (!interactive) stopResize();\n return stopResize;\n }, [interactive, stopResize]);\n\n const handlePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!interactive || (event.button !== 0 && event.pointerType !== 'touch')) {\n return;\n }\n event.preventDefault();\n stopResize();\n updateFromPointer(event);\n\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n const ownerDocument = target.ownerDocument;\n\n const handleMove = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n updateFromPointer(nextEvent);\n };\n const handleStop = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n stopResize();\n };\n const handleLostCapture = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n stopResize();\n };\n\n ownerDocument.addEventListener('pointermove', handleMove);\n ownerDocument.addEventListener('pointerup', handleStop);\n ownerDocument.addEventListener('pointercancel', handleStop);\n target.addEventListener('lostpointercapture', handleLostCapture);\n cleanupRef.current = () => {\n ownerDocument.removeEventListener('pointermove', handleMove);\n ownerDocument.removeEventListener('pointerup', handleStop);\n ownerDocument.removeEventListener('pointercancel', handleStop);\n target.removeEventListener('lostpointercapture', handleLostCapture);\n if (target.hasPointerCapture?.(pointerId)) {\n target.releasePointerCapture?.(pointerId);\n }\n };\n setPointerCaptureIfAvailable(target, pointerId);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!interactive) return;\n const step = event.shiftKey ? bounds.keyboardStep * 4 : bounds.keyboardStep;\n const rtl = orientation === 'horizontal' && isRtl(event.currentTarget);\n let nextSize: number | undefined;\n\n if (event.key === 'Home') nextSize = bounds.min;\n if (event.key === 'End') nextSize = bounds.max;\n if (orientation === 'horizontal' && event.key === 'ArrowLeft') {\n nextSize = renderedSize + (rtl ? step : -step);\n }\n if (orientation === 'horizontal' && event.key === 'ArrowRight') {\n nextSize = renderedSize + (rtl ? -step : step);\n }\n if (orientation === 'vertical' && event.key === 'ArrowUp') {\n nextSize = renderedSize - step;\n }\n if (orientation === 'vertical' && event.key === 'ArrowDown') {\n nextSize = renderedSize + step;\n }\n\n if (nextSize === undefined) return;\n event.preventDefault();\n commitSize(nextSize);\n };\n\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n const resizeTrack =\n resolvedGap !== undefined ? 'var(--base-layout-split-gap)' : 'auto';\n const resizeHandleStyle: CSSProperties | undefined =\n resolvedGap !== undefined\n ? orientation === 'horizontal'\n ? { width: 'var(--base-layout-split-gap)' }\n : { height: 'var(--base-layout-split-gap)' }\n : undefined;\n const splitStyle: CssVariableStyle = {\n ...theme.styles.layoutSplit,\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']:\n resizable\n ? `${renderedSize}% ${resizeTrack} minmax(0, 1fr)`\n : `${renderedSize}% minmax(0, 1fr)`,\n ...(resizable ? { gap: 0 } : {}),\n ...(resolvedGap !== undefined\n ? {\n '--base-layout-split-gap': resolvedGap,\n ...(resizable ? {} : { gap: resolvedGap }),\n }\n : {}),\n ...style,\n };\n\n return (\n <div\n {...componentAttributes}\n {...splitProps}\n ref={setRootRef}\n data-monkeys-component=\"layout-split\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state={interactive ? 'enabled' : disabled ? 'disabled' : 'static'}\n data-controlled={controlled ? 'true' : 'false'}\n className={cn(\n theme.slots.layoutSplitRoot,\n orientation === 'horizontal'\n ? theme.slots.layoutSplitHorizontal\n : theme.slots.layoutSplitVertical,\n classNames?.root,\n className,\n )}\n style={splitStyle}\n >\n <div\n data-slot=\"primary\"\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitPrimary,\n classNames?.primary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {hasRenderableNode(primary) ? primary : children}\n </div>\n\n {resizable ? (\n <BaseLayoutResizeHandle\n orientation={orientation}\n resizable\n disabled={disabled}\n size={renderedSize}\n minSize={bounds.min}\n maxSize={bounds.max}\n label={resizeLabel}\n appearance={appearance}\n dir={resolvedDirection}\n className={classNames?.handle}\n style={resizeHandleStyle}\n onPointerDown={handlePointerDown}\n onKeyDown={handleKeyDown}\n />\n ) : null}\n\n <div\n data-slot=\"secondary\"\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitSecondary,\n classNames?.secondary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {secondary}\n </div>\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BaseLoadingStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultLoadingIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className={className}\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseLoadingState = forwardRef<\n HTMLDivElement,\n BaseLoadingStateProps\n>(function BaseLoadingState(\n {\n icon,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n role = 'status',\n 'aria-live': ariaLive = 'polite',\n 'aria-busy': ariaBusy = true,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...stateProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const loadingMessages = useMonkeysLocaleMessages().loading;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedIcon =\n icon === undefined ? (\n <DefaultLoadingIcon className={theme.slots.loadingSpinner} />\n ) : (\n icon\n );\n const resolvedAriaLabel =\n nativeAriaLabel ??\n (nativeAriaLabelledBy === undefined ? loadingMessages.spinner : undefined);\n\n return (\n <div\n {...componentAttributes}\n {...stateProps}\n ref={ref}\n role={role}\n aria-live={ariaLive}\n aria-busy={ariaBusy}\n aria-label={resolvedAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n data-monkeys-component=\"loading-state\"\n data-slot=\"root\"\n data-state=\"loading\"\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n {hasRenderableNode(resolvedIcon) ? (\n <div\n data-slot=\"icon\"\n data-state=\"loading\"\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {resolvedIcon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n data-state=\"loading\"\n className={cn(theme.slots.stateTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n data-state=\"loading\"\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div\n data-slot=\"actions\"\n data-state=\"loading\"\n className={cn(theme.slots.stateActions, classNames?.actions)}\n >\n {actions}\n </div>\n ) : null}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseTextSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseLinkProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseLink = forwardRef<HTMLAnchorElement, BaseLinkProps>(\n function BaseLink(\n {\n children,\n size = 'md',\n tone = 'primary',\n appearance,\n className,\n classNames,\n style,\n ...linkProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <a\n {...componentAttributes}\n {...linkProps}\n ref={ref}\n data-monkeys-component=\"link\"\n data-slot=\"root\"\n data-size={size}\n data-tone={tone}\n className={cn(\n theme.slots.linkRoot,\n getBaseTextSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.link,\n ...style,\n }}\n >\n {children}\n </a>\n );\n },\n);\n","import { forwardRef, type Ref } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseListMarkerClassName,\n getBaseListSpacingClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseListItemProps, BaseListProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseList = forwardRef<\n HTMLOListElement | HTMLUListElement,\n BaseListProps\n>(function BaseList(\n {\n ordered = false,\n marker = 'auto',\n spacing = 'default',\n children,\n appearance,\n className,\n classNames,\n style,\n ...listProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const sharedProps = {\n ...componentAttributes,\n ...listProps,\n 'data-monkeys-component': 'list',\n 'data-slot': 'root',\n 'data-list-type': ordered ? 'ordered' : 'unordered',\n 'data-marker': marker,\n 'data-spacing': spacing,\n className: cn(\n theme.slots.listRoot,\n getBaseListSpacingClassName(theme, spacing),\n marker !== 'auto' && getBaseListMarkerClassName(theme, marker),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.list,\n ...style,\n },\n children,\n };\n\n return ordered ? (\n <ol {...sharedProps} ref={ref as Ref<HTMLOListElement>} />\n ) : (\n <ul {...sharedProps} ref={ref as Ref<HTMLUListElement>} />\n );\n});\n\nexport const BaseListItem = forwardRef<HTMLLIElement, BaseListItemProps>(\n function BaseListItem(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...itemProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <li\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n data-monkeys-component=\"list-item\"\n data-slot=\"item\"\n className={cn(theme.slots.listItem, classNames?.root, className)}\n style={{\n ...theme.styles.listItem,\n ...style,\n }}\n >\n {children}\n </li>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BaseMultiSelectOption, BaseMultiSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst typeaheadResetDelay = 500;\n\nfunction validateMultiSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n required,\n openForPreview,\n maxTagCount,\n}: Pick<\n BaseMultiSelectProps,\n | 'defaultValue'\n | 'disabled'\n | 'invalid'\n | 'maxTagCount'\n | 'openForPreview'\n | 'options'\n | 'required'\n | 'value'\n>) {\n for (const [name, state] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['required', required],\n ['openForPreview', openForPreview],\n ] as const) {\n if (typeof state !== 'boolean') {\n throw new TypeError(`BaseMultiSelect ${name} must be a boolean.`);\n }\n }\n if (maxTagCount !== undefined && typeof maxTagCount !== 'number') {\n throw new TypeError('BaseMultiSelect maxTagCount must be a number.');\n }\n if (options !== undefined && !Array.isArray(options)) {\n throw new TypeError('BaseMultiSelect options must be an array.');\n }\n options?.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(\n `BaseMultiSelect option at index ${index} must be an object.`,\n );\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseMultiSelect option value at index ${index} must be a string.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseMultiSelect option disabled at index ${index} must be a boolean.`,\n );\n }\n if (\n option.textValue !== undefined &&\n typeof option.textValue !== 'string'\n ) {\n throw new TypeError(\n `BaseMultiSelect option textValue at index ${index} must be a string.`,\n );\n }\n });\n\n for (const [name, values] of [\n ['value', value],\n ['defaultValue', defaultValue],\n ] as const) {\n if (values !== undefined && !Array.isArray(values)) {\n throw new TypeError(`BaseMultiSelect ${name} must be an array.`);\n }\n values?.forEach((item, index) => {\n if (typeof item !== 'string') {\n throw new TypeError(\n `BaseMultiSelect ${name} item at index ${index} must be a string.`,\n );\n }\n });\n }\n}\n\nfunction normalizeValues(values: readonly string[] | undefined) {\n const nextValues: string[] = [];\n const seen = new Set<string>();\n\n values?.forEach((value) => {\n if (seen.has(value)) return;\n seen.add(value);\n nextValues.push(value);\n });\n\n return nextValues;\n}\n\nfunction getNextEnabledIndex(\n options: BaseMultiSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n const startIndex = currentIndex >= 0 ? currentIndex : direction === 1 ? -1 : 0;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) return nextIndex;\n }\n\n return -1;\n}\n\nfunction getBoundaryEnabledIndex(\n options: BaseMultiSelectOption[],\n boundary: 'first' | 'last',\n) {\n if (boundary === 'first') {\n return options.findIndex((option) => !option.disabled);\n }\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) return index;\n }\n return -1;\n}\n\nfunction getSafeTagCount(maxTagCount: number | undefined, total: number) {\n if (maxTagCount === undefined || !Number.isFinite(maxTagCount)) return total;\n return Math.max(0, Math.min(total, Math.floor(maxTagCount)));\n}\n\nfunction getOptionText(option: BaseMultiSelectOption) {\n if (option.textValue !== undefined) return option.textValue;\n if (typeof option.label === 'string') return option.label;\n return option.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport const BaseMultiSelect = forwardRef<HTMLDivElement, BaseMultiSelectProps>(\n function BaseMultiSelect(\n {\n options,\n value,\n defaultValue,\n name,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n required = false,\n openForPreview = false,\n maxTagCount,\n removeLabel,\n emptyLabel,\n appearance,\n className,\n classNames,\n style,\n id,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n 'aria-describedby': nativeAriaDescribedBy,\n 'aria-errormessage': nativeAriaErrorMessage,\n onValueChange,\n ...rootProps\n },\n ref,\n ) {\n validateMultiSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n required,\n openForPreview,\n maxTagCount,\n });\n\n const messages = useMonkeysLocaleMessages().multiSelect;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const multiSelectId = id ?? generatedId;\n const controlId = `${multiSelectId}-control`;\n const listboxId = `${multiSelectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n const composingRef = useRef(false);\n const typeaheadBufferRef = useRef('');\n const typeaheadTimerRef = useRef<{\n ownerWindow: Window;\n timerId: number;\n } | null>(null);\n const optionList = options ?? [];\n const optionIds = optionList.map(\n (option, index) =>\n `${multiSelectId}-option-${index}-${toDomId(option.value)}`,\n );\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const initialDefaultValueRef = useRef(normalizeValues(defaultValue));\n const [uncontrolledValue, setUncontrolledValue] = useState(() => [\n ...initialDefaultValueRef.current,\n ]);\n const [activeIndex, setActiveIndex] = useState(() =>\n getBoundaryEnabledIndex(optionList, 'first'),\n );\n const isControlled = value !== undefined;\n const selectedValues = useMemo(\n () => normalizeValues(isControlled ? value : uncontrolledValue),\n [isControlled, uncontrolledValue, value],\n );\n const selectedValueSet = useMemo(\n () => new Set(selectedValues),\n [selectedValues],\n );\n const optionByValue = useMemo(() => {\n const map = new Map<string, BaseMultiSelectOption>();\n optionList.forEach((option) => {\n if (!map.has(option.value)) map.set(option.value, option);\n });\n return map;\n }, [optionList]);\n const selectedOptions = useMemo(\n () =>\n selectedValues\n .map((selectedValue) => optionByValue.get(selectedValue))\n .filter(\n (option): option is BaseMultiSelectOption => option !== undefined,\n ),\n [optionByValue, selectedValues],\n );\n const firstEnabledIndex = getBoundaryEnabledIndex(optionList, 'first');\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : firstEnabledIndex;\n const visibleTagCount = getSafeTagCount(\n maxTagCount,\n selectedOptions.length,\n );\n const visibleOptions = selectedOptions.slice(0, visibleTagCount);\n const overflowCount = selectedOptions.length - visibleOptions.length;\n const isPlaceholder = selectedOptions.length === 0;\n const layerDirection = rootProps.dir ?? componentAttributes.dir;\n const rootState = disabled\n ? 'disabled'\n : invalid\n ? 'invalid'\n : open\n ? 'open'\n : 'closed';\n\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n };\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled || forceOpen) return;\n setUncontrolledOpen(nextOpen);\n if (nextOpen && resolvedActiveIndex < 0) {\n setActiveIndex(firstEnabledIndex);\n }\n };\n\n const commitValues = (nextValues: string[]) => {\n const normalizedValues = normalizeValues(nextValues);\n if (!isControlled) setUncontrolledValue(normalizedValues);\n onValueChange?.(normalizedValues);\n };\n\n const toggleOption = (option: BaseMultiSelectOption | undefined) => {\n if (!option || option.disabled || disabled) return;\n const nextValues = selectedValueSet.has(option.value)\n ? selectedValues.filter((selectedValue) => selectedValue !== option.value)\n : [...selectedValues, option.value];\n commitValues(nextValues);\n };\n\n const removeOption = (option: BaseMultiSelectOption) => {\n if (disabled) return;\n commitValues(\n selectedValues.filter((selectedValue) => selectedValue !== option.value),\n );\n };\n\n const moveActive = (nextIndex: number) => {\n if (nextIndex < 0 || optionList[nextIndex]?.disabled) return;\n setActiveIndex(nextIndex);\n if (!open) setOpen(true);\n };\n\n const handleTypeahead = (\n event: KeyboardEvent<HTMLDivElement>,\n character: string,\n ) => {\n const ownerWindow = event.currentTarget.ownerDocument.defaultView;\n if (!ownerWindow) return;\n const nextBuffer = `${typeaheadBufferRef.current}${character}`.toLocaleLowerCase();\n typeaheadBufferRef.current = nextBuffer;\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n typeaheadTimerRef.current = {\n ownerWindow,\n timerId: ownerWindow.setTimeout(() => {\n typeaheadBufferRef.current = '';\n typeaheadTimerRef.current = null;\n }, typeaheadResetDelay),\n };\n const repeatedCharacter = Array.from(nextBuffer).every(\n (bufferCharacter) => bufferCharacter === nextBuffer[0],\n );\n const query = repeatedCharacter ? character.toLocaleLowerCase() : nextBuffer;\n for (let offset = 1; offset <= optionList.length; offset += 1) {\n const index =\n (resolvedActiveIndex + offset + optionList.length) % optionList.length;\n const option = optionList[index];\n if (\n !option?.disabled &&\n getOptionText(option).trim().toLocaleLowerCase().startsWith(query)\n ) {\n event.preventDefault();\n moveActive(index);\n return;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || composingRef.current || event.nativeEvent.isComposing) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setActiveIndex(firstEnabledIndex);\n setOpen(true);\n } else {\n moveActive(\n getNextEnabledIndex(\n optionList,\n resolvedActiveIndex,\n event.key === 'ArrowDown' ? 1 : -1,\n ),\n );\n }\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n moveActive(\n getBoundaryEnabledIndex(\n optionList,\n event.key === 'Home' ? 'first' : 'last',\n ),\n );\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!open) setOpen(true);\n else toggleOption(optionList[resolvedActiveIndex]);\n return;\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n setOpen(false);\n return;\n }\n\n if (event.key === 'Tab' && open) {\n setOpen(false);\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n !/\\s/.test(event.key)\n ) {\n handleTypeahead(event, event.key);\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n const ownerDocument = rootRef.current?.ownerDocument;\n if (!ownerDocument) return undefined;\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n return () => ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n }, [forceOpen, open]);\n\n useEffect(() => {\n if (isControlled) return undefined;\n const form = rootRef.current?.closest('form');\n if (!form) return undefined;\n const handleReset = () => {\n setUncontrolledValue([...initialDefaultValueRef.current]);\n setActiveIndex(getBoundaryEnabledIndex(optionList, 'first'));\n if (!forceOpen) setUncontrolledOpen(false);\n };\n form.addEventListener('reset', handleReset);\n return () => form.removeEventListener('reset', handleReset);\n }, [forceOpen, isControlled, optionList]);\n\n useEffect(\n () => () => {\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n },\n [],\n );\n\n return (\n <div\n {...componentAttributes}\n {...rootProps}\n id={id}\n ref={setRootRef}\n dir={layerDirection}\n data-monkeys-component=\"multi-select\"\n data-slot=\"root\"\n data-state={rootState}\n data-disabled={disabled || undefined}\n data-invalid={invalid || undefined}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <div\n {...componentAttributes}\n ref={controlRef}\n id={controlId}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n dir={layerDirection}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && resolvedActiveIndex >= 0\n ? optionIds[resolvedActiveIndex]\n : undefined\n }\n aria-autocomplete=\"none\"\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n data-monkeys-component=\"multi-select\"\n data-slot=\"control\"\n data-state={rootState}\n className={cn(\n theme.slots.controlBase,\n 'flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left',\n disabled && '!cursor-not-allowed',\n classNames?.control,\n )}\n onMouseDown={(event) => {\n if (disabled || event.button !== 0) return;\n event.preventDefault();\n controlRef.current?.focus();\n }}\n onClick={() => {\n controlRef.current?.focus();\n setOpen(!open);\n }}\n onBlur={(event) => {\n if (!rootRef.current?.contains(event.relatedTarget)) setOpen(false);\n }}\n onCompositionStart={() => {\n composingRef.current = true;\n }}\n onCompositionEnd={() => {\n composingRef.current = false;\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-list\"\n data-state={isPlaceholder ? 'empty' : 'filled'}\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1.5',\n classNames?.tagList,\n )}\n >\n {visibleOptions.map((option, index) => (\n <span\n key={`${option.value}-${index}`}\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex max-w-full items-center gap-1 rounded-full border border-border/70 bg-muted/65 px-2 py-0.5 text-xs font-medium text-foreground',\n classNames?.tag,\n )}\n >\n <span\n data-slot=\"tag-label\"\n className={cn('max-w-40 truncate', classNames?.tagLabel)}\n >\n {option.label}\n </span>\n <button\n {...componentAttributes}\n type=\"button\"\n tabIndex={-1}\n dir={layerDirection}\n aria-label={\n removeLabel?.(option) ??\n messages.removeOption({ value: option.value })\n }\n disabled={disabled}\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-remove\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-background/80 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed',\n classNames?.tagRemove,\n )}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n removeOption(option);\n controlRef.current?.focus();\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <span aria-hidden=\"true\">x</span>\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-overflow\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex max-w-full items-center rounded-full border border-border/70 bg-muted/45 px-2 py-0.5 text-xs font-medium text-muted-foreground',\n classNames?.tag,\n )}\n >\n +{overflowCount}\n </span>\n ) : null}\n {isPlaceholder ? (\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"placeholder\"\n data-state=\"empty\"\n className={cn(\n 'min-w-0 truncate',\n theme.slots.selectPlaceholder,\n classNames?.placeholder,\n )}\n >\n {placeholder === undefined ? messages.placeholder : placeholder}\n </span>\n ) : null}\n </span>\n </div>\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"chevron\"\n data-state={open ? 'open' : 'closed'}\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n classNames?.chevron,\n )}\n />\n {name\n ? selectedValues.map((selectedValue) => (\n <input\n {...componentAttributes}\n key={selectedValue}\n type=\"hidden\"\n name={name}\n value={selectedValue}\n disabled={disabled}\n dir={layerDirection}\n data-monkeys-component=\"multi-select\"\n data-slot=\"hidden-input\"\n data-state=\"selected\"\n className={classNames?.hiddenInput}\n />\n ))\n : null}\n {open ? (\n <div\n {...componentAttributes}\n id={listboxId}\n role=\"listbox\"\n dir={layerDirection}\n aria-multiselectable=\"true\"\n aria-labelledby={controlId}\n data-monkeys-component=\"multi-select\"\n data-slot=\"menu\"\n data-state=\"open\"\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.length > 0 ? (\n optionList.map((option, index) => {\n const selected = selectedValueSet.has(option.value);\n const active = index === resolvedActiveIndex;\n const optionState = option.disabled\n ? 'disabled'\n : active\n ? 'active'\n : selected\n ? 'selected'\n : 'idle';\n return (\n <button\n {...componentAttributes}\n key={`${option.value}-${index}`}\n id={optionIds[index]}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n dir={layerDirection}\n aria-selected={selected}\n disabled={option.disabled}\n data-monkeys-component=\"multi-select\"\n data-slot=\"option\"\n data-state={optionState}\n data-active={active || undefined}\n data-selected={selected || undefined}\n data-disabled={option.disabled || undefined}\n className={cn(\n theme.slots.selectOption,\n 'gap-2',\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected\n ? theme.styles.selectOptionSelected\n : undefined),\n }}\n onMouseEnter={() => {\n if (!option.disabled) setActiveIndex(index);\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n toggleOption(option);\n controlRef.current?.focus();\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"option-indicator\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]',\n selected &&\n 'border-primary/40 bg-primary text-primary-foreground',\n classNames?.optionIndicator,\n )}\n >\n {selected ? '✓' : null}\n </span>\n <span\n data-slot=\"option-label\"\n className={cn(\n 'min-w-0 flex-1 truncate',\n classNames?.optionLabel,\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })\n ) : (\n <div\n {...componentAttributes}\n dir={layerDirection}\n role=\"option\"\n tabIndex={-1}\n aria-disabled=\"true\"\n aria-selected=\"false\"\n data-monkeys-component=\"multi-select\"\n data-slot=\"empty\"\n data-state=\"empty\"\n className={cn(\n 'px-2.5 py-2 text-sm text-muted-foreground',\n classNames?.empty,\n )}\n >\n {emptyLabel === undefined ? messages.empty : emptyLabel}\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseNumberInputChangeReason,\n BaseNumberInputProps,\n} from './types';\nimport { cn } from './utils';\n\nconst decimalPattern = /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)$/;\n\nexport function parseBaseNumberInputValue(rawValue: string): number | null {\n if (!decimalPattern.test(rawValue)) return null;\n\n const parsedValue = Number(rawValue);\n return Number.isFinite(parsedValue) ? parsedValue : null;\n}\n\nfunction resolveDecimalPlaces(value: number) {\n const match = /^(?:\\d+)(?:\\.(\\d*))?(?:e([+-]?\\d+))?$/i.exec(\n Math.abs(value).toString(),\n );\n if (!match) return 0;\n\n const fractionalPlaces = match[1]?.length ?? 0;\n const exponent = Number(match[2] ?? 0);\n return Math.min(12, Math.max(0, fractionalPlaces - exponent));\n}\n\nfunction normalizeSteppedValue(value: number, values: readonly number[]) {\n const precision = Math.max(...values.map(resolveDecimalPlaces));\n const scale = 10 ** precision;\n const normalized = Math.round((value + Number.EPSILON) * scale) / scale;\n return Object.is(normalized, -0) ? 0 : normalized;\n}\n\nexport function resolveBaseNumberInputStep({\n rawValue,\n direction,\n step,\n min,\n max,\n}: {\n rawValue: string;\n direction: -1 | 1;\n step: number;\n min?: number;\n max?: number;\n}) {\n const parsedValue = parseBaseNumberInputValue(rawValue);\n const baseValue = parsedValue ?? 0;\n const precisionValues = [baseValue, step];\n if (min !== undefined) precisionValues.push(min);\n if (max !== undefined) precisionValues.push(max);\n\n let nextValue = normalizeSteppedValue(\n baseValue + direction * step,\n precisionValues,\n );\n if (min !== undefined) nextValue = Math.max(min, nextValue);\n if (max !== undefined) nextValue = Math.min(max, nextValue);\n return normalizeSteppedValue(nextValue, precisionValues);\n}\n\nfunction validateBoundary(name: 'min' | 'max', value: number | undefined) {\n if (value !== undefined && !Number.isFinite(value)) {\n throw new TypeError(`BaseNumberInput ${name} must be a finite number.`);\n }\n}\n\nfunction validateLabel(name: string, value: string) {\n if (!value.trim()) {\n throw new TypeError(`BaseNumberInput ${name} must be a non-empty string.`);\n }\n}\n\nfunction isInRange(\n value: number | null,\n min: number | undefined,\n max: number | undefined,\n) {\n return (\n value !== null &&\n (min === undefined || value >= min) &&\n (max === undefined || value <= max)\n );\n}\n\nexport const BaseNumberInput = forwardRef<\n HTMLInputElement,\n BaseNumberInputProps\n>(function BaseNumberInput(\n {\n value,\n defaultValue = '',\n min,\n max,\n step = 1,\n showStepControls = false,\n incrementLabel,\n decrementLabel,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n onChange,\n onKeyDown,\n onValueChange,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n ref,\n) {\n if (value !== undefined && typeof value !== 'string') {\n throw new TypeError('BaseNumberInput value must be a string.');\n }\n if (typeof defaultValue !== 'string') {\n throw new TypeError('BaseNumberInput defaultValue must be a string.');\n }\n validateBoundary('min', min);\n validateBoundary('max', max);\n if (min !== undefined && max !== undefined && min > max) {\n throw new RangeError(\n 'BaseNumberInput min must be less than or equal to max.',\n );\n }\n if (!Number.isFinite(step) || step <= 0) {\n throw new TypeError('BaseNumberInput step must be a positive finite number.');\n }\n for (const [name, candidate] of [\n ['showStepControls', showStepControls],\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof candidate !== 'boolean') {\n throw new TypeError(`BaseNumberInput ${name} must be a boolean.`);\n }\n }\n\n const messages = useMonkeysLocaleMessages();\n const resolvedIncrementLabel =\n incrementLabel ?? messages.numberInput.increment;\n const resolvedDecrementLabel =\n decrementLabel ?? messages.numberInput.decrement;\n validateLabel('incrementLabel', resolvedIncrementLabel);\n validateLabel('decrementLabel', resolvedDecrementLabel);\n\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const rawValue = isControlled ? value : uncontrolledValue;\n const parsedValue = parseBaseNumberInputValue(rawValue);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n const emitValueChange = (\n nextRawValue: string,\n reason: BaseNumberInputChangeReason,\n ) => {\n if (!isControlled) setUncontrolledValue(nextRawValue);\n const nextValue = parseBaseNumberInputValue(nextRawValue);\n onValueChange?.(nextValue, {\n rawValue: nextRawValue,\n reason,\n inRange: isInRange(nextValue, min, max),\n });\n };\n\n const stepValue = (direction: -1 | 1) => {\n if (disabled || readOnly) return;\n if (\n parsedValue !== null &&\n ((direction === 1 && max !== undefined && parsedValue >= max) ||\n (direction === -1 && min !== undefined && parsedValue <= min))\n ) {\n return;\n }\n\n const nextValue = resolveBaseNumberInputStep({\n rawValue,\n direction,\n step,\n min,\n max,\n });\n emitValueChange(\n String(nextValue),\n direction === 1 ? 'step-up' : 'step-down',\n );\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitValueChange(event.currentTarget.value, 'input');\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || disabled || readOnly) return;\n if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown') return;\n\n event.preventDefault();\n stepValue(event.key === 'ArrowUp' ? 1 : -1);\n };\n\n const decrementDisabled =\n disabled ||\n readOnly ||\n (parsedValue !== null && min !== undefined && parsedValue <= min);\n const incrementDisabled =\n disabled ||\n readOnly ||\n (parsedValue !== null && max !== undefined && parsedValue >= max);\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"number-input\"\n data-slot=\"root\"\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n <input\n {...inputProps}\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n role=\"spinbutton\"\n value={rawValue}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={parsedValue ?? undefined}\n aria-valuetext={rawValue || undefined}\n data-slot=\"control\"\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n theme.slots.numberInputControl,\n classNames?.control,\n )}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n {showStepControls ? (\n <span\n data-slot=\"step-controls\"\n className={cn(\n theme.slots.numberInputStepControls,\n classNames?.stepControls,\n )}\n style={theme.styles.numberInputStepControls}\n >\n <button\n type=\"button\"\n aria-label={resolvedIncrementLabel}\n disabled={incrementDisabled}\n data-slot=\"increment\"\n className={cn(\n theme.slots.numberInputStepButton,\n classNames?.increment,\n )}\n style={theme.styles.numberInputStepButton}\n onClick={() => stepValue(1)}\n >\n +\n </button>\n <button\n type=\"button\"\n aria-label={resolvedDecrementLabel}\n disabled={decrementDisabled}\n data-slot=\"decrement\"\n className={cn(\n theme.slots.numberInputStepButton,\n classNames?.decrement,\n )}\n style={theme.styles.numberInputStepButton}\n onClick={() => stepValue(-1)}\n >\n −\n </button>\n </span>\n ) : null}\n </div>\n );\n});\n","import type { BaseNoticeProps } from './types';\nimport { getBaseNoticeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseNotice({\n tone,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...noticeProps\n}: BaseNoticeProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...noticeProps}\n className={cn(\n theme.slots.noticeBase,\n getBaseNoticeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.notice,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.noticeIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n <div className=\"min-w-0 flex-1\">\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.noticeTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.noticeDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.noticeActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n as = 'article',\n title,\n description,\n media,\n header,\n footer,\n children,\n interactive,\n selected,\n disabled,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...panelProps\n}: BasePanelProps) {\n const theme = resolveBaseAppearance({ ...appearance, variant, density, state });\n const Component = as as ElementType;\n const hasHeader =\n header !== undefined\n ? hasRenderableNode(header)\n : hasRenderableNode(title) || hasRenderableNode(description);\n const hasMedia = media !== undefined && media !== null;\n const bodyIsStandalone = !hasHeader && !hasMedia;\n\n return (\n <Component\n {...panelProps}\n aria-disabled={disabled || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={state ?? (disabled ? 'disabled' : selected ? 'selected' : 'idle')}\n data-monkeys-component=\"panel\"\n data-slot=\"root\"\n data-interactive={interactive || undefined}\n data-selected={selected || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.panelRoot,\n interactive && !disabled && theme.slots.panelInteractive,\n selected && theme.slots.panelSelected,\n disabled && theme.slots.panelDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.panel,\n ...style,\n }}\n >\n {hasMedia ? (\n <div\n data-slot=\"media\"\n className={cn(theme.slots.panelMedia, classNames?.media)}\n >\n {media}\n </div>\n ) : null}\n\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.panelHeader, classNames?.header)}\n style={theme.styles.panelHeader}\n >\n {header !== undefined ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n className={cn(theme.slots.panelTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n className={cn(\n theme.slots.panelDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {children !== undefined && children !== null ? (\n <div\n data-slot=\"body\"\n className={cn(\n theme.slots.panelBody,\n bodyIsStandalone && theme.slots.panelBodyStandalone,\n classNames?.body,\n )}\n style={theme.styles.panelBody}\n >\n {children}\n </div>\n ) : null}\n\n {footer !== undefined && footer !== null ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.panelFooter, classNames?.footer)}\n style={theme.styles.panelFooter}\n >\n {footer}\n </div>\n ) : null}\n </Component>\n );\n}\n","import {\n forwardRef,\n useRef,\n useState,\n type PointerEvent,\n type Ref,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BasePasswordInputProps } from './types';\nimport { cn } from './utils';\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === 'function') {\n ref(element);\n } else {\n (ref as { current: TElement | null }).current = element;\n }\n }\n}\n\nfunction validateLabel(name: string, value: string) {\n if (!value.trim()) {\n throw new TypeError(`BasePasswordInput ${name} must be a non-empty string.`);\n }\n}\n\nexport const BasePasswordInput = forwardRef<\n HTMLInputElement,\n BasePasswordInputProps\n>(function BasePasswordInput(\n {\n visible,\n defaultVisible = false,\n onVisibleChange,\n showPasswordLabel,\n hidePasswordLabel,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n forwardedRef,\n) {\n for (const [name, candidate] of [\n ['defaultVisible', defaultVisible],\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof candidate !== 'boolean') {\n throw new TypeError(`BasePasswordInput ${name} must be a boolean.`);\n }\n }\n if (visible !== undefined && typeof visible !== 'boolean') {\n throw new TypeError('BasePasswordInput visible must be a boolean.');\n }\n\n const messages = useMonkeysLocaleMessages();\n const resolvedShowLabel =\n showPasswordLabel ?? messages.passwordInput.showPassword;\n const resolvedHideLabel =\n hidePasswordLabel ?? messages.passwordInput.hidePassword;\n validateLabel('showPasswordLabel', resolvedShowLabel);\n validateLabel('hidePasswordLabel', resolvedHideLabel);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [uncontrolledVisible, setUncontrolledVisible] =\n useState(defaultVisible);\n const isControlled = visible !== undefined;\n const resolvedVisible = isControlled ? visible : uncontrolledVisible;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n const handleTogglePointerDown = (event: PointerEvent<HTMLButtonElement>) => {\n const input = inputRef.current;\n if (input && input.ownerDocument.activeElement === input) {\n event.preventDefault();\n }\n };\n\n const handleToggle = () => {\n if (disabled) return;\n const nextVisible = !resolvedVisible;\n if (!isControlled) setUncontrolledVisible(nextVisible);\n onVisibleChange?.(nextVisible);\n };\n\n const toggleLabel = resolvedVisible\n ? resolvedHideLabel\n : resolvedShowLabel;\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"password-input\"\n data-slot=\"root\"\n data-visible={resolvedVisible || undefined}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n <input\n {...inputProps}\n ref={(element) => setRefs(element, inputRef, forwardedRef)}\n type={resolvedVisible ? 'text' : 'password'}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n data-slot=\"control\"\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n theme.slots.passwordInputControl,\n classNames?.control,\n )}\n />\n <button\n type=\"button\"\n aria-label={toggleLabel}\n aria-pressed={resolvedVisible}\n disabled={disabled}\n data-slot=\"toggle\"\n data-state={resolvedVisible ? 'visible' : 'hidden'}\n className={cn(\n theme.slots.passwordInputToggle,\n classNames?.toggle,\n )}\n style={theme.styles.passwordInputToggle}\n onPointerDown={handleTogglePointerDown}\n onClick={handleToggle}\n >\n {toggleLabel}\n </button>\n </div>\n );\n});\n","import { forwardRef, useState, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BasePaginationProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\ntype PaginationItem = number | 'ellipsis';\n\nconst paginationModes = new Set(['compact', 'pages']);\n\nfunction clampPage(page: number, pageCount: number) {\n return Math.min(Math.max(page, 1), Math.max(pageCount, 1));\n}\n\nfunction assertPositiveInteger(value: unknown, name: string) {\n if (!Number.isSafeInteger(value) || (value as number) < 1) {\n throw new RangeError(\n `BasePagination ${name} must be a positive safe integer.`,\n );\n }\n}\n\nfunction assertNonNegativeInteger(value: unknown, name: string) {\n if (!Number.isSafeInteger(value) || (value as number) < 0) {\n throw new RangeError(\n `BasePagination ${name} must be a non-negative safe integer.`,\n );\n }\n}\n\nfunction assertOptionalControlLabel(value: ReactNode, name: string) {\n if (typeof value === 'string' && !value.trim()) {\n throw new TypeError(\n `BasePagination ${name} must be a non-empty string when provided.`,\n );\n }\n}\n\nfunction assertAccessibleName(\n ariaLabel: unknown,\n ariaLabelledBy: unknown,\n) {\n if (\n ariaLabel !== undefined &&\n (typeof ariaLabel !== 'string' || !ariaLabel.trim())\n ) {\n throw new TypeError(\n 'BasePagination aria-label must be a non-empty string when provided.',\n );\n }\n if (\n ariaLabelledBy !== undefined &&\n (typeof ariaLabelledBy !== 'string' || !ariaLabelledBy.trim())\n ) {\n throw new TypeError(\n 'BasePagination aria-labelledby must contain at least one valid ID token.',\n );\n }\n if (typeof ariaLabelledBy === 'string') {\n const tokens = ariaLabelledBy.trim().split(/\\s+/);\n if (tokens.some((token) => /[\\u0000-\\u001f\\u007f]/u.test(token))) {\n throw new TypeError(\n 'BasePagination aria-labelledby must contain only valid ID tokens.',\n );\n }\n }\n}\n\nfunction assertLocaleString(value: unknown, name: string) {\n if (typeof value !== 'string' || !value.trim()) {\n throw new TypeError(\n `BasePagination locale ${name} must resolve to a non-empty string.`,\n );\n }\n return value;\n}\n\nfunction getControlContent(value: ReactNode, fallback: string) {\n return hasRenderableNode(value) ? value : fallback;\n}\n\nfunction getControlAriaLabel(value: ReactNode, fallback: string) {\n return typeof value === 'string' && value.trim() ? value : fallback;\n}\n\nfunction getPageItems(\n currentPage: number,\n pageCount: number,\n boundaryCount: number,\n siblingCount: number,\n): PaginationItem[] {\n const pages = new Set<number>();\n const addPage = (page: number) => {\n if (page >= 1 && page <= pageCount) pages.add(page);\n };\n\n for (let offset = 0; offset < boundaryCount; offset += 1) {\n addPage(1 + offset);\n addPage(pageCount - offset);\n }\n for (let offset = -siblingCount; offset <= siblingCount; offset += 1) {\n addPage(currentPage + offset);\n }\n\n const sortedPages = [...pages].sort((left, right) => left - right);\n const items: PaginationItem[] = [];\n\n sortedPages.forEach((page, index) => {\n const previousPage = sortedPages[index - 1];\n if (previousPage !== undefined) {\n const gap = page - previousPage;\n if (gap === 2) items.push(previousPage + 1);\n if (gap > 2) items.push('ellipsis');\n }\n items.push(page);\n });\n\n return items;\n}\n\nexport const BasePagination = forwardRef<HTMLDivElement, BasePaginationProps>(\n function BasePagination(\n {\n page,\n defaultPage,\n pageSize = 20,\n total = 0,\n mode = 'compact',\n siblingCount = 1,\n boundaryCount = 1,\n label,\n firstLabel,\n previousLabel,\n nextLabel,\n lastLabel,\n appearance,\n className,\n classNames,\n style,\n onPageChange,\n role = 'navigation',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...paginationProps\n },\n ref,\n ) {\n const messages = useMonkeysLocaleMessages().pagination;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [uncontrolledPage, setUncontrolledPage] = useState(\n () => defaultPage ?? 1,\n );\n\n if (page !== undefined) assertPositiveInteger(page, 'page');\n if (defaultPage !== undefined) {\n assertPositiveInteger(defaultPage, 'defaultPage');\n }\n assertPositiveInteger(pageSize, 'pageSize');\n assertNonNegativeInteger(total, 'total');\n assertNonNegativeInteger(siblingCount, 'siblingCount');\n assertNonNegativeInteger(boundaryCount, 'boundaryCount');\n if (!paginationModes.has(mode)) {\n throw new TypeError('BasePagination mode must be \"compact\" or \"pages\".');\n }\n if (onPageChange !== undefined && typeof onPageChange !== 'function') {\n throw new TypeError('BasePagination onPageChange must be a function.');\n }\n assertOptionalControlLabel(firstLabel, 'firstLabel');\n assertOptionalControlLabel(previousLabel, 'previousLabel');\n assertOptionalControlLabel(nextLabel, 'nextLabel');\n assertOptionalControlLabel(lastLabel, 'lastLabel');\n assertAccessibleName(ariaLabel, ariaLabelledBy);\n\n const navigationLabel = assertLocaleString(\n messages.navigation,\n 'navigation',\n );\n const firstMessage = assertLocaleString(messages.first, 'first');\n const previousMessage = assertLocaleString(messages.previous, 'previous');\n const nextMessage = assertLocaleString(messages.next, 'next');\n const lastMessage = assertLocaleString(messages.last, 'last');\n const pageCount = Math.max(Math.ceil(total / pageSize), 1);\n const isControlled = page !== undefined;\n const isUncontrolled = !isControlled && defaultPage !== undefined;\n const currentPage = clampPage(\n isControlled ? page : isUncontrolled ? uncontrolledPage : 1,\n pageCount,\n );\n const start = total > 0 ? (currentPage - 1) * pageSize + 1 : 0;\n const end = Math.min(currentPage * pageSize, total);\n const canPrevious = currentPage > 1;\n const canNext = currentPage < pageCount;\n const pageItems =\n mode === 'pages'\n ? getPageItems(currentPage, pageCount, boundaryCount, siblingCount)\n : [];\n\n const requestPage = (requestedPage: number) => {\n const nextPage = clampPage(requestedPage, pageCount);\n if (nextPage === currentPage) return;\n if (isUncontrolled) setUncontrolledPage(nextPage);\n onPageChange?.(nextPage);\n };\n\n const renderControl = (\n slot: 'first' | 'previous' | 'next' | 'last',\n targetPage: number,\n enabled: boolean,\n content: ReactNode,\n accessibleLabel: string,\n ) => (\n <button\n type=\"button\"\n disabled={!enabled}\n aria-label={accessibleLabel}\n data-slot={slot}\n className={cn(\n theme.slots.paginationButton,\n !enabled && theme.slots.paginationButtonDisabled,\n classNames?.button,\n )}\n onClick={() => requestPage(targetPage)}\n >\n {content}\n </button>\n );\n\n return (\n <div\n {...componentAttributes}\n {...paginationProps}\n ref={ref}\n role={role}\n aria-label={\n ariaLabel ?? (ariaLabelledBy === undefined ? navigationLabel : undefined)\n }\n aria-labelledby={ariaLabelledBy}\n data-monkeys-component=\"pagination\"\n data-slot=\"root\"\n data-mode={mode}\n data-controlled={isControlled || undefined}\n data-uncontrolled={isUncontrolled || undefined}\n className={cn(theme.slots.paginationRoot, classNames?.root, className)}\n style={{\n ...theme.styles.pagination,\n ...style,\n }}\n >\n <div\n aria-live=\"polite\"\n data-slot=\"info\"\n className={cn(theme.slots.paginationInfo, classNames?.info)}\n >\n {hasRenderableNode(label)\n ? label\n : total > 0\n ? messages.range({ start, end, total })\n : messages.emptyResults}\n </div>\n\n <div\n data-slot=\"controls\"\n className={cn(theme.slots.paginationControls, classNames?.controls)}\n >\n {mode === 'pages'\n ? renderControl(\n 'first',\n 1,\n canPrevious,\n getControlContent(firstLabel, firstMessage),\n getControlAriaLabel(firstLabel, firstMessage),\n )\n : null}\n {renderControl(\n 'previous',\n currentPage - 1,\n canPrevious,\n getControlContent(previousLabel, previousMessage),\n getControlAriaLabel(previousLabel, previousMessage),\n )}\n\n {mode === 'compact' ? (\n <span\n aria-current=\"page\"\n aria-label={assertLocaleString(\n messages.currentPage({ page: currentPage, pageCount }),\n 'currentPage',\n )}\n data-slot=\"page\"\n data-page={currentPage}\n className={cn(theme.slots.paginationPage, classNames?.page)}\n >\n {currentPage} / {pageCount}\n </span>\n ) : (\n pageItems.map((item, index) => {\n if (item === 'ellipsis') {\n return (\n <span\n key={`ellipsis-${index}`}\n aria-hidden=\"true\"\n data-slot=\"ellipsis\"\n className={cn(\n theme.slots.paginationEllipsis,\n classNames?.ellipsis,\n )}\n >\n …\n </span>\n );\n }\n\n const isCurrent = item === currentPage;\n return (\n <button\n key={item}\n type=\"button\"\n aria-current={isCurrent ? 'page' : undefined}\n aria-label={assertLocaleString(\n isCurrent\n ? messages.currentPage({ page: item, pageCount })\n : messages.page({ page: item, pageCount }),\n isCurrent ? 'currentPage' : 'page',\n )}\n data-slot=\"page\"\n data-page={item}\n data-current={isCurrent || undefined}\n className={cn(\n theme.slots.paginationButton,\n isCurrent && theme.slots.paginationPage,\n classNames?.button,\n isCurrent && classNames?.page,\n )}\n onClick={() => requestPage(item)}\n >\n {item}\n </button>\n );\n })\n )}\n\n {renderControl(\n 'next',\n currentPage + 1,\n canNext,\n getControlContent(nextLabel, nextMessage),\n getControlAriaLabel(nextLabel, nextMessage),\n )}\n {mode === 'pages'\n ? renderControl(\n 'last',\n pageCount,\n canNext,\n getControlContent(lastLabel, lastMessage),\n getControlAriaLabel(lastLabel, lastMessage),\n )\n : null}\n </div>\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseProgressProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport const BaseProgress = forwardRef<HTMLDivElement, BaseProgressProps>(\n function BaseProgress(\n {\n value = 0,\n max = 100,\n label,\n showValue = false,\n valueFormatter,\n appearance,\n className,\n classNames,\n style,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...progressProps\n },\n ref,\n ) {\n const generatedLabelId = `${useId()}-label`;\n\n if (typeof max !== 'number' || !Number.isFinite(max) || max <= 0) {\n throw new TypeError('BaseProgress max must be a positive finite number.');\n }\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n throw new TypeError('BaseProgress value must be a finite number.');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const safeValue = clamp(value, 0, max);\n const percent = (safeValue / max) * 100;\n const renderedValue =\n valueFormatter?.(safeValue, max) ?? `${Math.round(percent)}%`;\n const hasLabel = hasRenderableNode(label);\n const hasLabelRow = hasLabel || showValue;\n const labelText = typeof label === 'string' ? label : undefined;\n const hasExplicitName =\n nativeAriaLabel !== undefined || nativeAriaLabelledBy !== undefined;\n const generatedAriaLabelledBy =\n hasLabel && labelText === undefined && !hasExplicitName\n ? generatedLabelId\n : undefined;\n const state = safeValue === 0 ? 'empty' : safeValue === max ? 'complete' : 'progress';\n\n return (\n <div\n {...componentAttributes}\n {...progressProps}\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-label={\n nativeAriaLabel ??\n (nativeAriaLabelledBy === undefined ? labelText : undefined)\n }\n aria-labelledby={nativeAriaLabelledBy ?? generatedAriaLabelledBy}\n data-monkeys-component=\"progress\"\n data-slot=\"root\"\n data-state={state}\n data-value={safeValue}\n data-max={max}\n className={cn(theme.slots.progressRoot, classNames?.root, className)}\n style={{\n ...theme.styles.progressRoot,\n ...style,\n }}\n >\n {hasLabelRow ? (\n <div\n data-slot=\"label-row\"\n data-state={state}\n className={cn(theme.slots.progressLabelRow, classNames?.labelRow)}\n >\n {hasLabel ? (\n <span\n id={generatedAriaLabelledBy}\n data-slot=\"label\"\n className={cn(theme.slots.progressLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : (\n <span data-slot=\"label\" />\n )}\n {showValue ? (\n <span\n data-slot=\"value\"\n data-value={safeValue}\n className={cn(theme.slots.progressValue, classNames?.value)}\n >\n {renderedValue}\n </span>\n ) : null}\n </div>\n ) : null}\n <div\n data-slot=\"track\"\n data-state={state}\n className={cn(theme.slots.progressTrack, classNames?.track)}\n >\n <div\n data-slot=\"indicator\"\n data-state={state}\n data-value={safeValue}\n className={cn(theme.slots.progressIndicator, classNames?.indicator)}\n style={{\n ...theme.styles.progressIndicator,\n width: `${percent}%`,\n }}\n />\n </div>\n </div>\n );\n },\n);\n","import { forwardRef, useId, useState, type ChangeEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseRadioGroupProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nconst optionSizeClassNames = {\n sm: 'px-2 py-1.5 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n} as const;\n\nconst markerSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst indicatorSizeClassNames = {\n sm: 'h-1.5 w-1.5',\n md: 'h-2 w-2',\n lg: 'h-2.5 w-2.5',\n} as const;\n\nexport const BaseRadioGroup = forwardRef<\n HTMLDivElement,\n BaseRadioGroupProps\n>(function BaseRadioGroup(\n {\n options = [],\n value,\n defaultValue,\n name,\n form,\n orientation = 'vertical',\n required = false,\n invalid = false,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n children,\n onChange,\n onValueChange,\n id,\n 'aria-invalid': nativeAriaInvalid,\n ...groupProps\n },\n ref,\n) {\n for (const [stateName, stateValue] of [\n ['required', required],\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof stateValue !== 'boolean') {\n throw new TypeError(`BaseRadioGroup ${stateName} must be a boolean.`);\n }\n }\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseRadioGroup orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseRadioGroup controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n if (!Array.isArray(options)) {\n throw new TypeError('BaseRadioGroup options must be an array.');\n }\n const optionValues = new Set<string>();\n options.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(\n `BaseRadioGroup option at index ${index} must be an object.`,\n );\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseRadioGroup option value at index ${index} must be a string.`,\n );\n }\n if (optionValues.has(option.value)) {\n const duplicateValue = JSON.stringify(option.value);\n throw new TypeError(\n 'BaseRadioGroup options must use unique values; ' +\n `duplicate value ${duplicateValue} at index ${index}.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseRadioGroup option disabled at index ${index} must be a boolean.`,\n );\n }\n optionValues.add(option.value);\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const resolvedName = name ?? rootId;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (\n event: ChangeEvent<HTMLInputElement>,\n optionDisabled?: boolean,\n ) => {\n if (disabled || optionDisabled) return;\n const nextValue = event.currentTarget.value;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onChange?.(event);\n onValueChange?.(nextValue, event);\n };\n\n return (\n <div\n {...componentAttributes}\n {...groupProps}\n ref={ref}\n id={id}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-disabled={disabled || undefined}\n data-monkeys-component=\"radio-group\"\n data-slot=\"root\"\n data-state={disabled ? 'disabled' : 'enabled'}\n data-orientation={orientation}\n data-size={controlSize}\n data-required={required || undefined}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.radioGroupRoot,\n orientation === 'horizontal' && 'flex flex-wrap items-center',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.radioGroup,\n ...style,\n }}\n >\n {options.map((option, index) => {\n const optionDisabled = disabled || option.disabled;\n const checked = option.value === selectedValue;\n const state = checked ? 'checked' : 'unchecked';\n const optionId = `${rootId}-${index}-${toDomId(option.value)}`;\n\n return (\n <label\n key={option.value}\n htmlFor={optionId}\n data-slot=\"option\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(\n theme.slots.radioOption,\n optionDisabled && theme.slots.radioOptionDisabled,\n controlSize && optionSizeClassNames[controlSize],\n classNames?.option,\n )}\n style={theme.styles.radioOption}\n >\n <span\n data-slot=\"marker\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(\n theme.slots.radioMarker,\n checked && theme.slots.radioMarkerChecked,\n controlSize && markerSizeClassNames[controlSize],\n classNames?.marker,\n )}\n >\n <input\n id={optionId}\n type=\"radio\"\n name={resolvedName}\n form={form}\n value={option.value}\n checked={checked}\n required={required}\n disabled={optionDisabled}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(theme.slots.radioInput, classNames?.input)}\n onChange={(event) => handleSelect(event, option.disabled)}\n />\n {checked ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.radioIndicator,\n controlSize && indicatorSizeClassNames[controlSize],\n classNames?.indicator,\n )}\n />\n ) : null}\n </span>\n {hasRenderableNode(option.icon) ? (\n <span\n data-slot=\"icon\"\n className={cn('mt-0.5 shrink-0', classNames?.icon)}\n >\n {option.icon}\n </span>\n ) : null}\n <span\n data-slot=\"content\"\n className={cn(theme.slots.radioContent, classNames?.content)}\n >\n <span\n data-slot=\"label\"\n className={cn(theme.slots.radioLabel, classNames?.label)}\n >\n {option.label}\n </span>\n {hasRenderableNode(option.description) ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.radioDescription,\n classNames?.description,\n )}\n >\n {option.description}\n </span>\n ) : null}\n </span>\n </label>\n );\n })}\n {children}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance, resolveBaseLayoutLength } from './theme';\nimport type { BaseScrollAreaAxis, BaseScrollAreaProps } from './types';\nimport { cn } from './utils';\n\nfunction resolveOverflow(axis: BaseScrollAreaAxis) {\n if (axis === 'x') {\n return { overflowX: 'auto', overflowY: 'hidden' } as const;\n }\n if (axis === 'y') {\n return { overflowX: 'hidden', overflowY: 'auto' } as const;\n }\n if (axis === 'both') {\n return { overflowX: 'auto', overflowY: 'auto' } as const;\n }\n throw new TypeError('BaseScrollArea axis must be \"x\", \"y\", or \"both\".');\n}\n\nexport const BaseScrollArea = forwardRef<HTMLDivElement, BaseScrollAreaProps>(\n function BaseScrollArea(\n {\n children,\n axis = 'y',\n maxWidth,\n maxHeight,\n appearance,\n className,\n classNames,\n style,\n ...viewportProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overflow = resolveOverflow(axis);\n const resolvedMaxWidth =\n maxWidth === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseScrollArea', 'maxWidth', maxWidth);\n const resolvedMaxHeight =\n maxHeight === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseScrollArea', 'maxHeight', maxHeight);\n\n return (\n <div\n {...componentAttributes}\n {...viewportProps}\n ref={ref}\n data-monkeys-component=\"scroll-area\"\n data-slot=\"viewport\"\n data-axis={axis}\n className={cn(\n theme.slots.scrollAreaViewport,\n classNames?.viewport,\n className,\n )}\n style={{\n ...theme.styles.scrollArea,\n ...overflow,\n maxWidth: resolvedMaxWidth,\n maxHeight: resolvedMaxHeight,\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useRef,\n useState,\n type ChangeEvent,\n type FocusEvent,\n type FormEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSelectOption, BaseSelectProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst typeaheadResetDelay = 500;\n\nfunction validateSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n openForPreview,\n required,\n}: Pick<\n BaseSelectProps,\n | 'defaultValue'\n | 'disabled'\n | 'invalid'\n | 'openForPreview'\n | 'options'\n | 'required'\n | 'value'\n>) {\n for (const [name, state] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['openForPreview', openForPreview],\n ] as const) {\n if (typeof state !== 'boolean') {\n throw new TypeError(`BaseSelect ${name} must be a boolean.`);\n }\n }\n if (required !== undefined && typeof required !== 'boolean') {\n throw new TypeError('BaseSelect required must be a boolean.');\n }\n\n if (options !== undefined && !Array.isArray(options)) {\n throw new TypeError('BaseSelect options must be an array.');\n }\n options?.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(`BaseSelect option at index ${index} must be an object.`);\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseSelect option value at index ${index} must be a string.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseSelect option disabled at index ${index} must be a boolean.`,\n );\n }\n if (\n option.textValue !== undefined &&\n typeof option.textValue !== 'string'\n ) {\n throw new TypeError(\n `BaseSelect option textValue at index ${index} must be a string.`,\n );\n }\n });\n\n if (options?.length) {\n if (\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number'\n ) {\n throw new TypeError(\n 'BaseSelect value must be a string or number when options are used.',\n );\n }\n if (\n defaultValue !== undefined &&\n typeof defaultValue !== 'string' &&\n typeof defaultValue !== 'number'\n ) {\n throw new TypeError(\n 'BaseSelect defaultValue must be a string or number when options are used.',\n );\n }\n }\n}\n\nfunction normalizeValue(value: BaseSelectProps['value']) {\n return typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n}\n\nfunction findOption(options: BaseSelectOption[], value: string | undefined) {\n if (value === undefined) return undefined;\n return options.find((option) => option.value === value);\n}\n\nfunction getInitialActiveIndex(options: BaseSelectOption[], value: string) {\n const selectedIndex = options.findIndex(\n (option) => option.value === value && !option.disabled,\n );\n if (selectedIndex >= 0) return selectedIndex;\n return options.findIndex((option) => !option.disabled);\n}\n\nfunction getNextEnabledIndex(\n options: BaseSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n const startIndex = currentIndex >= 0 ? currentIndex : direction === 1 ? -1 : 0;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nfunction getBoundaryEnabledIndex(\n options: BaseSelectOption[],\n boundary: 'first' | 'last',\n) {\n if (boundary === 'first') {\n return options.findIndex((option) => !option.disabled);\n }\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) return index;\n }\n return -1;\n}\n\nfunction getOptionText(option: BaseSelectOption) {\n if (option.textValue !== undefined) return option.textValue;\n if (typeof option.label === 'string') return option.label;\n return option.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport const BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\n function BaseSelect(\n {\n options,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n openForPreview = false,\n appearance,\n className,\n classNames,\n style,\n children,\n value,\n defaultValue,\n onBlur,\n onChange,\n onFocus,\n onInvalid,\n name,\n id,\n required,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n 'aria-describedby': nativeAriaDescribedBy,\n 'aria-errormessage': nativeAriaErrorMessage,\n 'aria-required': nativeAriaRequired,\n ...selectProps\n },\n ref,\n ) {\n validateSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n openForPreview,\n required,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n const generatedId = useId();\n const selectId = id ?? generatedId;\n const triggerId = `${selectId}-button`;\n const listboxId = `${selectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const selectRef = useRef<HTMLSelectElement | null>(null);\n const optionRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const composingRef = useRef(false);\n const typeaheadBufferRef = useRef('');\n const typeaheadTimerRef = useRef<{\n ownerWindow: Window;\n timerId: number;\n } | null>(null);\n const optionList = options ?? [];\n const isCustomSelect = optionList.length > 0;\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n normalizeValue(defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled\n ? normalizeValue(value)\n : uncontrolledValue;\n const selectedOption = findOption(optionList, selectedValue);\n const [activeIndex, setActiveIndex] = useState(() =>\n getInitialActiveIndex(optionList, selectedValue),\n );\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : getInitialActiveIndex(optionList, selectedValue);\n const optionIds = optionList.map(\n (option, index) =>\n `${selectId}-option-${index}-${toDomId(option.value)}`,\n );\n const visibleLabel = selectedOption?.label ?? placeholder;\n const isPlaceholder = !selectedOption;\n const layerDirection = selectProps.dir ?? componentAttributes.dir;\n const rootState = disabled\n ? 'disabled'\n : resolvedInvalid\n ? 'invalid'\n : open\n ? 'open'\n : 'closed';\n\n const setSelectRef = (node: HTMLSelectElement | null) => {\n selectRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const handleNativeBlur = (event: FocusEvent<HTMLSelectElement>) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n };\n\n const handleNativeChange = (event: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n };\n\n const resetActiveIndex = () => {\n setActiveIndex(getInitialActiveIndex(optionList, selectedValue));\n };\n\n const cancelAndClose = () => {\n resetActiveIndex();\n if (!forceOpen) setUncontrolledOpen(false);\n };\n\n const openMenu = (nextActiveIndex?: number) => {\n setActiveIndex(\n nextActiveIndex ?? getInitialActiveIndex(optionList, selectedValue),\n );\n if (!forceOpen) setUncontrolledOpen(true);\n };\n\n const notifyChange = (nextValue: string) => {\n const selectElement = selectRef.current;\n if (!selectElement) return;\n const ownerWindow = selectElement.ownerDocument.defaultView;\n if (!ownerWindow) {\n throw new Error(\n 'BaseSelect cannot dispatch change without an owning window.',\n );\n }\n const valueSetter = Object.getOwnPropertyDescriptor(\n ownerWindow.HTMLSelectElement.prototype,\n 'value',\n )?.set;\n if (!valueSetter) {\n throw new Error('BaseSelect could not resolve the native select value setter.');\n }\n valueSetter.call(selectElement, nextValue);\n selectElement.dispatchEvent(\n new ownerWindow.Event('change', { bubbles: true }),\n );\n };\n\n const commitIndex = (nextIndex: number) => {\n const option = optionList[nextIndex];\n if (!option || option.disabled || disabled) return;\n setActiveIndex(nextIndex);\n if (option.value !== selectedValue) {\n if (!isControlled) {\n setUncontrolledValue(option.value);\n }\n notifyChange(option.value);\n }\n if (!forceOpen) setUncontrolledOpen(false);\n };\n\n const moveActive = (nextIndex: number) => {\n if (nextIndex < 0 || optionList[nextIndex]?.disabled) return;\n setActiveIndex(nextIndex);\n if (!open) openMenu(nextIndex);\n };\n\n const handleTypeahead = (\n event: KeyboardEvent<HTMLButtonElement>,\n character: string,\n ) => {\n const ownerWindow = event.currentTarget.ownerDocument.defaultView;\n if (!ownerWindow) return;\n const nextBuffer = `${typeaheadBufferRef.current}${character}`.toLocaleLowerCase();\n typeaheadBufferRef.current = nextBuffer;\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n typeaheadTimerRef.current = {\n ownerWindow,\n timerId: ownerWindow.setTimeout(() => {\n typeaheadBufferRef.current = '';\n typeaheadTimerRef.current = null;\n }, typeaheadResetDelay),\n };\n\n const repeatedCharacter = Array.from(nextBuffer).every(\n (bufferCharacter) => bufferCharacter === nextBuffer[0],\n );\n const query = repeatedCharacter ? character.toLocaleLowerCase() : nextBuffer;\n const startIndex = open\n ? resolvedActiveIndex\n : optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n for (let offset = 1; offset <= optionList.length; offset += 1) {\n const index = (startIndex + offset + optionList.length) % optionList.length;\n const option = optionList[index];\n if (\n !option?.disabled &&\n getOptionText(option).trim().toLocaleLowerCase().startsWith(query)\n ) {\n event.preventDefault();\n moveActive(index);\n return;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled || composingRef.current || event.nativeEvent.isComposing) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const selectedIndex = optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n const currentIndex = open ? resolvedActiveIndex : selectedIndex;\n moveActive(\n getNextEnabledIndex(\n optionList,\n currentIndex,\n event.key === 'ArrowDown' ? 1 : -1,\n ),\n );\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n moveActive(\n getBoundaryEnabledIndex(\n optionList,\n event.key === 'Home' ? 'first' : 'last',\n ),\n );\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (open) {\n commitIndex(resolvedActiveIndex);\n } else {\n openMenu();\n }\n return;\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n cancelAndClose();\n return;\n }\n\n if (event.key === 'Tab' && open) {\n commitIndex(resolvedActiveIndex);\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n !/\\s/.test(event.key)\n ) {\n handleTypeahead(event, event.key);\n }\n };\n\n const handleCustomFocus = (event: FocusEvent<HTMLSelectElement>) => {\n onFocus?.(event);\n if (!event.defaultPrevented) triggerRef.current?.focus();\n };\n\n const handleCustomInvalid = (event: FormEvent<HTMLSelectElement>) => {\n onInvalid?.(event);\n event.preventDefault();\n triggerRef.current?.focus();\n };\n\n useEffect(() => {\n if (!isCustomSelect || !open || forceOpen) return undefined;\n const ownerDocument = rootRef.current?.ownerDocument;\n if (!ownerDocument) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n cancelAndClose();\n }\n };\n\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n return () => {\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, isCustomSelect, open, optionList, selectedValue]);\n\n useEffect(() => {\n if (!isCustomSelect || !open || resolvedActiveIndex < 0) return;\n optionRefs.current[resolvedActiveIndex]?.scrollIntoView?.({\n block: 'nearest',\n });\n }, [isCustomSelect, open, resolvedActiveIndex]);\n\n useEffect(() => {\n if (!isCustomSelect || isControlled) return undefined;\n const selectElement = selectRef.current;\n const form = selectElement?.form;\n const ownerWindow = selectElement?.ownerDocument.defaultView;\n if (!form || !ownerWindow) return undefined;\n\n const handleReset = () => {\n ownerWindow.setTimeout(() => {\n const resetValue = normalizeValue(defaultValue);\n setUncontrolledValue(resetValue);\n setActiveIndex(getInitialActiveIndex(optionList, resetValue));\n if (!forceOpen) setUncontrolledOpen(false);\n }, 0);\n };\n form.addEventListener('reset', handleReset);\n return () => form.removeEventListener('reset', handleReset);\n }, [defaultValue, forceOpen, isControlled, isCustomSelect, optionList]);\n\n useEffect(\n () => () => {\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n },\n [],\n );\n\n if (!isCustomSelect) {\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"select\"\n data-slot=\"root\"\n data-state={rootState}\n data-native=\"true\"\n className={cn(\n theme.slots.controlWrapper,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <select\n {...componentAttributes}\n {...selectProps}\n id={id}\n ref={ref}\n name={name}\n value={value}\n defaultValue={defaultValue}\n required={required}\n disabled={disabled}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n aria-required={nativeAriaRequired}\n data-monkeys-component=\"select\"\n data-slot=\"native\"\n data-state={rootState}\n data-native=\"true\"\n onBlur={handleNativeBlur}\n onFocus={onFocus}\n onInvalid={onInvalid}\n onChange={handleNativeChange}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n classNames?.control,\n )}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {children}\n </select>\n <span className={theme.slots.selectChevron} />\n </div>\n );\n }\n\n return (\n <div\n {...componentAttributes}\n ref={rootRef}\n dir={layerDirection}\n data-monkeys-component=\"select\"\n data-slot=\"root\"\n data-state={rootState}\n data-native=\"false\"\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <button\n {...componentAttributes}\n ref={triggerRef}\n type=\"button\"\n id={triggerId}\n role=\"combobox\"\n disabled={disabled}\n dir={layerDirection}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && resolvedActiveIndex >= 0\n ? optionIds[resolvedActiveIndex]\n : undefined\n }\n aria-autocomplete=\"none\"\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n aria-required={nativeAriaRequired ?? (required || undefined)}\n data-monkeys-component=\"select\"\n data-slot=\"trigger\"\n data-state={rootState}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n 'flex items-center text-left',\n classNames?.control,\n )}\n onClick={() => {\n if (open) cancelAndClose();\n else openMenu();\n }}\n onBlur={(event) => {\n if (!rootRef.current?.contains(event.relatedTarget)) {\n cancelAndClose();\n fieldControl.notifyBlur(selectedValue);\n }\n }}\n onCompositionStart={() => {\n composingRef.current = true;\n }}\n onCompositionEnd={() => {\n composingRef.current = false;\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n isPlaceholder && theme.slots.selectPlaceholder,\n isPlaceholder && classNames?.placeholder,\n )}\n >\n {visibleLabel}\n </span>\n </button>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n )}\n />\n <select\n {...componentAttributes}\n {...selectProps}\n ref={setSelectRef}\n id={id}\n name={name}\n value={selectedValue}\n required={required}\n disabled={disabled}\n dir={layerDirection}\n aria-hidden=\"true\"\n tabIndex={-1}\n data-monkeys-component=\"select\"\n data-slot=\"native\"\n data-state={rootState}\n data-native=\"false\"\n className={theme.slots.selectNative}\n onBlur={onBlur}\n onFocus={handleCustomFocus}\n onInvalid={handleCustomInvalid}\n onChange={handleNativeChange}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {optionList.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {getOptionText(option)}\n </option>\n ))}\n </select>\n {open ? (\n <div\n {...componentAttributes}\n id={listboxId}\n role=\"listbox\"\n dir={layerDirection}\n aria-labelledby={triggerId}\n data-monkeys-component=\"select\"\n data-slot=\"menu\"\n data-state=\"open\"\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.map((option, index) => {\n const selected = option.value === selectedValue;\n const active = index === resolvedActiveIndex;\n const optionState = option.disabled\n ? 'disabled'\n : active\n ? 'active'\n : selected\n ? 'selected'\n : 'idle';\n return (\n <button\n {...componentAttributes}\n ref={(node) => {\n optionRefs.current[index] = node;\n }}\n key={option.value}\n id={optionIds[index]}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n disabled={option.disabled}\n dir={layerDirection}\n aria-selected={selected}\n data-monkeys-component=\"select\"\n data-slot=\"option\"\n data-state={optionState}\n data-active={active || undefined}\n data-selected={selected || undefined}\n data-disabled={option.disabled || undefined}\n className={cn(\n theme.slots.selectOption,\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected ? theme.styles.selectOptionSelected : undefined),\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitIndex(index)}\n >\n <span className=\"min-w-0 flex-1 truncate\">\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import type { BaseSectionHeaderProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseSectionHeader({\n eyebrow,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...headerProps\n}: BaseSectionHeaderProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...headerProps}\n className={cn(theme.slots.sectionHeaderRoot, classNames?.root, className)}\n style={{\n ...theme.styles.sectionHeader,\n ...style,\n }}\n >\n <div\n className={cn(theme.slots.sectionHeaderContent, classNames?.content)}\n >\n {hasRenderableNode(eyebrow) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderEyebrow,\n classNames?.eyebrow,\n )}\n >\n {eyebrow}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.sectionHeaderTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.sectionHeaderActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { useState, type KeyboardEvent } from 'react';\n\nimport type { BaseSegmentedControlProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getInitialSegmentValue(\n options: BaseSegmentedControlProps['options'],\n defaultValue?: string,\n) {\n if (defaultValue && options?.some((option) => option.value === defaultValue)) {\n const defaultOption = options.find((option) => option.value === defaultValue);\n if (!defaultOption?.disabled) {\n return defaultValue;\n }\n }\n return options?.find((option) => !option.disabled)?.value ?? options?.[0]?.value;\n}\n\nexport function BaseSegmentedControl({\n options = [],\n value,\n defaultValue,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n ...controlProps\n}: BaseSegmentedControlProps) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialSegmentValue(options, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (nextValue: string, disabled?: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n const enabledOptions = options.filter((option) => !option.disabled);\n if (enabledOptions.length === 0) return;\n\n event.preventDefault();\n const currentIndex = Math.max(\n 0,\n enabledOptions.findIndex((option) => option.value === selectedValue),\n );\n const nextIndex =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? enabledOptions.length - 1\n : event.key === 'ArrowLeft' || event.key === 'ArrowUp'\n ? (currentIndex - 1 + enabledOptions.length) % enabledOptions.length\n : (currentIndex + 1) % enabledOptions.length;\n const nextOption = enabledOptions[nextIndex];\n const buttons = event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]');\n const target = Array.from(buttons).find(\n (button) => button.dataset.value === nextOption.value,\n );\n handleSelect(nextOption.value);\n target?.focus();\n };\n\n return (\n <div\n {...controlProps}\n role=\"radiogroup\"\n aria-orientation=\"horizontal\"\n className={cn(theme.slots.segmentedRoot, classNames?.root, className)}\n style={{\n ...theme.styles.segmentedRoot,\n ...style,\n }}\n onKeyDown={handleKeyDown}\n >\n {options.map((option) => {\n const selected = option.value === selectedValue;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n data-value={option.value}\n aria-checked={selected}\n tabIndex={selected ? 0 : -1}\n disabled={option.disabled}\n className={cn(\n theme.slots.segmentedItem,\n selected && theme.slots.segmentedItemActive,\n option.disabled && theme.slots.segmentedItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.segmentedItem}\n onClick={() => handleSelect(option.value, option.disabled)}\n >\n {hasRenderableNode(option.icon) ? (\n <span className={cn('inline-flex h-4 w-4 shrink-0', classNames?.icon)}>\n {option.icon}\n </span>\n ) : null}\n <span className={cn('min-w-0 truncate', classNames?.label)}>\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSkeletonProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst variantClassNames = {\n line: 'h-4 w-full',\n block: 'h-24 w-full',\n circle: 'aspect-square h-10 rounded-full',\n} as const;\n\nexport const BaseSkeleton = forwardRef<HTMLDivElement, BaseSkeletonProps>(\n function BaseSkeleton(\n {\n variant = 'line',\n animated = true,\n appearance,\n className,\n classNames,\n style,\n ...skeletonProps\n },\n ref,\n ) {\n if (variant !== 'line' && variant !== 'block' && variant !== 'circle') {\n throw new TypeError(\n 'BaseSkeleton variant must be \"line\", \"block\", or \"circle\".',\n );\n }\n if (typeof animated !== 'boolean') {\n throw new TypeError('BaseSkeleton animated must be a boolean.');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...skeletonProps}\n ref={ref}\n aria-hidden=\"true\"\n data-monkeys-component=\"skeleton\"\n data-slot=\"root\"\n data-variant={variant}\n data-animated={animated}\n data-state={animated ? 'animated' : 'static'}\n className={cn(\n theme.slots.skeletonRoot,\n variantClassNames[variant],\n animated && 'motion-safe:animate-pulse motion-reduce:animate-none',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.skeleton,\n ...style,\n }}\n />\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseSpinnerProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseSpinner = forwardRef<HTMLSpanElement, BaseSpinnerProps>(\n function BaseSpinner(\n {\n decorative = false,\n label,\n appearance,\n className,\n classNames,\n style,\n ...spinnerProps\n },\n ref,\n ) {\n const messages = useMonkeysLocaleMessages();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (typeof decorative !== 'boolean') {\n throw new TypeError('BaseSpinner decorative must be a boolean.');\n }\n if (decorative && label !== undefined) {\n throw new TypeError(\n 'BaseSpinner label cannot be provided when decorative is true.',\n );\n }\n\n const resolvedLabel = decorative\n ? undefined\n : (label ?? messages.loading.spinner);\n if (\n !decorative &&\n (typeof resolvedLabel !== 'string' || !resolvedLabel.trim())\n ) {\n throw new TypeError('BaseSpinner label must be a non-empty string.');\n }\n\n return (\n <span\n {...componentAttributes}\n {...spinnerProps}\n ref={ref}\n role={decorative ? undefined : 'status'}\n aria-label={resolvedLabel}\n aria-hidden={decorative ? 'true' : undefined}\n data-monkeys-component=\"spinner\"\n data-slot=\"root\"\n data-decorative={decorative || undefined}\n className={cn(theme.slots.spinnerRoot, classNames?.root, className)}\n style={{\n ...theme.styles.spinner,\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(theme.slots.spinnerIndicator, classNames?.indicator)}\n style={theme.styles.spinnerIndicator}\n />\n </span>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseStackProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseStack = forwardRef<HTMLDivElement, BaseStackProps>(\n function BaseStack(\n {\n children,\n gap,\n align = 'stretch',\n justify = 'start',\n appearance,\n className,\n classNames,\n style,\n ...stackProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseStack', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...stackProps}\n ref={ref}\n data-monkeys-component=\"stack\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n className={cn(theme.slots.stackRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stack,\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseStack', align),\n justifyContent: resolveBaseLayoutJustify('BaseStack', justify),\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseStepItem,\n BaseStepsProps,\n BaseStepsStatusLabels,\n BaseStepStatus,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst stepStatuses = new Set<BaseStepStatus>([\n 'pending',\n 'current',\n 'completed',\n 'error',\n]);\nconst statusLabelKeys = [\n 'current',\n 'completed',\n 'error',\n 'disabled',\n] as const;\nconst invalidStepIdPattern = /[\\s\\u0000-\\u001f\\u007f]/u;\n\ninterface ValidatedStep {\n item: BaseStepItem;\n encodedId: string;\n status: BaseStepStatus;\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction hasStepLabel(value: unknown): boolean {\n if (!hasRenderableNode(value as BaseStepItem['label'])) return false;\n if (typeof value === 'string') return Boolean(value.trim());\n if (Array.isArray(value)) return value.some(hasStepLabel);\n return true;\n}\n\nfunction encodeStepId(id: string) {\n try {\n return encodeURIComponent(id);\n } catch {\n throw new TypeError(\n `BaseSteps item id ${JSON.stringify(id)} must contain valid Unicode.`,\n );\n }\n}\n\nfunction validateItems(items: unknown): ValidatedStep[] {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseSteps items must be an array.');\n }\n\n const ids = new Set<string>();\n let currentCount = 0;\n\n const validatedItems = items.map((candidate, index) => {\n if (!isPlainRecord(candidate)) {\n throw new TypeError(`BaseSteps item at index ${index} must be an object.`);\n }\n\n const item = candidate as unknown as BaseStepItem;\n if (\n typeof item.id !== 'string' ||\n !item.id ||\n invalidStepIdPattern.test(item.id)\n ) {\n throw new TypeError(\n `BaseSteps item at index ${index} must have a non-empty id without whitespace or control characters.`,\n );\n }\n if (ids.has(item.id)) {\n throw new TypeError(`BaseSteps item id ${JSON.stringify(item.id)} is duplicated.`);\n }\n ids.add(item.id);\n\n if (!hasStepLabel(item.label)) {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} label must contain renderable content.`,\n );\n }\n\n const status = item.status ?? 'pending';\n if (!stepStatuses.has(status)) {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} status must be one of: pending, current, completed, error.`,\n );\n }\n if (status === 'current') currentCount += 1;\n\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} disabled must be a boolean.`,\n );\n }\n if (item.selectable !== undefined && typeof item.selectable !== 'boolean') {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} selectable must be a boolean.`,\n );\n }\n\n return { item, encodedId: encodeStepId(item.id), status };\n });\n\n if (currentCount > 1) {\n throw new RangeError('BaseSteps items may contain at most one current step.');\n }\n\n return validatedItems;\n}\n\nfunction resolveStatusLabels(\n defaults: BaseStepsStatusLabels,\n override: unknown,\n): BaseStepsStatusLabels {\n if (override !== undefined && !isPlainRecord(override)) {\n throw new TypeError('BaseSteps statusLabels must be an object.');\n }\n\n const overrideRecord = override as Record<string, unknown> | undefined;\n for (const key of Object.keys(overrideRecord ?? {})) {\n if (!statusLabelKeys.includes(key as (typeof statusLabelKeys)[number])) {\n throw new TypeError(\n `BaseSteps statusLabels.${key} is not a supported status label.`,\n );\n }\n }\n\n const resolved = {\n current: overrideRecord?.current ?? defaults.current,\n completed: overrideRecord?.completed ?? defaults.completed,\n error: overrideRecord?.error ?? defaults.error,\n disabled: overrideRecord?.disabled ?? defaults.disabled,\n };\n\n for (const key of statusLabelKeys) {\n if (typeof resolved[key] !== 'string' || !resolved[key].trim()) {\n throw new TypeError(\n `BaseSteps statusLabels.${key} must be a non-empty string.`,\n );\n }\n }\n\n return resolved as BaseStepsStatusLabels;\n}\n\nfunction validateAccessibleName(\n ariaLabel: unknown,\n ariaLabelledBy: unknown,\n) {\n if (\n ariaLabel !== undefined &&\n (typeof ariaLabel !== 'string' || !ariaLabel.trim())\n ) {\n throw new TypeError(\n 'BaseSteps aria-label must be a non-empty string when provided.',\n );\n }\n if (ariaLabelledBy === undefined) return;\n if (typeof ariaLabelledBy !== 'string' || !ariaLabelledBy.trim()) {\n throw new TypeError(\n 'BaseSteps aria-labelledby must contain at least one valid ID token.',\n );\n }\n const tokens = ariaLabelledBy.trim().split(/\\s+/);\n if (tokens.some((token) => invalidStepIdPattern.test(token))) {\n throw new TypeError(\n 'BaseSteps aria-labelledby must contain only valid ID tokens.',\n );\n }\n}\n\nfunction getIndicator(status: BaseStepStatus, index: number) {\n if (status === 'completed') return '\\u2713';\n if (status === 'error') return '!';\n return index + 1;\n}\n\nfunction getIndicatorClassName(\n status: BaseStepStatus,\n slots: ReturnType<typeof resolveBaseAppearance>['slots'],\n) {\n return cn(\n status === 'pending' && slots.stepsIndicatorPending,\n status === 'current' && slots.stepsIndicatorCurrent,\n status === 'completed' && slots.stepsIndicatorCompleted,\n status === 'error' && slots.stepsIndicatorError,\n );\n}\n\nexport const BaseSteps = forwardRef<HTMLOListElement, BaseStepsProps>(\n function BaseSteps(\n {\n items,\n orientation = 'horizontal',\n statusLabels,\n appearance,\n className,\n classNames,\n style,\n onStepSelect,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...stepsProps\n },\n ref,\n ) {\n const generatedId = useId();\n const messages = useMonkeysLocaleMessages().steps;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseSteps orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (onStepSelect !== undefined && typeof onStepSelect !== 'function') {\n throw new TypeError('BaseSteps onStepSelect must be a function.');\n }\n if (typeof messages.label !== 'string' || !messages.label.trim()) {\n throw new TypeError('BaseSteps locale label must be a non-empty string.');\n }\n validateAccessibleName(ariaLabel, ariaLabelledBy);\n\n const validatedItems = validateItems(items);\n const resolvedStatusLabels = resolveStatusLabels(messages, statusLabels);\n\n return (\n <ol\n {...componentAttributes}\n {...stepsProps}\n ref={ref}\n role=\"list\"\n aria-label={\n ariaLabel ?? (ariaLabelledBy === undefined ? messages.label : undefined)\n }\n aria-labelledby={ariaLabelledBy}\n data-monkeys-component=\"steps\"\n data-slot=\"root\"\n data-orientation={orientation}\n className={cn(\n theme.slots.stepsRoot,\n orientation === 'horizontal'\n ? theme.slots.stepsHorizontal\n : theme.slots.stepsVertical,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.steps,\n ...style,\n }}\n >\n {validatedItems.map(({ item, encodedId, status }, index) => {\n const itemDomId = `${generatedId}-step-${encodedId}`;\n const labelId = `${itemDomId}-label`;\n const descriptionId = `${itemDomId}-description`;\n const statusId = `${itemDomId}-status`;\n const hasDescription = hasRenderableNode(item.description);\n const statusText =\n status === 'pending' ? undefined : resolvedStatusLabels[status];\n const hasStatusText = Boolean(statusText || item.disabled);\n const interactive =\n onStepSelect !== undefined && item.selectable !== false;\n const describedBy = [\n hasDescription ? descriptionId : undefined,\n hasStatusText ? statusId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n const content = (\n <>\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(\n theme.slots.stepsIndicator,\n getIndicatorClassName(status, theme.slots),\n classNames?.indicator,\n )}\n style={theme.styles.stepsIndicator}\n >\n {getIndicator(status, index)}\n </span>\n <span\n data-slot=\"content\"\n className={cn(theme.slots.stepsContent, classNames?.content)}\n >\n <span\n id={labelId}\n data-slot=\"label\"\n className={cn(theme.slots.stepsLabel, classNames?.label)}\n >\n {item.label}\n </span>\n {hasDescription ? (\n <span\n id={descriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.stepsDescription,\n classNames?.description,\n )}\n >\n {item.description}\n </span>\n ) : null}\n {hasStatusText ? (\n <span\n id={statusId}\n data-slot=\"status\"\n className={cn(\n theme.slots.stepsStatus,\n classNames?.status,\n )}\n >\n {statusText}\n {statusText && item.disabled ? '. ' : null}\n {item.disabled ? resolvedStatusLabels.disabled : null}\n </span>\n ) : null}\n </span>\n </>\n );\n\n return (\n <li\n key={item.id}\n id={itemDomId}\n aria-current={status === 'current' ? 'step' : undefined}\n aria-disabled={item.disabled || undefined}\n data-step-id={item.id}\n data-status={status}\n data-disabled={item.disabled || undefined}\n data-selectable={interactive || undefined}\n className={cn(\n theme.slots.stepsItem,\n orientation === 'horizontal'\n ? theme.slots.stepsItemHorizontal\n : theme.slots.stepsItemVertical,\n classNames?.item,\n )}\n style={theme.styles.stepsItem}\n >\n {interactive ? (\n <button\n type=\"button\"\n disabled={item.disabled}\n aria-labelledby={labelId}\n aria-describedby={describedBy}\n data-slot=\"trigger\"\n className={cn(\n theme.slots.stepsTrigger,\n theme.slots.stepsTriggerInteractive,\n item.disabled && theme.slots.stepsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.stepsTrigger}\n onClick={() => {\n if (item.disabled) return;\n onStepSelect(item.id, item, index);\n }}\n >\n {content}\n </button>\n ) : (\n <div\n data-slot=\"trigger\"\n className={cn(\n theme.slots.stepsTrigger,\n item.disabled && theme.slots.stepsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.stepsTrigger}\n >\n {content}\n </div>\n )}\n {index < validatedItems.length - 1 ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"connector\"\n className={cn(\n theme.slots.stepsConnector,\n orientation === 'horizontal'\n ? theme.slots.stepsConnectorHorizontal\n : theme.slots.stepsConnectorVertical,\n status === 'completed' &&\n theme.slots.stepsConnectorCompleted,\n status === 'error' && theme.slots.stepsConnectorError,\n classNames?.connector,\n )}\n style={theme.styles.stepsConnector}\n />\n ) : null}\n </li>\n );\n })}\n </ol>\n );\n },\n);\n","import { forwardRef, useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSwitchProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasNonEmptyRenderableNode, hasRenderableNode } from './utils';\n\nconst trackSizeClassNames = {\n sm: 'h-5 w-9',\n md: 'h-6 w-10',\n lg: 'h-7 w-12',\n} as const;\n\nconst thumbSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst checkedThumbClassNames = {\n sm: 'translate-x-[18px]',\n md: 'translate-x-5',\n lg: 'translate-x-6',\n} as const;\n\nconst densitySize = {\n compact: 'sm',\n default: 'md',\n comfortable: 'lg',\n} as const;\n\nexport const BaseSwitch = forwardRef<HTMLInputElement, BaseSwitchProps>(\n function BaseSwitch(\n {\n label,\n description,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n ...switchProps\n },\n ref,\n ) {\n if (typeof disabled !== 'boolean') {\n throw new TypeError('BaseSwitch disabled must be a boolean.');\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseSwitch controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasLabel = hasRenderableNode(label);\n const hasDescription = hasNonEmptyRenderableNode(description);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = isControlled ? checked : uncontrolledChecked;\n const state = resolvedChecked ? 'checked' : 'unchecked';\n const resolvedVisualSize = controlSize ?? densitySize[theme.density];\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n {...componentAttributes}\n data-monkeys-component=\"switch\"\n data-slot=\"root\"\n data-state={state}\n data-size={controlSize}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.switchRoot,\n !hasDescription && 'items-center',\n disabled && theme.slots.switchDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.switchRoot,\n ...style,\n }}\n >\n <span\n data-slot=\"track\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.switchTrack,\n !hasDescription && 'mt-0',\n resolvedChecked && theme.slots.switchChecked,\n controlSize && trackSizeClassNames[controlSize],\n classNames?.track,\n )}\n style={theme.styles.switchTrack}\n >\n <input\n {...switchProps}\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-checked={resolvedChecked}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-disabled={disabled || undefined}\n onChange={handleChange}\n className={cn(theme.slots.switchInput, classNames?.input)}\n />\n <span\n aria-hidden=\"true\"\n data-slot=\"thumb\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.switchThumb,\n controlSize && thumbSizeClassNames[controlSize],\n resolvedChecked && checkedThumbClassNames[resolvedVisualSize],\n classNames?.thumb,\n )}\n style={theme.styles.switchThumb}\n />\n </span>\n\n {hasLabel || hasDescription ? (\n <span\n data-slot=\"content\"\n className={cn(theme.slots.switchContent, classNames?.content)}\n >\n {hasLabel ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.switchLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : null}\n {hasDescription ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.switchDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type DragEvent,\n type ForwardedRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type MutableRefObject,\n type PointerEvent as ReactPointerEvent,\n type ReactNode,\n type UIEvent as ReactUIEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseAppearance,\n BaseResolvedTheme,\n BaseTableAlign,\n BaseTableBodyProps,\n BaseTableCaptionProps,\n BaseTableCellProps,\n BaseTableColumnDefinition,\n BaseTableColumnInteractionOptions,\n BaseTableContainerProps,\n BaseTableEmptyProps,\n BaseTableFooterProps,\n BaseTableHeaderProps,\n BaseTableHeadProps,\n BaseTableLayout,\n BaseTableLoadingProps,\n BaseTableProps,\n BaseTableRowProps,\n BaseTableSortDirection,\n BaseTableVerticalAlign,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DATA_TRANSFER_COLUMN_TYPE = 'application/x-monkeys-base-table-column';\nconst COLUMN_RESIZE_KEYBOARD_STEP = 8;\n\nfunction assignRef<T>(ref: ForwardedRef<T> | undefined, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction assertBoolean(name: string, value: unknown) {\n if (value !== undefined && typeof value !== 'boolean') {\n throw new Error(`BaseTable ${name} must be a boolean.`);\n }\n}\n\nfunction assertEnum<T extends string>(\n name: string,\n value: unknown,\n values: readonly T[],\n) {\n if (value !== undefined && !values.includes(value as T)) {\n throw new Error(\n `BaseTable ${name} must be one of ${values.map((item) => `\"${item}\"`).join(', ')}.`,\n );\n }\n}\n\nfunction assertOptionalLabel(name: string, value: unknown) {\n if (\n value !== undefined &&\n (typeof value !== 'string' || value.trim().length === 0)\n ) {\n throw new Error(`BaseTable ${name} must be a non-empty string when provided.`);\n }\n}\n\nfunction assertOptionalFunction(name: string, value: unknown) {\n if (value !== undefined && typeof value !== 'function') {\n throw new Error(`BaseTable ${name} must be a function when provided.`);\n }\n}\n\nfunction validateCssSizeValue(\n value: unknown,\n name: string,\n options: { stringAllowed?: boolean } = {},\n) {\n if (value === undefined) return;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable ${name} must be a finite non-negative number${\n options.stringAllowed ? ' or a non-empty CSS size string' : ''\n }.`,\n );\n }\n return;\n }\n if (\n options.stringAllowed &&\n typeof value === 'string' &&\n value.trim().length > 0\n ) {\n return;\n }\n throw new Error(\n `BaseTable ${name} must be ${\n options.stringAllowed\n ? 'a finite non-negative number or a non-empty CSS size string'\n : 'a finite non-negative number'\n }.`,\n );\n}\n\nfunction validateColumns(columns: unknown) {\n if (columns === undefined) return undefined;\n if (!Array.isArray(columns)) {\n throw new Error('BaseTable columns must be an array when provided.');\n }\n\n const ids = new Set<string>();\n columns.forEach((column, index) => {\n if (!column || typeof column !== 'object' || Array.isArray(column)) {\n throw new Error(`BaseTable column at index ${index} must be an object.`);\n }\n const definition = column as BaseTableColumnDefinition;\n if (typeof definition.id !== 'string' || definition.id.trim().length === 0) {\n throw new Error(\n `BaseTable column id at index ${index} must be a non-empty string.`,\n );\n }\n const columnId = definition.id.trim();\n if (definition.id !== columnId) {\n throw new Error(\n `BaseTable column id \"${definition.id}\" must not contain surrounding whitespace.`,\n );\n }\n if (ids.has(columnId)) {\n throw new Error(`BaseTable columns contain duplicate id \"${columnId}\".`);\n }\n ids.add(columnId);\n validateCssSizeValue(definition.width, `column \"${columnId}\" width`, {\n stringAllowed: true,\n });\n validateCssSizeValue(definition.minWidth, `column \"${columnId}\" minWidth`, {\n stringAllowed: true,\n });\n validateCssSizeValue(definition.maxWidth, `column \"${columnId}\" maxWidth`, {\n stringAllowed: true,\n });\n if (\n typeof definition.minWidth === 'number' &&\n typeof definition.maxWidth === 'number' &&\n definition.minWidth > definition.maxWidth\n ) {\n throw new Error(\n `BaseTable column \"${columnId}\" minWidth cannot be greater than maxWidth.`,\n );\n }\n });\n return ids;\n}\n\nfunction validateColumnOrder(columnOrder: unknown, knownColumnIds?: Set<string>) {\n if (columnOrder === undefined) return;\n if (!Array.isArray(columnOrder)) {\n throw new Error('BaseTable columnOrder must be an array when provided.');\n }\n\n const ids = new Set<string>();\n columnOrder.forEach((value, index) => {\n if (typeof value !== 'string' || value.trim().length === 0) {\n throw new Error(\n `BaseTable columnOrder entry at index ${index} must be a non-empty string.`,\n );\n }\n const columnId = value.trim();\n if (value !== columnId) {\n throw new Error(\n `BaseTable columnOrder entry \"${value}\" must not contain surrounding whitespace.`,\n );\n }\n if (ids.has(columnId)) {\n throw new Error(\n `BaseTable columnOrder contains duplicate id \"${columnId}\".`,\n );\n }\n if (knownColumnIds && !knownColumnIds.has(columnId)) {\n throw new Error(\n `BaseTable columnOrder contains unknown column id \"${columnId}\".`,\n );\n }\n ids.add(columnId);\n });\n\n if (knownColumnIds && ids.size !== knownColumnIds.size) {\n const missing = [...knownColumnIds].filter((columnId) => !ids.has(columnId));\n throw new Error(\n `BaseTable columnOrder must contain every configured column id; missing ${missing\n .map((columnId) => `\"${columnId}\"`)\n .join(', ')}.`,\n );\n }\n}\n\nfunction validateColumnSizes(columnSizes: unknown, knownColumnIds?: Set<string>) {\n if (columnSizes === undefined) return;\n if (\n !columnSizes ||\n typeof columnSizes !== 'object' ||\n Array.isArray(columnSizes) ||\n ![Object.prototype, null].includes(Object.getPrototypeOf(columnSizes))\n ) {\n throw new Error(\n 'BaseTable columnSizes must be a plain record when provided.',\n );\n }\n\n Object.entries(columnSizes).forEach(([columnId, value]) => {\n const normalizedColumnId = columnId.trim();\n if (normalizedColumnId.length === 0) {\n throw new Error('BaseTable columnSizes keys must be non-empty strings.');\n }\n if (columnId !== normalizedColumnId) {\n throw new Error(\n `BaseTable columnSizes key \"${columnId}\" must not contain surrounding whitespace.`,\n );\n }\n if (knownColumnIds && !knownColumnIds.has(normalizedColumnId)) {\n throw new Error(\n `BaseTable columnSizes contains unknown column id \"${columnId}\".`,\n );\n }\n validateCssSizeValue(value, `columnSizes[\"${columnId}\"]`);\n });\n}\n\nfunction isRtl(element: HTMLElement) {\n const ownerWindow = element.ownerDocument.defaultView;\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element).direction === 'rtl';\n }\n return element.closest('[dir=\"rtl\"]') !== null;\n}\n\nfunction setPointerCaptureIfAvailable(target: HTMLElement, pointerId: number) {\n if (!target.setPointerCapture) return;\n try {\n target.setPointerCapture(pointerId);\n } catch (error) {\n const OwnerDOMException = target.ownerDocument.defaultView?.DOMException;\n if (\n OwnerDOMException &&\n error instanceof OwnerDOMException &&\n error.name === 'NotFoundError'\n ) {\n return;\n }\n throw error;\n }\n}\n\ntype BaseTableContextValue = BaseTableColumnInteractionOptions & {\n appearance?: BaseAppearance;\n theme: BaseResolvedTheme;\n layout: BaseTableLayout;\n columnTemplate?: string;\n bodyMaxHeight?: number | string;\n bodyClassName?: string;\n splitHeaderRef?: MutableRefObject<HTMLTableSectionElement | null>;\n splitFooterRef?: MutableRefObject<HTMLTableSectionElement | null>;\n draggingColumnId?: string;\n setDraggingColumnId: (columnId?: string) => void;\n};\n\nconst BaseTableContext = createContext<BaseTableContextValue | null>(null);\n\nfunction useBaseTableContext(appearance?: BaseAppearance) {\n const context = useContext(BaseTableContext);\n const providerAppearance = useMonkeysBaseAppearance(appearance);\n if (context) {\n const resolvedAppearance =\n appearance === undefined ? context.appearance : providerAppearance;\n return {\n ...context,\n theme:\n appearance === undefined\n ? context.theme\n : resolveBaseAppearance(resolvedAppearance),\n appearance: resolvedAppearance,\n };\n }\n\n const theme = resolveBaseAppearance(providerAppearance);\n return {\n appearance: providerAppearance,\n theme,\n layout: 'native',\n setDraggingColumnId: () => {},\n } satisfies BaseTableContextValue;\n}\n\nfunction hasSplitScrollTable(children: ReactNode): boolean {\n let found = false;\n\n Children.forEach(children, (child) => {\n if (found || !isValidElement(child)) return;\n\n const childProps = child.props as {\n children?: ReactNode;\n layout?: unknown;\n };\n\n if (childProps.layout === 'split-scroll') {\n found = true;\n return;\n }\n\n if (childProps.children) {\n found = hasSplitScrollTable(childProps.children);\n }\n });\n\n return found;\n}\n\nfunction toCssSize(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction validateTableCssSize(\n value: number | string | undefined,\n property: string,\n) {\n if (value === undefined) return undefined;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable ${property} must be a finite non-negative number when numeric.`,\n );\n }\n return `${value}px`;\n }\n\n if (value.trim().length === 0) {\n throw new Error(`BaseTable ${property} must not be an empty CSS size.`);\n }\n\n return value;\n}\n\nfunction validateCssSize(\n value: number | string | undefined,\n columnId: string,\n property: string,\n) {\n if (value === undefined) return undefined;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has invalid ${property}. Expected a finite non-negative number.`,\n );\n }\n return `${value}px`;\n }\n\n if (value.trim().length === 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has an empty ${property} value.`,\n );\n }\n\n return value;\n}\n\nfunction validateNumericSize(\n value: number | string | undefined,\n columnId: string,\n property: string,\n) {\n if (value === undefined || typeof value !== 'number') return undefined;\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has invalid ${property}. Expected a finite non-negative number.`,\n );\n }\n return value;\n}\n\nfunction buildSplitColumnTemplate(\n columns: BaseTableColumnDefinition[] | undefined,\n columnSizes: BaseTableColumnInteractionOptions['columnSizes'],\n) {\n if (!columns?.length) {\n throw new Error(\n 'BaseTable layout=\"split-scroll\" requires at least one column definition.',\n );\n }\n\n const seenColumnIds = new Set<string>();\n const tracks = columns.map((column, index) => {\n const columnId = column.id.trim();\n if (!columnId) {\n throw new Error(\n `BaseTable split-scroll column at index ${index} requires a non-empty id.`,\n );\n }\n if (seenColumnIds.has(columnId)) {\n throw new Error(\n `BaseTable layout=\"split-scroll\" received duplicate column id \"${columnId}\".`,\n );\n }\n seenColumnIds.add(columnId);\n\n const columnSize = columnSizes?.[columnId];\n const numericMinWidth = validateNumericSize(column.minWidth, columnId, 'minWidth');\n const numericMaxWidth = validateNumericSize(column.maxWidth, columnId, 'maxWidth');\n if (\n numericMinWidth !== undefined &&\n numericMaxWidth !== undefined &&\n numericMaxWidth < numericMinWidth\n ) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has maxWidth smaller than minWidth.`,\n );\n }\n\n const minWidth = validateCssSize(column.minWidth, columnId, 'minWidth');\n const maxWidth = validateCssSize(column.maxWidth, columnId, 'maxWidth');\n const baseWidth =\n columnSize !== undefined\n ? clampWidth(columnSize, numericMinWidth, numericMaxWidth)\n : column.width;\n const width = validateCssSize(baseWidth, columnId, 'width');\n if (width) return width;\n\n return `minmax(${minWidth ?? '0px'}, ${maxWidth ?? '1fr'})`;\n });\n\n return `${tracks.join(' ')} var(--base-table-split-scrollbar-gutter)`;\n}\n\nfunction clampWidth(value: number, minWidth?: number, maxWidth?: number) {\n const min = minWidth ?? 48;\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getNextColumnOrder(\n order: string[] | undefined,\n columnId: string,\n targetColumnId: string,\n) {\n if (!order || columnId === targetColumnId) return undefined;\n const fromIndex = order.indexOf(columnId);\n const toIndex = order.indexOf(targetColumnId);\n if (fromIndex < 0 || toIndex < 0) return undefined;\n\n const next = [...order];\n const [moved] = next.splice(fromIndex, 1);\n next.splice(toIndex, 0, moved);\n return next;\n}\n\nfunction sortAriaValue(direction?: BaseTableSortDirection) {\n switch (direction) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return undefined;\n }\n}\n\nfunction getSplitHeadJustifyContent(align: BaseTableAlign) {\n switch (align) {\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n default:\n return 'flex-start';\n }\n}\n\nfunction getSplitHeadAlignItems(verticalAlign: BaseTableVerticalAlign) {\n switch (verticalAlign) {\n case 'top':\n return 'flex-start';\n case 'bottom':\n return 'flex-end';\n default:\n return 'center';\n }\n}\n\nfunction SortIndicator({\n direction,\n className,\n}: {\n direction?: BaseTableSortDirection;\n className?: string;\n}) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n className,\n direction === 'desc' && 'rotate-180',\n (!direction || direction === 'none') && 'opacity-45',\n )}\n >\n ▲\n </span>\n );\n}\n\nfunction DragHandleIcon() {\n return (\n <span aria-hidden=\"true\" className=\"grid gap-0.5\">\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n </span>\n );\n}\n\nexport const BaseTableContainer = forwardRef<\n HTMLDivElement,\n BaseTableContainerProps\n>(function BaseTableContainer(\n {\n appearance,\n attachedFooter = false,\n children,\n className,\n classNames,\n style,\n ...containerProps\n },\n ref,\n) {\n assertBoolean('attachedFooter', attachedFooter);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const containsSplitScrollTable = hasSplitScrollTable(children);\n const splitScrollContainerStyle = containsSplitScrollTable\n ? ({\n overflow: 'hidden',\n scrollbarGutter: 'auto',\n } as CSSProperties)\n : undefined;\n\n return (\n <div\n {...componentAttributes}\n {...containerProps}\n ref={ref}\n data-monkeys-component=\"table-container\"\n data-slot=\"container\"\n data-base-table-container=\"\"\n data-attached-footer={attachedFooter ? '' : undefined}\n className={cn(\n theme.slots.tableContainer,\n attachedFooter && theme.slots.tableContainerFooterAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableContainer,\n ...(attachedFooter ? theme.styles.tableContainerFooterAttached : undefined),\n ...splitScrollContainerStyle,\n ...style,\n }}\n >\n {children}\n </div>\n );\n});\n\nexport const BaseTable = forwardRef<HTMLTableElement, BaseTableProps>(\n function BaseTable(\n {\n appearance,\n className,\n classNames,\n style,\n layout = 'native',\n columns,\n bodyMaxHeight,\n bodyClassName,\n columnOrder,\n columnSizes,\n columnDragEnabled = false,\n columnResizeEnabled = false,\n onColumnOrderChange,\n onColumnSizeChange,\n ...tableProps\n },\n ref,\n ) {\n assertEnum('layout', layout, ['native', 'split-scroll'] as const);\n assertBoolean('columnDragEnabled', columnDragEnabled);\n assertBoolean('columnResizeEnabled', columnResizeEnabled);\n assertOptionalFunction('onColumnOrderChange', onColumnOrderChange);\n assertOptionalFunction('onColumnSizeChange', onColumnSizeChange);\n validateCssSizeValue(bodyMaxHeight, 'bodyMaxHeight', { stringAllowed: true });\n const knownColumnIds = validateColumns(columns);\n validateColumnOrder(columnOrder, knownColumnIds);\n validateColumnSizes(columnSizes, knownColumnIds);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [draggingColumnId, setDraggingColumnId] = useState<string | undefined>();\n const splitHeaderRef = useRef<HTMLTableSectionElement | null>(null);\n const splitFooterRef = useRef<HTMLTableSectionElement | null>(null);\n const isSplitScroll = layout === 'split-scroll';\n const columnTemplate = isSplitScroll\n ? buildSplitColumnTemplate(columns, columnSizes)\n : undefined;\n const contextValue: BaseTableContextValue = {\n appearance: resolvedAppearance,\n theme,\n layout,\n columnTemplate,\n bodyMaxHeight,\n bodyClassName,\n splitHeaderRef,\n splitFooterRef,\n columnOrder,\n columnSizes,\n columnDragEnabled,\n columnResizeEnabled,\n onColumnOrderChange,\n onColumnSizeChange,\n draggingColumnId,\n setDraggingColumnId,\n };\n\n return (\n <BaseTableContext.Provider value={contextValue}>\n <table\n {...componentAttributes}\n {...tableProps}\n ref={ref}\n data-monkeys-component=\"table\"\n data-slot=\"root\"\n data-base-table-layout={layout}\n className={cn(\n theme.slots.tableRoot,\n isSplitScroll && theme.slots.tableSplitRoot,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.table,\n ...(isSplitScroll ? theme.styles.tableSplitRoot : undefined),\n ...(columnTemplate\n ? ({\n '--base-table-column-template': columnTemplate,\n } as CSSProperties)\n : undefined),\n ...style,\n }}\n />\n </BaseTableContext.Provider>\n );\n});\n\nexport const BaseTableHeader = forwardRef<\n HTMLTableSectionElement,\n BaseTableHeaderProps\n>(function BaseTableHeader(\n { appearance, className, classNames, style, ...headerProps },\n ref,\n) {\n const { layout, splitHeaderRef, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const setHeaderRef = (node: HTMLTableSectionElement | null) => {\n if (splitHeaderRef) splitHeaderRef.current = isSplitScroll ? node : null;\n assignRef(ref, node);\n };\n\n return (\n <thead\n {...headerProps}\n ref={setHeaderRef}\n data-slot=\"header\"\n className={cn(\n theme.slots.tableHeader,\n isSplitScroll && theme.slots.tableSplitHeader,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHeader,\n ...(isSplitScroll ? theme.styles.tableSplitHeader : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableBody = forwardRef<\n HTMLTableSectionElement,\n BaseTableBodyProps\n>(function BaseTableBody(\n { appearance, className, classNames, onScroll, style, ...bodyProps },\n ref,\n) {\n const {\n bodyClassName,\n bodyMaxHeight,\n layout,\n splitFooterRef,\n splitHeaderRef,\n theme,\n } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const handleScroll = isSplitScroll\n ? (event: ReactUIEvent<HTMLTableSectionElement>) => {\n const scrollLeft = event.currentTarget.scrollLeft;\n\n if (splitHeaderRef?.current) {\n splitHeaderRef.current.scrollLeft = scrollLeft;\n }\n if (splitFooterRef?.current) {\n splitFooterRef.current.scrollLeft = scrollLeft;\n }\n onScroll?.(event);\n }\n : onScroll;\n\n return (\n <tbody\n {...bodyProps}\n ref={ref}\n data-slot=\"body\"\n onScroll={handleScroll}\n className={cn(\n theme.slots.tableBody,\n isSplitScroll && theme.slots.tableSplitBody,\n isSplitScroll && bodyClassName,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableBody,\n ...(isSplitScroll ? theme.styles.tableSplitBody : undefined),\n ...(isSplitScroll && bodyMaxHeight !== undefined\n ? { maxHeight: validateTableCssSize(bodyMaxHeight, 'bodyMaxHeight') }\n : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableFooter = forwardRef<\n HTMLTableSectionElement,\n BaseTableFooterProps\n>(function BaseTableFooter(\n { appearance, className, classNames, style, ...footerProps },\n ref,\n) {\n const { layout, splitFooterRef, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const setFooterRef = (node: HTMLTableSectionElement | null) => {\n if (splitFooterRef) splitFooterRef.current = isSplitScroll ? node : null;\n assignRef(ref, node);\n };\n\n return (\n <tfoot\n {...footerProps}\n ref={setFooterRef}\n data-slot=\"footer\"\n className={cn(\n theme.slots.tableFooter,\n isSplitScroll && theme.slots.tableSplitFooter,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableFooter,\n ...(isSplitScroll ? theme.styles.tableSplitFooter : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableRow = forwardRef<HTMLTableRowElement, BaseTableRowProps>(\n function BaseTableRow(\n {\n interactive,\n selected,\n disabled,\n appearance,\n className,\n classNames,\n style,\n ...rowProps\n },\n ref,\n ) {\n assertBoolean('interactive', interactive);\n assertBoolean('selected', selected);\n assertBoolean('disabled', disabled);\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <tr\n {...rowProps}\n ref={ref}\n data-slot=\"row\"\n aria-disabled={disabled || undefined}\n data-state={selected ? 'selected' : undefined}\n className={cn(\n theme.slots.tableRow,\n isSplitScroll && theme.slots.tableSplitRow,\n interactive && !disabled && theme.slots.tableRowInteractive,\n selected && theme.slots.tableRowSelected,\n disabled && theme.slots.tableRowDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableRow,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableHead = forwardRef<HTMLTableCellElement, BaseTableHeadProps>(function BaseTableHead({\n columnId,\n align,\n verticalAlign,\n icon,\n label,\n description,\n meta,\n actions,\n trailing,\n sortable,\n sortDirection = 'none',\n sortLabel,\n onSort,\n draggable,\n dragLabel,\n resizable,\n resizeLabel,\n width,\n minWidth,\n maxWidth,\n appearance,\n className,\n classNames,\n style,\n children,\n onDragOver,\n onDrop,\n ...headProps\n}, forwardedRef) {\n assertEnum('head align', align, ['left', 'center', 'right'] as const);\n assertEnum('head verticalAlign', verticalAlign, [\n 'top',\n 'middle',\n 'bottom',\n ] as const);\n assertEnum('head sortDirection', sortDirection, [\n 'asc',\n 'desc',\n 'none',\n ] as const);\n assertBoolean('head sortable', sortable);\n assertBoolean('head draggable', draggable);\n assertBoolean('head resizable', resizable);\n assertOptionalFunction('head onSort', onSort);\n assertOptionalLabel('head sortLabel', sortLabel);\n assertOptionalLabel('head dragLabel', dragLabel);\n assertOptionalLabel('head resizeLabel', resizeLabel);\n if (\n columnId !== undefined &&\n (typeof columnId !== 'string' || columnId.trim().length === 0)\n ) {\n throw new Error(\n 'BaseTable head columnId must be a non-empty string when provided.',\n );\n }\n validateCssSizeValue(width, 'head width', { stringAllowed: true });\n validateCssSizeValue(minWidth, 'head minWidth');\n validateCssSizeValue(maxWidth, 'head maxWidth');\n if (\n minWidth !== undefined &&\n maxWidth !== undefined &&\n minWidth > maxWidth\n ) {\n throw new Error('BaseTable head minWidth cannot be greater than maxWidth.');\n }\n const tableContext = useBaseTableContext(appearance);\n const { theme } = tableContext;\n const messages = useMonkeysLocaleMessages().table;\n const isSplitScroll = tableContext.layout === 'split-scroll';\n const resolvedAlign = align ?? (isSplitScroll ? 'center' : 'left');\n const resolvedVerticalAlign = verticalAlign ?? 'middle';\n const headRef = useRef<HTMLTableCellElement | null>(null);\n const resizeCleanupRef = useRef<() => void>(() => {});\n const [measuredWidth, setMeasuredWidth] = useState<number>();\n const setHeadRef = (node: HTMLTableCellElement | null) => {\n headRef.current = node;\n assignRef(forwardedRef, node);\n };\n const controlledWidth =\n columnId && tableContext.columnSizes?.[columnId] !== undefined\n ? tableContext.columnSizes[columnId]\n : width;\n const canDrag = Boolean(\n columnId &&\n draggable !== false &&\n (draggable || tableContext.columnDragEnabled) &&\n tableContext.columnOrder &&\n tableContext.onColumnOrderChange,\n );\n const canResize = Boolean(\n columnId &&\n resizable !== false &&\n (resizable || tableContext.columnResizeEnabled) &&\n tableContext.onColumnSizeChange,\n );\n if (\n canResize &&\n maxWidth !== undefined &&\n maxWidth < (minWidth ?? 48)\n ) {\n throw new Error(\n 'BaseTable resizable head maxWidth cannot be smaller than its effective minWidth.',\n );\n }\n const interactiveSort = Boolean(sortable || onSort);\n const ariaSort = sortAriaValue(sortDirection);\n\n const content = hasRenderableNode(label) ? label : children;\n const hasVisibleSortName =\n hasRenderableNode(content) || hasRenderableNode(description);\n const sortAccessibleName =\n sortLabel ??\n (!hasVisibleSortName\n ? messages.sortColumn({ columnId: columnId?.trim() || undefined })\n : undefined);\n const usesRichHeader =\n canDrag ||\n hasRenderableNode(icon) ||\n hasRenderableNode(label) ||\n hasRenderableNode(description) ||\n hasRenderableNode(meta) ||\n hasRenderableNode(actions) ||\n hasRenderableNode(trailing) ||\n interactiveSort;\n const renderedContent =\n usesRichHeader ? (\n <div className={cn(theme.slots.tableHeadContent, classNames?.content)}>\n <div className={cn(theme.slots.tableHeadMain, classNames?.main)}>\n {canDrag ? (\n <button\n type=\"button\"\n draggable\n title={dragLabel}\n aria-label={\n dragLabel ?? messages.dragColumn({ columnId: columnId as string })\n }\n className={cn(theme.slots.tableHeadDragHandle, classNames?.dragHandle)}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => {\n if (\n !columnId ||\n !tableContext.columnOrder ||\n (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')\n ) {\n return;\n }\n const currentIndex = tableContext.columnOrder.indexOf(columnId);\n if (currentIndex < 0) return;\n const rtl = isRtl(event.currentTarget);\n const physicalDelta = event.key === 'ArrowLeft' ? -1 : 1;\n const nextIndex = currentIndex + (rtl ? -physicalDelta : physicalDelta);\n const targetColumnId = tableContext.columnOrder[nextIndex];\n if (!targetColumnId) return;\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n columnId,\n targetColumnId,\n );\n if (!nextOrder) return;\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId,\n targetColumnId,\n });\n }}\n onDragStart={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(columnId);\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData(DATA_TRANSFER_COLUMN_TYPE, columnId as string);\n }}\n onDragEnd={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(undefined);\n }}\n >\n <DragHandleIcon />\n </button>\n ) : null}\n {icon ? (\n <span className={cn(theme.slots.tableHeadIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {interactiveSort ? (\n <button\n type=\"button\"\n disabled={!onSort}\n title={sortLabel}\n aria-label={sortAccessibleName}\n className={cn(theme.slots.tableHeadSortButton, classNames?.sortButton)}\n onClick={(event) => {\n event.stopPropagation();\n onSort?.(columnId);\n }}\n >\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n <SortIndicator\n direction={sortDirection}\n className={cn(theme.slots.tableHeadSortIcon, classNames?.sortIcon)}\n />\n </button>\n ) : (\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n )}\n </div>\n {hasRenderableNode(meta) || hasRenderableNode(actions) || hasRenderableNode(trailing) ? (\n <div className={cn(theme.slots.tableHeadActions, classNames?.actions)}>\n {hasRenderableNode(meta) ? (\n <span className={cn(theme.slots.tableHeadMeta, classNames?.meta)}>\n {meta}\n </span>\n ) : null}\n {actions}\n {trailing}\n </div>\n ) : null}\n </div>\n ) : (\n children\n );\n\n const handleDragOver = (event: DragEvent<HTMLTableCellElement>) => {\n onDragOver?.(event);\n if (!canDrag || !tableContext.draggingColumnId || tableContext.draggingColumnId === columnId) {\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = 'move';\n };\n\n const handleDrop = (event: DragEvent<HTMLTableCellElement>) => {\n onDrop?.(event);\n if (!canDrag || !columnId) return;\n const sourceColumnId =\n tableContext.draggingColumnId ||\n event.dataTransfer.getData(DATA_TRANSFER_COLUMN_TYPE);\n if (!sourceColumnId || sourceColumnId === columnId) return;\n\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n sourceColumnId,\n columnId,\n );\n if (nextOrder) {\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId: sourceColumnId,\n targetColumnId: columnId,\n });\n }\n tableContext.setDraggingColumnId(undefined);\n };\n\n const handleResizePointerDown = (event: ReactPointerEvent<HTMLButtonElement>) => {\n if (\n !canResize ||\n !columnId ||\n !tableContext.onColumnSizeChange ||\n (event.button !== 0 && event.pointerType !== 'touch')\n ) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n resizeCleanupRef.current();\n\n const startX = event.clientX;\n const currentWidth =\n currentResizeWidth ?? headRef.current?.offsetWidth ?? minWidth ?? 48;\n const previousWidth = clampWidth(currentWidth, minWidth, maxWidth);\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n const ownerDocument = target.ownerDocument;\n const rtl = isRtl(target);\n\n const handlePointerMove = (moveEvent: PointerEvent) => {\n if (moveEvent.pointerId !== pointerId) return;\n const nextWidth = clampWidth(\n previousWidth + (rtl ? startX - moveEvent.clientX : moveEvent.clientX - startX),\n minWidth,\n maxWidth,\n );\n tableContext.onColumnSizeChange?.(columnId, nextWidth, {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n });\n };\n\n const handleStop = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n resizeCleanupRef.current();\n };\n const handleLostCapture = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n resizeCleanupRef.current();\n };\n\n resizeCleanupRef.current = () => {\n ownerDocument.removeEventListener('pointermove', handlePointerMove);\n ownerDocument.removeEventListener('pointerup', handleStop);\n ownerDocument.removeEventListener('pointercancel', handleStop);\n target.removeEventListener('lostpointercapture', handleLostCapture);\n if (target.hasPointerCapture?.(pointerId)) {\n target.releasePointerCapture?.(pointerId);\n }\n resizeCleanupRef.current = () => {};\n };\n setPointerCaptureIfAvailable(target, pointerId);\n ownerDocument.addEventListener('pointermove', handlePointerMove);\n ownerDocument.addEventListener('pointerup', handleStop);\n ownerDocument.addEventListener('pointercancel', handleStop);\n target.addEventListener('lostpointercapture', handleLostCapture);\n };\n\n const currentResizeWidth =\n typeof controlledWidth === 'number'\n ? clampWidth(controlledWidth, minWidth, maxWidth)\n : measuredWidth;\n const announcedResizeWidth =\n currentResizeWidth ?? clampWidth(minWidth ?? 48, minWidth, maxWidth);\n\n const handleResizeKeyDown = (\n event: ReactKeyboardEvent<HTMLButtonElement>,\n ) => {\n if (!canResize || !columnId || !tableContext.onColumnSizeChange) return;\n const rtl = isRtl(event.currentTarget);\n const previousWidth =\n currentResizeWidth ??\n clampWidth(\n headRef.current?.offsetWidth || minWidth || 48,\n minWidth,\n maxWidth,\n );\n let nextWidth: number | undefined;\n if (event.key === 'ArrowLeft') {\n nextWidth = previousWidth + (rtl ? COLUMN_RESIZE_KEYBOARD_STEP : -COLUMN_RESIZE_KEYBOARD_STEP);\n }\n if (event.key === 'ArrowRight') {\n nextWidth = previousWidth + (rtl ? -COLUMN_RESIZE_KEYBOARD_STEP : COLUMN_RESIZE_KEYBOARD_STEP);\n }\n if (event.key === 'Home' && minWidth !== undefined) nextWidth = minWidth;\n if (event.key === 'End' && maxWidth !== undefined) nextWidth = maxWidth;\n if (nextWidth === undefined) return;\n event.preventDefault();\n event.stopPropagation();\n tableContext.onColumnSizeChange(\n columnId,\n clampWidth(nextWidth, minWidth, maxWidth),\n {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n },\n );\n };\n\n useEffect(() => {\n if (typeof controlledWidth === 'number') {\n setMeasuredWidth(undefined);\n return;\n }\n const measured = headRef.current?.getBoundingClientRect().width;\n if (measured && Number.isFinite(measured)) {\n const nextWidth = clampWidth(measured, minWidth, maxWidth);\n setMeasuredWidth((current) =>\n current === nextWidth ? current : nextWidth,\n );\n }\n }, [controlledWidth, minWidth, maxWidth, canResize]);\n\n useEffect(() => {\n if (!canResize) resizeCleanupRef.current();\n return () => resizeCleanupRef.current();\n }, [canResize, columnId, tableContext.onColumnSizeChange]);\n\n return (\n <th\n {...headProps}\n ref={setHeadRef}\n data-slot=\"head\"\n scope={headProps.scope ?? 'col'}\n aria-sort={ariaSort}\n className={cn(\n theme.slots.tableHead,\n isSplitScroll && theme.slots.tableSplitHead,\n resolvedAlign === 'center' && theme.slots.tableCellAlignCenter,\n resolvedAlign === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHead,\n ...(isSplitScroll ? theme.styles.tableSplitHead : undefined),\n width: isSplitScroll ? undefined : toCssSize(controlledWidth),\n minWidth: isSplitScroll ? undefined : toCssSize(minWidth),\n maxWidth: isSplitScroll ? undefined : toCssSize(maxWidth),\n ...(isSplitScroll\n ? {\n alignItems: getSplitHeadAlignItems(resolvedVerticalAlign),\n justifyContent: getSplitHeadJustifyContent(resolvedAlign),\n textAlign: resolvedAlign,\n }\n : verticalAlign\n ? { verticalAlign }\n : undefined),\n ...style,\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n {renderedContent}\n {canResize ? (\n <button\n type=\"button\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-valuenow={announcedResizeWidth}\n aria-valuemin={minWidth ?? 48}\n aria-valuemax={maxWidth}\n aria-valuetext={`${announcedResizeWidth}px`}\n title={resizeLabel}\n aria-label={\n resizeLabel ?? messages.resizeColumn({ columnId: columnId as string })\n }\n className={cn(theme.slots.tableHeadResizeHandle, classNames?.resizeHandle)}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={handleResizeKeyDown}\n onPointerDown={handleResizePointerDown}\n />\n ) : null}\n </th>\n );\n});\n\nexport const BaseTableCell = forwardRef<HTMLTableCellElement, BaseTableCellProps>(\n function BaseTableCell(\n {\n align = 'left',\n appearance,\n className,\n classNames,\n style,\n ...cellProps\n },\n ref,\n ) {\n assertEnum('cell align', align, ['left', 'center', 'right'] as const);\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <td\n {...cellProps}\n ref={ref}\n data-slot=\"cell\"\n className={cn(\n theme.slots.tableCell,\n isSplitScroll && theme.slots.tableSplitCell,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableCell,\n ...(isSplitScroll ? theme.styles.tableSplitCell : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableCaption = forwardRef<\n HTMLTableCaptionElement,\n BaseTableCaptionProps\n>(function BaseTableCaption(\n { appearance, className, classNames, style, ...captionProps },\n ref,\n) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <caption\n {...captionProps}\n ref={ref}\n data-slot=\"caption\"\n className={cn(theme.slots.tableCaption, classNames?.root, className)}\n style={{\n ...theme.styles.tableCaption,\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableEmpty = forwardRef<HTMLTableRowElement, BaseTableEmptyProps>(\n function BaseTableEmpty(\n {\n colSpan,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...emptyProps\n },\n ref,\n ) {\n if (!Number.isSafeInteger(colSpan) || colSpan < 1) {\n throw new Error('BaseTable empty colSpan must be a positive safe integer.');\n }\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const hasStructuredContent =\n hasRenderableNode(icon) ||\n hasRenderableNode(title) ||\n hasRenderableNode(description) ||\n hasRenderableNode(actions);\n\n return (\n <tr\n {...emptyProps}\n ref={ref}\n data-slot=\"empty-row\"\n className={cn(\n theme.slots.tableEmptyRow,\n isSplitScroll && theme.slots.tableSplitRow,\n classNames?.row,\n className,\n )}\n style={{\n ...theme.styles.tableEmpty,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n >\n <td\n colSpan={colSpan}\n data-slot=\"empty-cell\"\n className={cn(\n theme.slots.tableEmptyCell,\n isSplitScroll && theme.slots.tableSplitCell,\n classNames?.cell,\n )}\n style={isSplitScroll ? { gridColumn: '1 / -1' } : undefined}\n >\n {hasStructuredContent ? (\n <div className={cn(theme.slots.tableEmptyContent, classNames?.content)}>\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.tableEmptyIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.tableEmptyTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.tableEmptyDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableEmptyActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n ) : (\n children\n )}\n </td>\n </tr>\n );\n});\n\nexport function BaseTableLoading({\n rows = 3,\n columns,\n columnWidths = [],\n animated = true,\n rowLabel,\n appearance,\n className,\n classNames,\n style,\n}: BaseTableLoadingProps) {\n if (!Number.isSafeInteger(rows) || rows < 0) {\n throw new Error(\n 'BaseTable loading rows must be a non-negative safe integer.',\n );\n }\n if (!Number.isSafeInteger(columns) || columns < 1) {\n throw new Error(\n 'BaseTable loading columns must be a positive safe integer.',\n );\n }\n if (!Array.isArray(columnWidths)) {\n throw new Error('BaseTable loading columnWidths must be an array.');\n }\n columnWidths.forEach((value, index) =>\n validateCssSizeValue(value, `loading columnWidths[${index}]`, {\n stringAllowed: true,\n }),\n );\n assertBoolean('loading animated', animated);\n assertOptionalLabel('loading rowLabel', rowLabel);\n const { layout, theme } = useBaseTableContext(appearance);\n const messages = useMonkeysLocaleMessages().table;\n const resolvedRowLabel = rowLabel ?? messages.loadingRow;\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <>\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <tr\n key={rowIndex}\n data-slot=\"loading-row\"\n aria-label={`${resolvedRowLabel} ${rowIndex + 1}`}\n aria-busy=\"true\"\n className={cn(\n theme.slots.tableLoadingRow,\n isSplitScroll && theme.slots.tableSplitRow,\n classNames?.row,\n className,\n )}\n style={{\n ...theme.styles.tableLoading,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n >\n {Array.from({ length: columns }).map((__, columnIndex) => (\n <td\n key={columnIndex}\n data-slot=\"loading-cell\"\n className={cn(\n theme.slots.tableLoadingCell,\n isSplitScroll && theme.slots.tableSplitCell,\n classNames?.cell,\n )}\n >\n <div\n aria-hidden=\"true\"\n data-slot=\"loading-skeleton\"\n className={cn(\n theme.slots.tableLoadingSkeleton,\n animated && 'animate-pulse motion-reduce:animate-none',\n classNames?.skeleton,\n )}\n style={{\n width: toCssSize(columnWidths[columnIndex]),\n }}\n />\n </td>\n ))}\n </tr>\n ))}\n </>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTableFooterBarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseTableFooterBar = forwardRef<\n HTMLDivElement,\n BaseTableFooterBarProps\n>(function BaseTableFooterBar(\n {\n appearance,\n leading,\n actions,\n attached = true,\n children,\n className,\n classNames,\n style,\n ...footerBarProps\n },\n ref,\n) {\n if (typeof attached !== 'boolean') {\n throw new Error('BaseTableFooterBar attached must be a boolean.');\n }\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...footerBarProps}\n ref={ref}\n data-monkeys-component=\"table-footer-bar\"\n data-slot=\"footer-bar\"\n data-base-table-footer-bar=\"\"\n data-attached={attached ? '' : undefined}\n className={cn(\n theme.slots.tableFooterBar,\n attached && theme.slots.tableFooterBarAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableFooterBar,\n ...style,\n }}\n >\n {hasRenderableNode(leading) ? (\n <div className={cn(theme.slots.tableFooterBarLeading, classNames?.leading)}>\n {leading}\n </div>\n ) : null}\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.tableFooterBarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableFooterBarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n});\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTabsItem, BaseTabsProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateTabsProps({\n items,\n value,\n defaultValue,\n orientation,\n activationMode,\n}: Pick<\n BaseTabsProps,\n 'activationMode' | 'defaultValue' | 'items' | 'orientation' | 'value'\n>) {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseTabs items must be an array.');\n }\n if (value !== undefined && typeof value !== 'string') {\n throw new TypeError('BaseTabs value must be a string.');\n }\n if (defaultValue !== undefined && typeof defaultValue !== 'string') {\n throw new TypeError('BaseTabs defaultValue must be a string.');\n }\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseTabs orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (activationMode !== 'automatic' && activationMode !== 'manual') {\n throw new TypeError(\n 'BaseTabs activationMode must be \"automatic\" or \"manual\".',\n );\n }\n\n const values = new Set<string>();\n items.forEach((item, index) => {\n if (!item || typeof item !== 'object') {\n throw new TypeError(`BaseTabs item at index ${index} must be an object.`);\n }\n if (typeof item.value !== 'string') {\n throw new TypeError(\n `BaseTabs item value at index ${index} must be a string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n 'BaseTabs items must use unique values; ' +\n `duplicate value ${JSON.stringify(item.value)} at index ${index}.`,\n );\n }\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseTabs item disabled at index ${index} must be a boolean.`,\n );\n }\n values.add(item.value);\n });\n}\n\nfunction getResolvedValue(items: BaseTabsItem[], candidate?: string) {\n if (\n candidate !== undefined &&\n items.some((item) => item.value === candidate && !item.disabled)\n ) {\n return candidate;\n }\n return items.find((item) => !item.disabled)?.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nfunction getDomIdFragments(items: BaseTabsItem[]) {\n const usedFragments = new Set<string>();\n\n return items.map((item, index) => {\n const baseFragment = toDomId(item.value);\n let fragment = baseFragment;\n\n if (usedFragments.has(fragment)) {\n fragment = `${baseFragment}-${index}`;\n while (usedFragments.has(fragment)) {\n fragment = `${fragment}-${index}`;\n }\n }\n\n usedFragments.add(fragment);\n return fragment;\n });\n}\n\nfunction getHorizontalStep(\n event: KeyboardEvent<HTMLButtonElement>,\n key: 'ArrowLeft' | 'ArrowRight',\n) {\n const view = event.currentTarget.ownerDocument.defaultView;\n const direction = view?.getComputedStyle(event.currentTarget).direction;\n const rtl = direction === 'rtl';\n\n if (key === 'ArrowRight') return rtl ? -1 : 1;\n return rtl ? 1 : -1;\n}\n\nexport const BaseTabs = forwardRef<HTMLDivElement, BaseTabsProps>(\n function BaseTabs(\n {\n items = [],\n value,\n defaultValue,\n orientation = 'horizontal',\n activationMode = 'automatic',\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n 'aria-label': tablistAriaLabel,\n 'aria-labelledby': tablistAriaLabelledBy,\n ...tabsProps\n },\n ref,\n ) {\n validateTabsProps({\n items,\n value,\n defaultValue,\n orientation,\n activationMode,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const initialCandidate = value !== undefined ? value : defaultValue;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getResolvedValue(items, defaultValue),\n );\n const [focusedValue, setFocusedValue] = useState(() =>\n getResolvedValue(items, initialCandidate),\n );\n const triggerRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const isControlled = value !== undefined;\n const selectedValue = getResolvedValue(\n items,\n isControlled ? value : uncontrolledValue,\n );\n const selectedIndex = items.findIndex(\n (item) => item.value === selectedValue && !item.disabled,\n );\n const selectedItem = selectedIndex >= 0 ? items[selectedIndex] : undefined;\n const enabledIndices = items.reduce<number[]>((indices, item, index) => {\n if (!item.disabled) indices.push(index);\n return indices;\n }, []);\n const storedFocusIndex = items.findIndex(\n (item) => item.value === focusedValue && !item.disabled,\n );\n const rovingIndex =\n storedFocusIndex >= 0 ? storedFocusIndex : selectedIndex;\n const idFragments = getDomIdFragments(items);\n const groupState = selectedItem ? 'active' : 'disabled';\n const layerDirection =\n typeof tabsProps.dir === 'string'\n ? tabsProps.dir\n : componentAttributes.dir;\n\n const activateItem = (item: BaseTabsItem) => {\n if (item.disabled) return;\n if (!isControlled) {\n setUncontrolledValue(item.value);\n }\n onValueChange?.(item.value);\n };\n\n const moveFocus = (\n event: KeyboardEvent<HTMLButtonElement>,\n targetIndex: number,\n ) => {\n const targetItem = items[targetIndex];\n if (!targetItem || targetItem.disabled) return;\n\n event.preventDefault();\n setFocusedValue(targetItem.value);\n triggerRefs.current[targetIndex]?.focus();\n if (activationMode === 'automatic') {\n activateItem(targetItem);\n }\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseTabsItem,\n index: number,\n ) => {\n if (item.disabled) return;\n\n if (\n activationMode === 'manual' &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n activateItem(item);\n return;\n }\n\n if (enabledIndices.length === 0) return;\n if (event.key === 'Home') {\n moveFocus(event, enabledIndices[0]);\n return;\n }\n if (event.key === 'End') {\n moveFocus(event, enabledIndices[enabledIndices.length - 1]);\n return;\n }\n\n let step: number | undefined;\n if (\n orientation === 'horizontal' &&\n (event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n step = getHorizontalStep(event, event.key);\n } else if (orientation === 'vertical' && event.key === 'ArrowUp') {\n step = -1;\n } else if (orientation === 'vertical' && event.key === 'ArrowDown') {\n step = 1;\n }\n if (step === undefined) return;\n\n const enabledPosition = enabledIndices.indexOf(index);\n const nextPosition =\n (enabledPosition + step + enabledIndices.length) %\n enabledIndices.length;\n moveFocus(event, enabledIndices[nextPosition]);\n };\n\n return (\n <div\n {...componentAttributes}\n {...tabsProps}\n ref={ref}\n id={id}\n data-monkeys-component=\"tabs\"\n data-slot=\"root\"\n data-state={groupState}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(theme.slots.tabsRoot, classNames?.root, className)}\n style={style}\n >\n <div\n {...componentAttributes}\n dir={layerDirection}\n role=\"tablist\"\n aria-label={tablistAriaLabel}\n aria-labelledby={tablistAriaLabelledBy}\n aria-orientation={orientation}\n data-monkeys-component=\"tabs\"\n data-slot=\"list\"\n data-state={groupState}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(\n theme.slots.tabsList,\n orientation === 'vertical' && 'flex-col items-stretch',\n classNames?.list,\n )}\n style={theme.styles.tabsList}\n >\n {items.map((item, index) => {\n const itemId = idFragments[index];\n const selected = index === selectedIndex;\n const state = item.disabled\n ? 'disabled'\n : selected\n ? 'active'\n : 'inactive';\n\n return (\n <button\n {...componentAttributes}\n ref={(node) => {\n triggerRefs.current[index] = node;\n }}\n key={item.value}\n id={`${rootId}-${itemId}-tab`}\n type=\"button\"\n role=\"tab\"\n tabIndex={!item.disabled && index === rovingIndex ? 0 : -1}\n aria-selected={selected}\n aria-controls={`${rootId}-${itemId}-panel`}\n disabled={item.disabled}\n dir={layerDirection}\n data-monkeys-component=\"tabs\"\n data-slot=\"trigger\"\n data-state={state}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n data-disabled={item.disabled || undefined}\n className={cn(\n theme.slots.tabsTrigger,\n selected && theme.slots.tabsTriggerActive,\n item.disabled && theme.slots.tabsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.tabsTrigger}\n onFocus={() => setFocusedValue(item.value)}\n onKeyDown={(event) => handleKeyDown(event, item, index)}\n onClick={() => {\n setFocusedValue(item.value);\n activateItem(item);\n }}\n >\n <span className=\"min-w-0 truncate\">{item.label}</span>\n </button>\n );\n })}\n </div>\n\n {selectedItem ? (\n <div\n {...componentAttributes}\n id={`${rootId}-${idFragments[selectedIndex]}-panel`}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={`${rootId}-${idFragments[selectedIndex]}-tab`}\n dir={layerDirection}\n data-monkeys-component=\"tabs\"\n data-slot=\"panel\"\n data-state=\"active\"\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(theme.slots.tabsPanel, classNames?.panel)}\n style={theme.styles.tabsPanel}\n >\n {hasRenderableNode(selectedItem.content) ? (\n selectedItem.content\n ) : hasRenderableNode(selectedItem.description) ? (\n <p className=\"m-0 text-muted-foreground\">\n {selectedItem.description}\n </p>\n ) : null}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTextareaProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst controlSizeClassNames = {\n sm: 'min-h-20 px-2.5 py-1.5 text-xs leading-5',\n md: 'min-h-24 px-3 py-2 text-sm leading-6',\n lg: 'min-h-28 px-3.5 py-2.5 text-base leading-7',\n} as const;\n\nexport const BaseTextarea = forwardRef<HTMLTextAreaElement, BaseTextareaProps>(\n function BaseTextarea(\n {\n invalid = false,\n disabled = false,\n readOnly = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n onBlur,\n onChange,\n ...textareaProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTextarea ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseTextarea controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n\n return (\n <textarea\n {...componentAttributes}\n {...textareaProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n data-monkeys-component=\"textarea\"\n data-slot=\"control\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n theme.slots.controlBase,\n theme.slots.controlTextarea,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n controlSize && controlSizeClassNames[controlSize],\n classNames?.control,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n }}\n onChange={(event) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n }}\n />\n );\n },\n);\n","import { createElement, forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseTextSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseTextProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseText = forwardRef<HTMLElement, BaseTextProps>(function BaseText(\n {\n as = 'p',\n children,\n size = 'md',\n tone = 'default',\n appearance,\n className,\n classNames,\n style,\n ...textProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return createElement(\n as,\n {\n ...componentAttributes,\n ...textProps,\n ref,\n 'data-monkeys-component': 'text',\n 'data-slot': 'root',\n 'data-size': size,\n 'data-tone': tone,\n className: cn(\n theme.slots.textRoot,\n getBaseTextSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.text,\n ...style,\n },\n },\n children,\n );\n});\n","import * as Tooltip from '@radix-ui/react-tooltip';\nimport {\n Fragment,\n forwardRef,\n isValidElement,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTooltip ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'top' &&\n value !== 'bottom' &&\n value !== 'left' &&\n value !== 'right'\n ) {\n throw new TypeError(\n 'BaseTooltip placement must be \"top\", \"bottom\", \"left\", or \"right\".',\n );\n }\n}\n\nfunction normalizeTrigger(children: ReactNode, disabled: boolean) {\n if (isValidElement(children) && children.type !== Fragment) {\n return children;\n }\n\n return (\n <span tabIndex={!disabled && hasRenderableNode(children) ? 0 : undefined}>\n {children}\n </span>\n );\n}\n\nexport const BaseTooltip = forwardRef<HTMLSpanElement, BaseTooltipProps>(\n function BaseTooltip(\n {\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const canShow = !disabled && hasRenderableNode(content);\n const requestedOpen = isControlled ? open : uncontrolledOpen;\n const isOpen = canShow && requestedOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen && !canShow) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const trigger = normalizeTrigger(children, disabled);\n const tooltipContent = canShow ? (\n <Tooltip.Content\n {...componentAttributes}\n side={placement}\n sideOffset={8}\n collisionPadding={8}\n data-monkeys-component=\"tooltip\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipContent, classNames?.content)}\n style={theme.styles.tooltip}\n >\n {content}\n </Tooltip.Content>\n ) : null;\n\n return (\n <span\n {...componentAttributes}\n {...tooltipProps}\n ref={ref}\n data-monkeys-component=\"tooltip\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n >\n <Tooltip.Provider\n delayDuration={0}\n skipDelayDuration={0}\n disableHoverableContent\n >\n <Tooltip.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n delayDuration={0}\n disableHoverableContent\n >\n <span\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger-wrapper\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}\n >\n <Tooltip.Trigger\n asChild\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n >\n {trigger}\n </Tooltip.Trigger>\n </span>\n {portal && overlayPortal.shouldPortal ? (\n <Tooltip.Portal {...overlayPortal.radixPortalProps}>\n {tooltipContent}\n </Tooltip.Portal>\n ) : (\n tooltipContent\n )}\n </Tooltip.Root>\n </Tooltip.Provider>\n </span>\n );\n },\n);\n","import type { BaseToolbarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseToolbar({\n leading,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...toolbarProps\n}: BaseToolbarProps) {\n const theme = resolveBaseAppearance(appearance);\n const hasTitleBlock = hasRenderableNode(title) || hasRenderableNode(description);\n\n return (\n <div\n {...toolbarProps}\n className={cn(theme.slots.toolbarRoot, classNames?.root, className)}\n style={{\n ...theme.styles.toolbar,\n ...style,\n }}\n >\n <div className={cn(theme.slots.toolbarLeading, classNames?.leading)}>\n {hasRenderableNode(leading) ? leading : null}\n {hasTitleBlock ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.toolbarTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.toolbarDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.toolbarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseVisuallyHiddenProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseVisuallyHidden = forwardRef<\n HTMLSpanElement,\n BaseVisuallyHiddenProps\n>(function BaseVisuallyHidden(\n {\n children,\n focusable = false,\n appearance,\n className,\n classNames,\n style,\n ...hiddenProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (typeof focusable !== 'boolean') {\n throw new TypeError('BaseVisuallyHidden focusable must be a boolean.');\n }\n\n return (\n <span\n {...componentAttributes}\n {...hiddenProps}\n ref={ref}\n data-monkeys-component=\"visually-hidden\"\n data-slot=\"root\"\n data-focusable={focusable || undefined}\n className={cn(\n theme.slots.visuallyHiddenRoot,\n focusable && theme.slots.visuallyHiddenFocusable,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.visuallyHidden,\n ...style,\n }}\n >\n {children}\n </span>\n );\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/locale/en-US.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAccordion.tsx","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseAspectRatio.tsx","../../../src/components/base/BaseBadge.tsx","../../../src/components/base/BaseBreadcrumb.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/internal/baseFieldContext.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseCode.tsx","../../../src/components/base/BaseContainer.tsx","../../../src/components/base/BasePortal.tsx","../../../src/components/base/internal/overlayPortal.tsx","../../../src/components/base/BaseContextMenu.tsx","../../../src/components/base/BaseDescriptionList.tsx","../../../src/components/base/BaseDialog.tsx","../../../src/components/base/BaseDivider.tsx","../../../src/components/base/BaseDropdownMenu.tsx","../../../src/components/base/BaseEmptyState.tsx","../../../src/components/base/BaseField.tsx","../../../src/components/base/BaseFieldset.tsx","../../../src/components/base/BaseHeading.tsx","../../../src/components/base/BaseGrid.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseInputGroup.tsx","../../../src/components/base/BaseInline.tsx","../../../src/components/base/BaseKbd.tsx","../../../src/components/base/BaseLayout.tsx","../../../src/components/base/BaseLoadingState.tsx","../../../src/components/base/BaseLink.tsx","../../../src/components/base/BaseList.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseNumberInput.tsx","../../../src/components/base/BaseNotice.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/base/BasePasswordInput.tsx","../../../src/components/base/BasePagination.tsx","../../../src/components/base/BaseProgress.tsx","../../../src/components/base/BaseRadioGroup.tsx","../../../src/components/base/BaseScrollArea.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSectionHeader.tsx","../../../src/components/base/BaseSegmentedControl.tsx","../../../src/components/base/BaseSkeleton.tsx","../../../src/components/base/BaseSpinner.tsx","../../../src/components/base/BaseStack.tsx","../../../src/components/base/BaseSteps.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTableFooterBar.tsx","../../../src/components/base/BaseTabs.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseText.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/BaseToolbar.tsx","../../../src/components/base/BaseVisuallyHidden.tsx"],"names":["BaseAccordion","forwardRef","BaseAvatar","useState","useEffect","jsxs","jsx","BaseAspectRatio","BaseBadge","BaseButton","createContext","useContext","useRef","BaseCheckbox","useCallback","BaseCode","BaseContainer","Fragment","BaseContextMenuTrigger","BaseContextMenuContent","BaseContextMenuLabel","BaseContextMenuSeparator","BaseContextMenuItem","BaseContextMenuCheckboxItem","BaseContextMenuRadioItem","BaseContextMenuSubTrigger","BaseContextMenuSubContent","validateBoolean","BaseDialog","BaseDivider","validateDirection","renderTrigger","BaseDropdownMenu","BaseEmptyState","BaseField","useId","useMemo","mergeAriaIds","resolveOptionalId","BaseFieldset","BaseHeading","createElement","BaseGrid","BaseInput","BaseInputGroup","BaseInline","BaseKbd","BaseLayout","BaseLayoutPane","BaseLayoutResizeHandle","BaseLayoutSplit","BaseLoadingState","BaseLink","BaseList","BaseListItem","toDomId","BaseMultiSelect","BaseNumberInput","setRefs","validateLabel","BasePasswordInput","BasePagination","clamp","BaseProgress","indicatorSizeClassNames","BaseRadioGroup","BaseScrollArea","typeaheadResetDelay","getNextEnabledIndex","getBoundaryEnabledIndex","getOptionText","BaseSelect","BaseSkeleton","BaseSpinner","BaseStack","validateItems","BaseSteps","BaseSwitch","assignRef","assertBoolean","isRtl","setPointerCaptureIfAvailable","toCssSize","BaseTableContainer","BaseTable","BaseTableHeader","BaseTableBody","BaseTableFooter","BaseTableRow","BaseTableHead","BaseTableCell","BaseTableCaption","BaseTableEmpty","BaseTableFooterBar","getDomIdFragments","BaseTabs","controlSizeClassNames","BaseTextarea","BaseText","validatePlacement","isValidElement","BaseTooltip","BaseVisuallyHidden"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { MonkeysLocale } from './types';\n\nexport const enUS = {\n locale: 'en-US',\n messages: {\n pagination: {\n navigation: 'Pagination',\n first: 'First',\n previous: 'Previous',\n next: 'Next',\n last: 'Last',\n page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n currentPage: ({ page, pageCount }) =>\n `Page ${page} of ${pageCount}, current page`,\n emptyResults: '0 results',\n range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n },\n dialog: {\n close: 'Close dialog',\n },\n dropdownMenu: {\n actions: 'Actions',\n },\n loading: {\n spinner: 'Loading',\n },\n layout: {\n resizePanels: 'Resize panels',\n },\n steps: {\n label: 'Progress',\n current: 'Current',\n completed: 'Completed',\n error: 'Error',\n disabled: 'Disabled',\n },\n numberInput: {\n increment: 'Increase value',\n decrement: 'Decrease value',\n },\n passwordInput: {\n showPassword: 'Show password',\n hidePassword: 'Hide password',\n },\n multiSelect: {\n placeholder: 'Select options',\n empty: 'No options',\n removeOption: ({ value }) => `Remove ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `Sort column ${columnId}` : 'Sort column',\n loadingRow: 'Loading table row',\n },\n toolbar: {\n theme: {\n label: 'Appearance',\n toggle: 'Toggle theme',\n auto: 'Auto',\n light: 'Light',\n dark: 'Dark',\n },\n language: {\n label: 'Language',\n switch: 'Switch language',\n },\n },\n toast: {\n errorTitle: 'Error',\n warningTitle: 'Warning',\n defaultErrorDescription: 'Something went wrong.',\n defaultWarningDescription: 'Please check and try again.',\n },\n dataExplorer: {\n viewTree: {\n actions: 'More actions',\n expand: 'Expand',\n collapse: 'Collapse',\n loading: 'Loading...',\n empty: 'No views',\n error: 'Unable to load views',\n },\n },\n workbench: {\n collection: {\n label: 'Collection',\n loading: 'Loading items',\n empty: 'No items',\n loadError: 'Unable to load items',\n refreshError: 'Unable to refresh items',\n retry: 'Retry',\n loadingMore: 'Loading more items',\n },\n interactiveTable: {\n columnActions: 'Column actions',\n freezeColumn: 'Freeze to left',\n freezeEndColumn: 'Freeze to right',\n unfreezeColumn: 'Unfreeze from left',\n unfreezeEndColumn: 'Unfreeze from right',\n unfreezeAllColumns: 'Unfreeze all columns',\n resetColumnWidth: 'Reset column width',\n frozenColumnTitle: 'Frozen column',\n },\n },\n agentWorkbench: {\n label: 'Session activity',\n reasoning: 'Reasoning',\n plan: 'Plan',\n taskNoDetail: 'No additional details',\n modes: { chat: 'Chat', work: 'Work' },\n composer: {\n send: 'Send message',\n stop: 'Stop generating',\n queue: 'Queue message',\n attach: 'Add photos or files',\n voice: 'Start voice input',\n webSearch: 'Web search',\n chatMode: 'Chat mode',\n model: 'Model',\n reasoning: 'Reasoning effort',\n permissions: 'Permissions',\n removeAttachment: 'Remove attachment',\n editQueued: 'Edit queued message',\n deleteQueued: 'Delete queued message',\n moveUp: 'Move message up',\n moveDown: 'Move message down',\n queued: 'Queued messages',\n uploading: 'Uploading',\n noModels: 'No models available',\n message: 'Message',\n attachmentOnly: 'Attachment',\n reasoningOptions: { low: 'Low', medium: 'Medium', high: 'High', xhigh: 'Extra high' },\n permissionOptions: { 'approval-required': 'Approval required', 'auto-approve': 'Auto approve', 'full-access': 'Full access' },\n },\n quickStart: {\n label: 'Quick start',\n back: 'Back',\n addFile: 'Add file',\n },\n tool: {\n input: 'Input',\n output: 'Output',\n status: {\n pending: 'Pending',\n running: 'Running',\n completed: 'Completed',\n failed: 'Error',\n denied: 'Denied',\n },\n },\n approval: {\n approve: 'Approve',\n reject: 'Reject',\n approved: 'Approved',\n rejected: 'Rejected',\n },\n artifact: {\n pending: 'Preparing',\n ready: 'Ready',\n failed: 'Failed',\n open: ({ name }) => `Open ${name}`,\n },\n run: {\n stopping: 'Stopping...',\n stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n },\n process: {\n running: 'Working',\n processed: 'Processed',\n processedFor: ({ duration }) => `Worked for ${duration}`,\n completedCount: ({ completed, total }) => `${completed}/${total} completed`,\n },\n artifactWorkspace: {\n outputs: 'Outputs',\n sources: 'Sources',\n viewAll: 'View all',\n toggleSummary: 'Toggle files',\n tabs: 'Open files',\n closeTab: ({ name }) => `Close ${name}`,\n closeWorkspace: 'Close workspace',\n download: ({ name }) => `Download ${name}`,\n openExternal: ({ name }) => `Open ${name} in a new window`,\n },\n usage: {\n label: 'Context usage',\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: 'Search agents and sessions',\n searchSessions: 'Search sessions',\n searchShortcut: 'Focus search',\n clearSearch: 'Clear search',\n tabsLabel: 'Agent workbench navigation',\n agents: 'Agents',\n sessions: 'Sessions',\n newAgent: 'New Agent',\n newSession: 'New Session',\n capabilities: 'Capabilities & Extensions',\n settings: 'Agent Settings',\n allAgents: 'All Agents',\n recentSessions: 'Recent Sessions',\n chat: 'Chat',\n work: 'Work',\n chats: 'Chats',\n builtIn: 'Built-in',\n noDescription: 'No description',\n loading: 'Loading...',\n emptyAgents: 'No agents yet',\n emptySessions: 'No sessions yet',\n noResults: 'No matching results',\n retry: 'Retry',\n pin: 'Pin',\n unpin: 'Unpin',\n rename: 'Rename',\n delete: 'Delete',\n actions: 'Actions',\n save: 'Save',\n cancel: 'Cancel',\n running: 'Running',\n completed: 'Completed',\n failed: 'Failed',\n contextUsage: ({ percent }) => `${percent}% context used`,\n },\n details: {\n title: 'Task details',\n description: 'Summary and workspace activity',\n duration: 'Duration',\n updated: 'Updated',\n model: 'Model',\n mode: 'Mode',\n permissions: 'Permissions',\n tokenUsage: 'Token usage',\n summary: 'Summary',\n summaryEmpty: 'No summary is available yet.',\n summaryFailed: 'The summary could not be generated.',\n highlights: 'Highlights',\n pendingItems: 'Pending items',\n tabs: {\n label: 'Task detail views',\n summary: 'Summary',\n workspace: 'Workspace',\n },\n status: {\n queued: 'Queued',\n running: 'Running',\n waiting_approval: 'Waiting for approval',\n stopping: 'Stopping',\n stopped: 'Stopped',\n completed: 'Completed',\n failed: 'Failed',\n },\n state: {\n loading: { title: 'Loading task details', description: 'Restoring the latest session activity.' },\n empty: { title: 'No task selected', description: 'Select a task to inspect its details.' },\n error: { title: 'Unable to load task details', description: 'Try again after the session is available.' },\n },\n actions: {\n close: 'Close task details',\n copySummary: 'Copy summary',\n retry: 'Retry',\n retrySummary: 'Retry summary',\n resume: 'Resume',\n continueInNewTask: 'Continue in new task',\n editAndRerun: 'Edit and rerun',\n export: 'Export',\n },\n workspace: {\n diffs: 'Code changes',\n files: 'Files',\n terminals: 'Terminals',\n tests: 'Tests',\n artifacts: 'Artifacts',\n exitCode: ({ code }) => `Exit code ${code}`,\n diffStatus: { added: 'Added', modified: 'Modified', deleted: 'Deleted', renamed: 'Renamed' },\n fileOperation: { upsert: 'Updated', delete: 'Deleted' },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n MonkeysBuiltInLocaleId,\n MonkeysLocale,\n MonkeysLocaleInput,\n MonkeysLocaleMessages,\n MonkeysLocaleMessagesOverride,\n MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n 'en-US': enUS,\n 'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n if (typeof locale !== 'string' || !locale.trim()) {\n throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n }\n\n try {\n return Intl.getCanonicalLocales(locale)[0];\n } catch {\n throw new RangeError(\n `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n );\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n value: unknown,\n schema: unknown,\n path: string,\n) {\n if (!isRecord(value) || !isRecord(schema)) {\n throw new TypeError(`${path} must be an object.`);\n }\n\n for (const [key, candidate] of Object.entries(value)) {\n if (candidate === undefined) continue;\n if (!(key in schema)) {\n throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n }\n\n const expected = schema[key];\n const candidatePath = `${path}.${key}`;\n if (typeof expected === 'function') {\n if (typeof candidate !== 'function') {\n throw new TypeError(`${candidatePath} must be a function.`);\n }\n } else if (typeof expected === 'string') {\n if (typeof candidate !== 'string') {\n throw new TypeError(`${candidatePath} must be a string.`);\n }\n } else {\n validateMessageOverride(candidate, expected, candidatePath);\n }\n }\n}\n\nfunction assertMessagesOverride(\n value: unknown,\n path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n locale: string | undefined;\n messages: MonkeysLocaleMessagesOverride | undefined;\n hasExplicitLocale: boolean;\n} {\n if (input === undefined) {\n return {\n locale: undefined,\n messages: undefined,\n hasExplicitLocale: false,\n };\n }\n\n if (typeof input === 'string') {\n const locale = normalizeLocaleId(input);\n if (!isBuiltInLocale(locale)) {\n throw new RangeError(\n `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n );\n }\n return { locale, messages: undefined, hasExplicitLocale: true };\n }\n\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n }\n\n const locale = normalizeLocaleId(input.locale);\n assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n return {\n locale,\n messages: input.messages,\n hasExplicitLocale: true,\n };\n}\n\nexport function mergeMonkeysLocaleMessages(\n base: MonkeysLocaleMessages,\n override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n if (!override) return base;\n\n return {\n pagination: { ...base.pagination, ...override.pagination },\n dialog: { ...base.dialog, ...override.dialog },\n dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n loading: { ...base.loading, ...override.loading },\n layout: { ...base.layout, ...override.layout },\n steps: { ...base.steps, ...override.steps },\n numberInput: { ...base.numberInput, ...override.numberInput },\n passwordInput: { ...base.passwordInput, ...override.passwordInput },\n multiSelect: { ...base.multiSelect, ...override.multiSelect },\n table: { ...base.table, ...override.table },\n toolbar: {\n theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n language: { ...base.toolbar.language, ...override.toolbar?.language },\n },\n toast: { ...base.toast, ...override.toast },\n dataExplorer: {\n viewTree: {\n ...base.dataExplorer.viewTree,\n ...override.dataExplorer?.viewTree,\n },\n },\n workbench: {\n collection: {\n ...base.workbench.collection,\n ...override.workbench?.collection,\n },\n interactiveTable: {\n ...base.workbench.interactiveTable,\n ...override.workbench?.interactiveTable,\n },\n },\n agentWorkbench: {\n ...base.agentWorkbench,\n ...override.agentWorkbench,\n modes: {\n ...base.agentWorkbench.modes,\n ...override.agentWorkbench?.modes,\n },\n composer: {\n ...base.agentWorkbench.composer,\n ...override.agentWorkbench?.composer,\n },\n quickStart: {\n ...base.agentWorkbench.quickStart,\n ...override.agentWorkbench?.quickStart,\n },\n tool: {\n ...base.agentWorkbench.tool,\n ...override.agentWorkbench?.tool,\n status: {\n ...base.agentWorkbench.tool.status,\n ...override.agentWorkbench?.tool?.status,\n },\n },\n approval: {\n ...base.agentWorkbench.approval,\n ...override.agentWorkbench?.approval,\n },\n artifact: {\n ...base.agentWorkbench.artifact,\n ...override.agentWorkbench?.artifact,\n },\n run: {\n ...base.agentWorkbench.run,\n ...override.agentWorkbench?.run,\n },\n process: {\n ...base.agentWorkbench.process,\n ...override.agentWorkbench?.process,\n },\n artifactWorkspace: {\n ...base.agentWorkbench.artifactWorkspace,\n ...override.agentWorkbench?.artifactWorkspace,\n },\n usage: {\n ...base.agentWorkbench.usage,\n ...override.agentWorkbench?.usage,\n },\n navigation: {\n ...base.agentWorkbench.navigation,\n ...override.agentWorkbench?.navigation,\n },\n details: {\n ...base.agentWorkbench.details,\n ...override.agentWorkbench?.details,\n tabs: {\n ...base.agentWorkbench.details.tabs,\n ...override.agentWorkbench?.details?.tabs,\n },\n status: {\n ...base.agentWorkbench.details.status,\n ...override.agentWorkbench?.details?.status,\n },\n state: {\n loading: {\n ...base.agentWorkbench.details.state.loading,\n ...override.agentWorkbench?.details?.state?.loading,\n },\n empty: {\n ...base.agentWorkbench.details.state.empty,\n ...override.agentWorkbench?.details?.state?.empty,\n },\n error: {\n ...base.agentWorkbench.details.state.error,\n ...override.agentWorkbench?.details?.state?.error,\n },\n },\n actions: {\n ...base.agentWorkbench.details.actions,\n ...override.agentWorkbench?.details?.actions,\n },\n workspace: {\n ...base.agentWorkbench.details.workspace,\n ...override.agentWorkbench?.details?.workspace,\n diffStatus: {\n ...base.agentWorkbench.details.workspace.diffStatus,\n ...override.agentWorkbench?.details?.workspace?.diffStatus,\n },\n fileOperation: {\n ...base.agentWorkbench.details.workspace.fileOperation,\n ...override.agentWorkbench?.details?.workspace?.fileOperation,\n },\n },\n },\n },\n };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n locale: enUS.locale,\n messages: mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n ),\n};\n\nexport function resolveMonkeysLocale(\n input?: MonkeysLocaleInput,\n override?: MonkeysLocaleMessagesOverride,\n parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n if (override !== undefined) {\n assertMessagesOverride(override, 'MonkeysProvider messages');\n }\n const normalized = normalizeLocaleInput(input);\n const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n const builtInMessages = isBuiltInLocale(locale)\n ? BUILT_IN_LOCALES[locale].messages\n : undefined;\n let messages = mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n builtInMessages,\n );\n\n if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n }\n\n messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n messages = mergeMonkeysLocaleMessages(messages, override);\n\n return { locale, messages };\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type Context,\n} from 'react';\n\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n defaultMonkeysLocale,\n type MonkeysLocaleMessages,\n type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n getDocument?: () => Document | null;\n getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n | Element\n | null\n | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nexport interface MonkeysComponentAttributes {\n dir?: MonkeysDirection;\n 'data-monkeys-direction'?: MonkeysDirection;\n 'data-monkeys-locale'?: string;\n 'data-monkeys-theme'?: string;\n 'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n provided: boolean;\n resolvedTheme?: CompiledThemeTokens;\n themeId?: string;\n baseAppearance?: BaseAppearance;\n dataExplorerAppearance?: DataExplorerAppearance;\n}\n\ninterface MonkeysDirectionContextValue {\n provided: boolean;\n direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n provided: boolean;\n environment: MonkeysEnvironment;\n portal: MonkeysPortalOptions;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n locale: Context<MonkeysLocaleContextValue>;\n theme: Context<MonkeysThemeContextValue>;\n direction: Context<MonkeysDirectionContextValue>;\n environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n return Object.freeze({\n locale: createContext<MonkeysLocaleContextValue>({\n ...defaultMonkeysLocale,\n provided: false,\n }),\n theme: createContext<MonkeysThemeContextValue>({\n provided: false,\n }),\n direction: createContext<MonkeysDirectionContextValue>({\n provided: false,\n }),\n environment: createContext<MonkeysEnvironmentContextValue>({\n provided: false,\n environment: EMPTY_ENVIRONMENT,\n portal: EMPTY_PORTAL,\n }),\n });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n const host = globalThis as MonkeysProviderContextHost;\n const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n if (existing) return existing;\n\n const contexts = createMonkeysProviderContexts();\n Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n value: contexts,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n inherited: T | undefined,\n explicit: T | undefined,\n): T | undefined {\n if (explicit === undefined) return inherited;\n if (inherited === undefined) return explicit;\n\n return {\n ...inherited,\n ...explicit,\n slots:\n inherited.slots || explicit.slots\n ? { ...inherited.slots, ...explicit.slots }\n : undefined,\n styles:\n inherited.styles || explicit.styles\n ? { ...inherited.styles, ...explicit.styles }\n : undefined,\n };\n}\n\nexport function useMonkeysLocale() {\n return useContext(MonkeysLocaleContext);\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).baseAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDirection() {\n return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n const locale = useContext(MonkeysLocaleContext);\n const theme = useContext(MonkeysThemeContext);\n const direction = useContext(MonkeysDirectionContext);\n const providerActive = locale.provided || theme.provided || direction.provided;\n\n return useMemo(\n () =>\n providerActive\n ? {\n dir: direction.direction,\n 'data-monkeys-direction': direction.direction,\n 'data-monkeys-locale': locale.locale,\n 'data-monkeys-theme': theme.themeId,\n 'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n }\n : {},\n [\n direction.direction,\n locale.locale,\n providerActive,\n theme.resolvedTheme?.colorMode,\n theme.themeId,\n ],\n );\n}\n","import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n if (typeof node === 'string') return node.trim().length > 0;\n return hasRenderableNode(node);\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseHeadingSize,\n BaseLayoutAlign,\n BaseLayoutJustify,\n BaseLayoutLength,\n BaseListMarker,\n BaseListSpacing,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n BaseTypographySize,\n BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n '[scrollbar-width:thin]',\n '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n 'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n buttonWarning:\n 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n textRoot: 'min-w-0 break-words leading-6',\n textSizeXs: 'text-xs',\n textSizeSm: 'text-sm',\n textSizeMd: 'text-base',\n textSizeLg: 'text-lg',\n textSizeXl: 'text-xl',\n typographyToneDefault: 'text-foreground',\n typographyToneMuted: 'text-muted-foreground',\n typographyTonePrimary: 'text-primary',\n typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n typographyToneDanger: 'text-destructive-text',\n typographyToneInherit: 'text-inherit',\n headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n headingSizeXs: 'text-sm leading-5',\n headingSizeSm: 'text-base leading-6',\n headingSizeMd: 'text-lg leading-7',\n headingSizeLg: 'text-xl leading-7',\n headingSizeXl: 'text-2xl leading-8',\n headingSize2xl: 'text-3xl leading-9',\n linkRoot:\n 'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n codeInline:\n 'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n codeBlock:\n 'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n codeContent: 'font-mono text-sm leading-6',\n kbdRoot:\n 'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n listSpacingCompact: '[&>li+li]:mt-1',\n listSpacingDefault: '[&>li+li]:mt-2',\n listSpacingRelaxed: '[&>li+li]:mt-3',\n listMarkerNone: 'list-none ps-0',\n listMarkerDisc: 'list-disc',\n listMarkerCircle: 'list-[circle]',\n listMarkerSquare: 'list-[square]',\n listMarkerDecimal: 'list-decimal',\n listMarkerLowerAlpha: 'list-[lower-alpha]',\n listMarkerUpperAlpha: 'list-[upper-alpha]',\n listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n stackRoot: 'flex min-w-0 flex-col',\n inlineRoot: 'flex min-w-0 flex-row',\n gridRoot: 'grid min-w-0',\n containerRoot: 'mx-auto w-full min-w-0',\n aspectRatioRoot:\n 'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n spinnerRoot:\n 'inline-flex shrink-0 items-center justify-center text-current align-middle',\n spinnerIndicator:\n 'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n visuallyHiddenRoot: 'sr-only',\n visuallyHiddenFocusable:\n 'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n stepsHorizontal:\n 'flex w-full max-w-full items-start overflow-x-auto pb-2',\n stepsVertical: 'grid',\n stepsItem: 'relative min-w-0',\n stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n stepsItemVertical: 'pb-6 last:pb-0',\n stepsTrigger:\n 'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n stepsTriggerInteractive:\n 'cursor-pointer hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n stepsIndicator:\n 'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n stepsIndicatorCompleted:\n 'border-primary bg-primary text-primary-foreground',\n stepsIndicatorError:\n 'border-destructive bg-destructive text-destructive-foreground',\n stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n stepsDescription:\n 'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n stepsStatus: 'sr-only',\n stepsConnector: 'shrink-0 bg-border',\n stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n stepsConnectorVertical:\n 'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n stepsConnectorCompleted: 'bg-primary/60',\n stepsConnectorError: 'bg-destructive/60',\n scrollAreaViewport: 'min-h-0 min-w-0',\n numberInputControl: 'tabular-nums',\n numberInputStepControls:\n 'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n numberInputStepButton:\n 'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n passwordInputControl: 'pe-2',\n passwordInputToggle:\n 'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n inputGroupRoot:\n cn(\n 'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n motionBase,\n ),\n inputGroupInvalid:\n 'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n inputGroupContent:\n 'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n inputGroupStartElement:\n 'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n inputGroupEndElement:\n 'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n inputGroupStartAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n inputGroupEndAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-4',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n panelBodyStandalone: 'pt-4',\n panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n loadingSpinner:\n 'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n fieldRoot: 'grid min-w-0 gap-2',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive-text',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-[11px] font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger:\n 'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n dropdownItemDisabled:\n '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n noticeDanger:\n 'border-destructive/30 bg-destructive/10 text-destructive-text',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-3',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-3',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n paginationEllipsis:\n 'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n 'motion-reduce:transition-none',\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n tableScrollbarChrome,\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader:\n cn(\n 'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n tableStickyHeaderCells,\n ),\n tableBody: '[&_tr:last-child>*]:border-b-0',\n tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n tableSplitRoot:\n 'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableSplitHeader:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n tableSplitBody:\n cn(\n 'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n tableScrollbarChrome,\n ),\n tableSplitFooter:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n tableSplitRow:\n 'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n tableSplitHead: 'flex min-w-0 overflow-hidden',\n tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n tableRow:\n cn(\n '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive:\n 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n cn(\n 'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-[11px]',\n panelHeader: 'p-3',\n panelBody: 'px-3 pb-3 text-xs',\n panelBodyStandalone: 'pt-3',\n panelFooter: 'px-3 py-2',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-1.5',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-[11px] leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-[11px]',\n sectionHeaderRoot: 'gap-2',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-0.5 p-0.5',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-0.5 p-0.5',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-2 px-3 py-2',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-[11px]',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-[11px]',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-[11px]',\n tableContainer: '[--base-table-header-height:2.25rem]',\n tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-[11px]',\n tableHeadDescription: 'text-[10px] leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-2 p-2',\n layoutBody: 'gap-2',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-5',\n panelBody: 'px-5 pb-5',\n panelBodyStandalone: 'pt-5',\n panelFooter: 'px-5 py-3.5',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-2.5',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-5 py-4',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableContainer: '[--base-table-header-height:3rem]',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-4 p-4',\n layoutBody: 'gap-4',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n tableHeader: 'border-transparent',\n tableFooter: '[&_tr>*]:border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: '[&>*]:border-transparent',\n tableEmptyRow: '[&>*]:border-transparent',\n tableLoadingRow: '[&>*]:border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n tableHeader: 'border-border/60',\n tableFooter: '[&_tr>*]:border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: '[&>*]:border-border/50',\n tableEmptyRow: '[&>*]:border-border/50',\n tableLoadingRow: '[&>*]:border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer:\n 'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n tableHeader: 'border-foreground/20',\n tableFooter: '[&_tr>*]:border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: '[&>*]:border-foreground/15',\n tableEmptyRow: '[&>*]:border-foreground/15',\n tableLoadingRow: '[&>*]:border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer:\n 'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n tableContainer:\n 'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer:\n 'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n BaseThemePresetId,\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n soft: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n compact: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n 'tinted-glass': {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n soft: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n compact: {\n buttonBase: 'text-xs',\n badgeBase: 'text-[11px]',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n 'tinted-glass': {\n buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n progressIndicator: 'bg-primary',\n avatarStatus: 'border-background',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const variant = appearance?.variant ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const state = appearance?.state ?? 'idle';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n variant,\n density,\n state,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n\nexport function getBaseTypographyToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseTypographyTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.typographyToneDefault,\n tone === 'muted' && theme.slots.typographyToneMuted,\n tone === 'primary' && theme.slots.typographyTonePrimary,\n tone === 'success' && theme.slots.typographyToneSuccess,\n tone === 'warning' && theme.slots.typographyToneWarning,\n tone === 'danger' && theme.slots.typographyToneDanger,\n tone === 'inherit' && theme.slots.typographyToneInherit,\n );\n}\n\nexport function getBaseTextSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseTypographySize = 'md',\n) {\n return cn(\n size === 'xs' && theme.slots.textSizeXs,\n size === 'sm' && theme.slots.textSizeSm,\n size === 'md' && theme.slots.textSizeMd,\n size === 'lg' && theme.slots.textSizeLg,\n size === 'xl' && theme.slots.textSizeXl,\n );\n}\n\nexport function getBaseHeadingSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseHeadingSize = 'lg',\n) {\n return cn(\n size === 'xs' && theme.slots.headingSizeXs,\n size === 'sm' && theme.slots.headingSizeSm,\n size === 'md' && theme.slots.headingSizeMd,\n size === 'lg' && theme.slots.headingSizeLg,\n size === 'xl' && theme.slots.headingSizeXl,\n size === '2xl' && theme.slots.headingSize2xl,\n );\n}\n\nexport function getBaseListSpacingClassName(\n theme: BaseResolvedTheme,\n spacing: BaseListSpacing = 'default',\n) {\n return cn(\n spacing === 'compact' && theme.slots.listSpacingCompact,\n spacing === 'default' && theme.slots.listSpacingDefault,\n spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n );\n}\n\nexport function getBaseListMarkerClassName(\n theme: BaseResolvedTheme,\n marker: Exclude<BaseListMarker, 'auto'>,\n) {\n return cn(\n marker === 'none' && theme.slots.listMarkerNone,\n marker === 'disc' && theme.slots.listMarkerDisc,\n marker === 'circle' && theme.slots.listMarkerCircle,\n marker === 'square' && theme.slots.listMarkerSquare,\n marker === 'decimal' && theme.slots.listMarkerDecimal,\n marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n const pairs: Record<string, string> = { ')': '(', ']': '[' };\n const stack: string[] = [];\n\n for (const character of value) {\n if (character === '(' || character === '[') {\n stack.push(character);\n } else if (character === ')' || character === ']') {\n if (stack.pop() !== pairs[character]) return false;\n }\n }\n\n return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n if (match[1].toLowerCase() === 'var') {\n return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n }\n\n return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n componentName: string,\n propName: string,\n value: BaseLayoutLength,\n) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new RangeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n return `${value}px`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n (!cssLengthPattern.test(normalized) &&\n !isSupportedCssLengthFunction(normalized))\n ) {\n throw new TypeError(\n `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n );\n }\n\n return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n if (typeof value === 'number') {\n if (!Number.isInteger(value) || value <= 0) {\n throw new RangeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n return `repeat(${value}, minmax(0, 1fr))`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n /\\burl\\s*\\(/i.test(normalized) ||\n !hasBalancedDelimiters(normalized) ||\n !gridTemplateTokenPattern.test(normalized)\n ) {\n throw new TypeError(\n 'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n );\n }\n\n return normalized;\n}\n\ntype BaseLayoutAlignValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'stretch'\n | 'baseline';\n\ntype BaseLayoutJustifyValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n BaseLayoutJustify,\n BaseLayoutJustifyValue\n> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n componentName: string,\n value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n throw new TypeError(\n `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n );\n }\n return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n componentName: string,\n value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n throw new TypeError(\n `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n );\n }\n return layoutJustifyValues[value];\n}\n","import {\n forwardRef,\n useEffect,\n useId,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseAccordionItem, BaseAccordionProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function validateBaseAccordionProps({\n items,\n value,\n defaultValue,\n allowCollapse,\n keyboardNavigation,\n}: Pick<\n BaseAccordionProps,\n | 'allowCollapse'\n | 'defaultValue'\n | 'items'\n | 'keyboardNavigation'\n | 'value'\n>) {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseAccordion items must be an array.');\n }\n if (value !== undefined && (typeof value !== 'string' || !value.trim())) {\n throw new TypeError(\n 'BaseAccordion value must be a non-empty string when provided.',\n );\n }\n if (\n defaultValue !== undefined &&\n (typeof defaultValue !== 'string' || !defaultValue.trim())\n ) {\n throw new TypeError(\n 'BaseAccordion defaultValue must be a non-empty string when provided.',\n );\n }\n if (typeof allowCollapse !== 'boolean') {\n throw new TypeError('BaseAccordion allowCollapse must be a boolean.');\n }\n if (typeof keyboardNavigation !== 'boolean') {\n throw new TypeError('BaseAccordion keyboardNavigation must be a boolean.');\n }\n\n const values = new Set<string>();\n items.forEach((item, index) => {\n if (!item || typeof item !== 'object') {\n throw new TypeError(\n `BaseAccordion item at index ${index} must be an object.`,\n );\n }\n if (typeof item.value !== 'string' || !item.value.trim()) {\n throw new TypeError(\n `BaseAccordion item value at index ${index} must be a non-empty string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n 'BaseAccordion items must use unique values; ' +\n `duplicate value ${JSON.stringify(item.value)} at index ${index}.`,\n );\n }\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseAccordion item disabled at index ${index} must be a boolean.`,\n );\n }\n values.add(item.value);\n });\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nfunction getDomIdFragments(items: BaseAccordionItem[]) {\n const usedFragments = new Set<string>();\n\n return items.map((item, index) => {\n const baseFragment = toDomId(item.value) || `item-${index}`;\n let fragment = baseFragment;\n\n if (usedFragments.has(fragment)) {\n fragment = `${baseFragment}-${index}`;\n while (usedFragments.has(fragment)) {\n fragment = `${fragment}-${index}`;\n }\n }\n\n usedFragments.add(fragment);\n return fragment;\n });\n}\n\nexport const BaseAccordion = forwardRef<HTMLDivElement, BaseAccordionProps>(\n function BaseAccordion(\n {\n items = [],\n value,\n defaultValue,\n allowCollapse = true,\n keyboardNavigation = true,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n onFocusCapture,\n onBlurCapture,\n ...accordionProps\n },\n ref,\n ) {\n validateBaseAccordionProps({\n items,\n value,\n defaultValue,\n allowCollapse,\n keyboardNavigation,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const [focusedValue, setFocusedValue] = useState<string>();\n const triggerRefs = useRef(new Map<string, HTMLButtonElement>());\n const ownsTriggerFocusRef = useRef(false);\n const isControlled = value !== undefined;\n const openValue = isControlled ? value : uncontrolledValue;\n const idFragments = getDomIdFragments(items);\n const enabledItems = items.filter((item) => !item.disabled);\n const openItem = items.find((item) => item.value === openValue);\n const layerDirection =\n typeof accordionProps.dir === 'string'\n ? accordionProps.dir\n : componentAttributes.dir;\n\n useEffect(() => {\n if (!ownsTriggerFocusRef.current || focusedValue === undefined) return;\n const focusedItem = items.find((item) => item.value === focusedValue);\n if (focusedItem && !focusedItem.disabled) return;\n\n const fallbackItem =\n enabledItems.find((item) => item.value === openValue) ?? enabledItems[0];\n if (!fallbackItem) {\n ownsTriggerFocusRef.current = false;\n return;\n }\n\n setFocusedValue(fallbackItem.value);\n triggerRefs.current.get(fallbackItem.value)?.focus();\n }, [enabledItems, focusedValue, items, openValue]);\n\n const handleToggle = (item: BaseAccordionItem) => {\n if (item.disabled) return;\n\n const isOpen = openValue === item.value;\n if (isOpen && !allowCollapse) {\n onValueChange?.(item.value);\n return;\n }\n\n const nextOpenValue = isOpen ? undefined : item.value;\n if (!isControlled) {\n setUncontrolledValue(nextOpenValue);\n }\n onValueChange?.(nextOpenValue);\n };\n\n const moveFocus = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseAccordionItem,\n step: number | 'first' | 'last',\n ) => {\n if (!keyboardNavigation || enabledItems.length === 0) return;\n\n let targetItem: BaseAccordionItem | undefined;\n if (step === 'first') {\n targetItem = enabledItems[0];\n } else if (step === 'last') {\n targetItem = enabledItems[enabledItems.length - 1];\n } else {\n const currentIndex = enabledItems.findIndex(\n (enabledItem) => enabledItem.value === item.value,\n );\n const nextIndex =\n (currentIndex + step + enabledItems.length) % enabledItems.length;\n targetItem = enabledItems[nextIndex];\n }\n\n if (!targetItem) return;\n event.preventDefault();\n setFocusedValue(targetItem.value);\n triggerRefs.current.get(targetItem.value)?.focus();\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseAccordionItem,\n ) => {\n if (item.disabled) return;\n if (event.key === 'ArrowDown') {\n moveFocus(event, item, 1);\n } else if (event.key === 'ArrowUp') {\n moveFocus(event, item, -1);\n } else if (event.key === 'Home') {\n moveFocus(event, item, 'first');\n } else if (event.key === 'End') {\n moveFocus(event, item, 'last');\n }\n };\n\n const isOwnedTrigger = (target: EventTarget | null) =>\n target instanceof HTMLElement &&\n target.dataset.accordionOwner === rootId;\n\n const handleFocusCapture = (event: FocusEvent<HTMLDivElement>) => {\n if (isOwnedTrigger(event.target)) {\n ownsTriggerFocusRef.current = true;\n }\n onFocusCapture?.(event);\n };\n\n const handleBlurCapture = (event: FocusEvent<HTMLDivElement>) => {\n if (\n isOwnedTrigger(event.target) &&\n !isOwnedTrigger(event.relatedTarget)\n ) {\n ownsTriggerFocusRef.current = false;\n }\n onBlurCapture?.(event);\n };\n\n return (\n <div\n {...componentAttributes}\n {...accordionProps}\n ref={ref}\n id={id}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"root\"\n data-state={openItem ? 'open' : 'closed'}\n data-collapsible={allowCollapse}\n data-keyboard-navigation={keyboardNavigation}\n className={cn(theme.slots.accordionRoot, classNames?.root, className)}\n style={{\n ...theme.styles.accordion,\n ...style,\n }}\n onFocusCapture={handleFocusCapture}\n onBlurCapture={handleBlurCapture}\n >\n {items.map((item, index) => {\n const itemId = idFragments[index];\n const triggerId = `${rootId}-${itemId}-trigger`;\n const panelId = `${rootId}-${itemId}-panel`;\n const open = item.value === openValue;\n const state = open ? 'open' : 'closed';\n\n return (\n <div\n {...componentAttributes}\n key={item.value}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"item\"\n data-state={state}\n data-disabled={item.disabled || undefined}\n className={cn(theme.slots.accordionItem, classNames?.item)}\n >\n <button\n {...componentAttributes}\n ref={(node) => {\n if (node) {\n triggerRefs.current.set(item.value, node);\n } else {\n triggerRefs.current.delete(item.value);\n }\n }}\n id={triggerId}\n type=\"button\"\n aria-expanded={open}\n aria-controls={panelId}\n aria-disabled={item.disabled || undefined}\n disabled={item.disabled}\n dir={layerDirection}\n data-accordion-owner={rootId}\n data-monkeys-component=\"accordion\"\n data-slot=\"trigger\"\n data-state={state}\n data-disabled={item.disabled || undefined}\n className={cn(\n theme.slots.accordionTrigger,\n classNames?.trigger,\n )}\n onFocus={() => setFocusedValue(item.value)}\n onKeyDown={(event) => handleKeyDown(event, item)}\n onClick={() => handleToggle(item)}\n >\n <span className=\"min-w-0 truncate\">{item.title}</span>\n <span\n aria-hidden=\"true\"\n data-monkeys-component=\"accordion\"\n data-slot=\"trigger-icon\"\n data-state={state}\n className={cn(\n theme.slots.accordionTriggerIcon,\n open && 'rotate-[225deg]',\n classNames?.triggerIcon,\n )}\n />\n </button>\n {open ? (\n <div\n {...componentAttributes}\n id={panelId}\n role=\"region\"\n aria-labelledby={triggerId}\n dir={layerDirection}\n data-monkeys-component=\"accordion\"\n data-slot=\"panel\"\n data-state=\"open\"\n className={cn(\n theme.slots.accordionPanel,\n classNames?.panel,\n )}\n >\n {hasRenderableNode(item.content) ? item.content : null}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n },\n);\n","import { forwardRef, useEffect, useState } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseAvatarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst sizeClassNames = {\n sm: 'h-7 w-7 text-xs',\n md: 'h-9 w-9 text-sm',\n lg: 'h-12 w-12 text-base',\n} as const;\n\nconst statusClassNames = {\n online: 'bg-[hsl(var(--success,142_72%_29%))]',\n busy: 'bg-[hsl(var(--warning,45_93%_47%))]',\n offline: 'bg-muted-foreground',\n neutral: 'bg-muted-foreground',\n} as const;\n\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\n return typeof status === 'string' && status in statusClassNames;\n}\n\nfunction getInitials(name?: string) {\n if (!name) return undefined;\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return undefined;\n return words\n .slice(0, 2)\n .map((word) => word[0]?.toUpperCase())\n .join('');\n}\n\nexport const BaseAvatar = forwardRef<HTMLDivElement, BaseAvatarProps>(\n function BaseAvatar(\n {\n src,\n alt,\n name,\n initials,\n icon,\n status,\n size = 'md',\n appearance,\n className,\n classNames,\n style,\n children,\n title,\n ...avatarProps\n },\n ref,\n ) {\n if (size !== 'sm' && size !== 'md' && size !== 'lg') {\n throw new TypeError('BaseAvatar size must be \"sm\", \"md\", or \"lg\".');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [failedSrc, setFailedSrc] = useState<string>();\n const imageFailed = Boolean(src && failedSrc === src);\n const showImage = Boolean(src) && !imageFailed;\n const generatedInitials = getInitials(name);\n const fallbackKind = hasRenderableNode(children)\n ? 'children'\n : hasRenderableNode(initials)\n ? 'initials'\n : hasRenderableNode(generatedInitials)\n ? 'name'\n : hasRenderableNode(icon)\n ? 'icon'\n : 'default';\n const fallback = hasRenderableNode(children)\n ? children\n : hasRenderableNode(initials)\n ? initials\n : hasRenderableNode(generatedInitials)\n ? generatedInitials\n : hasRenderableNode(icon)\n ? icon\n : '?';\n const statusKind = isStatusPreset(status)\n ? status\n : hasRenderableNode(status)\n ? 'custom'\n : undefined;\n\n useEffect(() => {\n setFailedSrc(undefined);\n }, [src]);\n\n return (\n <div\n {...componentAttributes}\n {...avatarProps}\n ref={ref}\n title={title ?? name}\n data-monkeys-component=\"avatar\"\n data-slot=\"root\"\n data-state={showImage ? 'image' : 'fallback'}\n data-size={size}\n data-status={statusKind}\n data-fallback={showImage ? undefined : fallbackKind}\n className={cn(\n theme.slots.avatarRoot,\n sizeClassNames[size],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.avatar,\n ...style,\n }}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt ?? name ?? ''}\n data-slot=\"image\"\n data-size={size}\n data-status={statusKind}\n className={cn(theme.slots.avatarImage, classNames?.image)}\n onError={() => setFailedSrc(src)}\n />\n ) : (\n <span\n data-slot=\"fallback\"\n data-size={size}\n data-status={statusKind}\n data-fallback={fallbackKind}\n className={cn(\n theme.slots.avatarFallback,\n classNames?.fallback,\n classNames?.text,\n )}\n >\n {fallback}\n </span>\n )}\n\n {isStatusPreset(status) ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"status\"\n data-size={size}\n data-status={status}\n className={cn(\n theme.slots.avatarStatus,\n statusClassNames[status],\n classNames?.status,\n )}\n />\n ) : hasRenderableNode(status) ? (\n <span\n data-slot=\"status\"\n data-size={size}\n data-status=\"custom\"\n className={cn(theme.slots.avatarStatus, classNames?.status)}\n >\n {status}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseAspectRatioProps } from './types';\nimport { cn } from './utils';\n\nfunction resolveAspectRatio(value: number) {\n if (!Number.isFinite(value) || value <= 0) {\n throw new RangeError('BaseAspectRatio ratio must be a positive finite number.');\n }\n return String(value);\n}\n\nexport const BaseAspectRatio = forwardRef<\n HTMLDivElement,\n BaseAspectRatioProps\n>(function BaseAspectRatio(\n {\n children,\n ratio = 16 / 9,\n appearance,\n className,\n classNames,\n style,\n ...aspectRatioProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...aspectRatioProps}\n ref={ref}\n data-monkeys-component=\"aspect-ratio\"\n data-slot=\"root\"\n data-ratio={ratio}\n className={cn(theme.slots.aspectRatioRoot, classNames?.root, className)}\n style={{\n ...theme.styles.aspectRatio,\n aspectRatio: resolveAspectRatio(ratio),\n ...style,\n }}\n >\n {children}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseBadgeProps } from './types';\nimport { getBaseBadgeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nexport const BaseBadge = forwardRef<HTMLSpanElement, BaseBadgeProps>(\n function BaseBadge(\n {\n children,\n label,\n icon,\n tone,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...badgeProps\n },\n ref,\n ) {\n if (\n tone !== undefined &&\n tone !== 'default' &&\n tone !== 'primary' &&\n tone !== 'success' &&\n tone !== 'warning' &&\n tone !== 'danger' &&\n tone !== 'muted'\n ) {\n throw new TypeError(\n 'BaseBadge tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance({\n ...resolvedAppearance,\n variant,\n density,\n state,\n });\n const resolvedLabel = children ?? label;\n const resolvedTone = tone ?? 'default';\n\n return (\n <span\n {...componentAttributes}\n {...badgeProps}\n ref={ref}\n data-monkeys-component=\"badge\"\n data-slot=\"root\"\n data-tone={resolvedTone}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={theme.state}\n className={cn(\n theme.slots.badgeBase,\n getBaseBadgeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.badge,\n ...style,\n }}\n >\n {icon ? (\n <span\n data-slot=\"icon\"\n data-tone={resolvedTone}\n className={cn(theme.slots.badgeIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : null}\n {resolvedLabel !== undefined && resolvedLabel !== null ? (\n <span\n data-slot=\"label\"\n data-tone={resolvedTone}\n className={cn(theme.slots.badgeLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n </span>\n );\n },\n);\n","import type { MouseEvent } from 'react';\n\nimport type { BaseBreadcrumbItem, BaseBreadcrumbProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nfunction isCurrentItem(item: BaseBreadcrumbItem, index: number, length: number) {\n return item.current ?? index === length - 1;\n}\n\nexport function BaseBreadcrumb({\n items = [],\n separator = '/',\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...breadcrumbProps\n}: BaseBreadcrumbProps) {\n const theme = resolveBaseAppearance(appearance);\n\n const handleClick = (\n event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n item: BaseBreadcrumbItem,\n index: number,\n ) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(item, index);\n };\n\n return (\n <nav\n {...breadcrumbProps}\n aria-label={breadcrumbProps['aria-label'] ?? 'Breadcrumb'}\n className={cn(theme.slots.breadcrumbRoot, classNames?.root, className)}\n style={{\n ...theme.styles.breadcrumb,\n ...style,\n }}\n >\n <ol className={cn(theme.slots.breadcrumbList, classNames?.list)}>\n {items.map((item, index) => {\n const current = isCurrentItem(item, index, items.length);\n return (\n <li\n key={`${index}-${item.value ?? item.href ?? String(item.label)}`}\n className={cn(theme.slots.breadcrumbItem, classNames?.item)}\n >\n {current ? (\n <span\n aria-current=\"page\"\n className={cn(theme.slots.breadcrumbCurrent, classNames?.current)}\n >\n {item.label}\n </span>\n ) : item.href ? (\n <a\n href={item.href}\n aria-disabled={item.disabled || undefined}\n className={cn(theme.slots.breadcrumbLink, classNames?.link)}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </a>\n ) : (\n <button\n type=\"button\"\n disabled={item.disabled}\n className={cn(\n theme.slots.breadcrumbLink,\n 'bg-transparent p-0',\n classNames?.link,\n )}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </button>\n )}\n {index < items.length - 1 ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.breadcrumbSeparator,\n classNames?.separator,\n )}\n >\n {separator}\n </span>\n ) : null}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n","import { forwardRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseButtonProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst buttonSizeClassNames = {\n sm: 'h-8 px-2.5 text-xs',\n md: 'h-9 px-3 text-sm',\n lg: 'h-10 px-3.5 text-base',\n} as const;\n\nconst iconOnlySizeClassNames = {\n sm: 'h-8 w-8 px-0',\n md: 'h-9 w-9 px-0',\n lg: 'h-10 w-10 px-0',\n} as const;\n\nconst iconSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nfunction nonEmptyText(value: string | undefined) {\n return typeof value === 'string' && value.trim() ? value : undefined;\n}\n\nfunction LoadingIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-full w-full motion-safe:animate-spin motion-reduce:animate-none\"\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\n function BaseButton(\n {\n children,\n label,\n icon,\n endIcon,\n type = 'button',\n title,\n ariaLabel,\n tone,\n size,\n active = false,\n iconOnly = false,\n disabled = false,\n loading = false,\n stopPropagation = false,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n onClick,\n 'aria-label': nativeAriaLabel,\n ...buttonProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['active', active],\n ['iconOnly', iconOnly],\n ['disabled', disabled],\n ['loading', loading],\n ['stopPropagation', stopPropagation],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseButton ${name} must be a boolean.`);\n }\n }\n if (size !== undefined && size !== 'sm' && size !== 'md' && size !== 'lg') {\n throw new TypeError('BaseButton size must be \"sm\", \"md\", or \"lg\".');\n }\n if (\n tone !== undefined &&\n tone !== 'default' &&\n tone !== 'primary' &&\n tone !== 'success' &&\n tone !== 'warning' &&\n tone !== 'danger' &&\n tone !== 'muted'\n ) {\n throw new TypeError(\n 'BaseButton tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance({\n ...resolvedAppearance,\n variant,\n density,\n state,\n });\n const resolvedLabel = children ?? label;\n const hasLabel =\n hasRenderableNode(resolvedLabel) &&\n (typeof resolvedLabel !== 'string' || Boolean(resolvedLabel.trim()));\n const explicitAriaLabel =\n nonEmptyText(ariaLabel) ?? nonEmptyText(nativeAriaLabel);\n const labelText =\n typeof resolvedLabel === 'string'\n ? nonEmptyText(resolvedLabel)\n : undefined;\n const resolvedTitle = nonEmptyText(title);\n if (iconOnly && !hasLabel && !explicitAriaLabel && !resolvedTitle) {\n throw new TypeError(\n 'BaseButton iconOnly requires ariaLabel, aria-label, title, or a renderable label.',\n );\n }\n const resolvedAriaLabel =\n explicitAriaLabel ??\n labelText ??\n resolvedTitle;\n const resolvedDisabled = disabled || loading;\n const resolvedTone = tone ?? 'default';\n const resolvedState = state ?? (loading\n ? 'loading'\n : disabled\n ? 'disabled'\n : active\n ? 'active'\n : 'idle');\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (resolvedDisabled) return;\n onClick?.(event);\n };\n\n return (\n <button\n {...componentAttributes}\n {...buttonProps}\n ref={ref}\n type={type}\n title={title}\n aria-label={resolvedAriaLabel}\n aria-pressed={active || undefined}\n aria-busy={loading || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n disabled={resolvedDisabled}\n data-monkeys-component=\"button\"\n data-slot=\"root\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n data-active={active || undefined}\n data-loading={loading || undefined}\n data-disabled={resolvedDisabled || undefined}\n data-icon-only={iconOnly || undefined}\n className={cn(\n theme.slots.buttonBase,\n iconOnly && theme.slots.buttonIconOnly,\n size && buttonSizeClassNames[size],\n iconOnly && size && iconOnlySizeClassNames[size],\n getBaseButtonToneClassName(theme, tone, active),\n resolvedDisabled && theme.slots.buttonDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.button,\n ...(active ? theme.styles.buttonActive : undefined),\n ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\n ...style,\n }}\n onClick={handleClick}\n >\n {loading ? (\n <span\n data-slot=\"icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n )}\n >\n <LoadingIcon />\n </span>\n ) : icon ? (\n <span\n data-slot=\"icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n )}\n >\n {icon}\n </span>\n ) : null}\n {iconOnly ? (\n hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className=\"sr-only\"\n >\n {resolvedLabel}\n </span>\n ) : null\n ) : hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(theme.slots.buttonLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n {!loading && endIcon ? (\n <span\n data-slot=\"end-icon\"\n data-state={resolvedState}\n data-tone={resolvedTone}\n data-size={size}\n className={cn(\n theme.slots.buttonIcon,\n size && iconSizeClassNames[size],\n classNames?.icon,\n classNames?.endIcon,\n )}\n >\n {endIcon}\n </span>\n ) : null}\n </button>\n );\n },\n);\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react';\n\nexport type BaseFieldControlValue = string | boolean;\n\nexport function resolveBaseFieldValidationResult(result: unknown) {\n if (result === null) return null;\n if (typeof result === 'string' && result.trim().length > 0) return result;\n throw new TypeError(\n 'BaseField validate must return a non-empty error string or null.',\n );\n}\n\ninterface BaseFieldContextValue {\n invalid: boolean;\n registerControl: (controlKey: symbol) => () => void;\n notifyBlur: (value: BaseFieldControlValue) => void;\n notifyChange: (value: BaseFieldControlValue) => void;\n}\n\nexport const BaseFieldContext = createContext<BaseFieldContextValue | null>(\n null,\n);\n\nexport function useBaseFieldControl() {\n const context = useContext(BaseFieldContext);\n const controlKeyRef = useRef<symbol | null>(null);\n if (controlKeyRef.current === null) {\n controlKeyRef.current = Symbol('BaseFieldControl');\n }\n\n const registerControl = context?.registerControl;\n useEffect(() => {\n if (!registerControl || controlKeyRef.current === null) return undefined;\n return registerControl(controlKeyRef.current);\n }, [registerControl]);\n\n const notifyBlur = context?.notifyBlur;\n const notifyChange = context?.notifyChange;\n\n return {\n invalid: context?.invalid ?? false,\n notifyBlur: useCallback(\n (value: BaseFieldControlValue) => notifyBlur?.(value),\n [notifyBlur],\n ),\n notifyChange: useCallback(\n (value: BaseFieldControlValue) => notifyChange?.(value),\n [notifyChange],\n ),\n };\n}\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type Ref,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseCheckboxProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasNonEmptyRenderableNode, hasRenderableNode } from './utils';\n\nconst boxSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst indicatorSizeClassNames = {\n sm: 'text-[10px]',\n md: 'text-[11px]',\n lg: 'text-xs',\n} as const;\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === 'function') {\n ref(element);\n continue;\n }\n (ref as { current: TElement | null }).current = element;\n }\n}\n\nexport const BaseCheckbox = forwardRef<HTMLInputElement, BaseCheckboxProps>(\n function BaseCheckbox(\n {\n label,\n description,\n indeterminate = false,\n invalid = false,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onBlur,\n onChange,\n 'aria-invalid': nativeAriaInvalid,\n ...checkboxProps\n },\n forwardedRef,\n ) {\n for (const [name, value] of [\n ['indeterminate', indeterminate],\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseCheckbox ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseCheckbox controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n const hasLabel = hasRenderableNode(label);\n const hasDescription = hasNonEmptyRenderableNode(description);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const indeterminateRef = useRef(indeterminate);\n indeterminateRef.current = indeterminate;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = Boolean(isControlled ? checked : uncontrolledChecked);\n const active = indeterminate || resolvedChecked;\n const state = indeterminate\n ? 'mixed'\n : resolvedChecked\n ? 'checked'\n : 'unchecked';\n\n const setInputRef = useCallback(\n (element: HTMLInputElement | null) => {\n inputRef.current = element;\n if (element) element.indeterminate = indeterminateRef.current;\n setRefs(element, forwardedRef);\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.checked);\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n };\n\n return (\n <label\n {...componentAttributes}\n data-monkeys-component=\"checkbox\"\n data-slot=\"root\"\n data-state={state}\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.checkboxRoot,\n !hasDescription && 'items-center',\n disabled && theme.slots.checkboxDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.checkboxRoot,\n ...style,\n }}\n >\n <span\n data-slot=\"box\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.checkboxBox,\n !hasDescription && 'mt-0',\n active && theme.slots.checkboxBoxChecked,\n resolvedInvalid && theme.slots.checkboxBoxInvalid,\n controlSize && boxSizeClassNames[controlSize],\n classNames?.box,\n )}\n style={{\n ...theme.styles.checkboxBox,\n }}\n >\n <input\n {...checkboxProps}\n ref={setInputRef}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-checked={indeterminate ? 'mixed' : resolvedChecked}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.checkboxInput, classNames?.input)}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.checked);\n }}\n onChange={handleChange}\n />\n {active ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.checkboxIndicator,\n controlSize && indicatorSizeClassNames[controlSize],\n classNames?.indicator,\n )}\n >\n {indeterminate ? '–' : '✓'}\n </span>\n ) : null}\n </span>\n {hasLabel || hasDescription ? (\n <span\n data-slot=\"content\"\n className={cn(theme.slots.checkboxContent, classNames?.content)}\n >\n {hasLabel ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.checkboxLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : null}\n {hasDescription ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.checkboxDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import { forwardRef, type Ref } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseCodeProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseCode = forwardRef<HTMLElement, BaseCodeProps>(function BaseCode(\n {\n children,\n display = 'inline',\n appearance,\n className,\n classNames,\n style,\n ...codeProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (display === 'block') {\n return (\n <pre\n {...componentAttributes}\n {...codeProps}\n ref={ref as Ref<HTMLPreElement>}\n data-monkeys-component=\"code\"\n data-slot=\"root\"\n data-display=\"block\"\n className={cn(theme.slots.codeBlock, classNames?.root, className)}\n style={{\n ...theme.styles.code,\n ...style,\n }}\n >\n <code\n data-slot=\"code\"\n className={cn(theme.slots.codeContent, classNames?.code)}\n style={theme.styles.codeContent}\n >\n {children}\n </code>\n </pre>\n );\n }\n\n return (\n <code\n {...componentAttributes}\n {...codeProps}\n ref={ref as Ref<HTMLElement>}\n data-monkeys-component=\"code\"\n data-slot=\"root\"\n data-display=\"inline\"\n className={cn(\n theme.slots.codeInline,\n theme.slots.codeContent,\n classNames?.root,\n classNames?.code,\n className,\n )}\n style={{\n ...theme.styles.code,\n ...theme.styles.codeContent,\n ...style,\n }}\n >\n {children}\n </code>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseContainerProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseContainer = forwardRef<HTMLDivElement, BaseContainerProps>(\n function BaseContainer(\n {\n children,\n maxWidth = '80rem',\n padding = '1rem',\n appearance,\n className,\n classNames,\n style,\n ...containerProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedMaxWidth = resolveBaseLayoutLength(\n 'BaseContainer',\n 'maxWidth',\n maxWidth,\n );\n const resolvedPadding = resolveBaseLayoutLength(\n 'BaseContainer',\n 'padding',\n padding,\n );\n\n return (\n <div\n {...componentAttributes}\n {...containerProps}\n ref={ref}\n data-monkeys-component=\"container\"\n data-slot=\"root\"\n className={cn(theme.slots.containerRoot, classNames?.root, className)}\n style={{\n ...theme.styles.container,\n maxWidth: resolvedMaxWidth,\n paddingInline: resolvedPadding,\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n} from '../../provider/context';\nimport type { BasePortalContainer, BasePortalProps } from './types';\n\nfunction resolveContainerValue(\n value: BasePortalContainer,\n source: string,\n): Element | null {\n const candidate = typeof value === 'function' ? value() : value;\n if (candidate === null) return null;\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n candidate.nodeType !== 1\n ) {\n throw new TypeError(`${source} must resolve to an Element or null.`);\n }\n return candidate;\n}\n\ninterface ResolveBasePortalContainerOptions {\n explicitProvided: boolean;\n explicitContainer?: BasePortalContainer;\n providerProvided: boolean;\n providerContainer?: BasePortalContainer;\n getDocument?: () => Document | null;\n}\n\nexport function resolveBasePortalContainer({\n explicitProvided,\n explicitContainer,\n providerProvided,\n providerContainer,\n getDocument,\n}: ResolveBasePortalContainerOptions): Element | null {\n if (explicitProvided) {\n return resolveContainerValue(\n explicitContainer as BasePortalContainer,\n 'BasePortal container',\n );\n }\n if (providerProvided) {\n return resolveContainerValue(\n providerContainer as BasePortalContainer,\n 'MonkeysProvider portal.container',\n );\n }\n if (!getDocument) return null;\n\n const ownerDocument = getDocument();\n if (ownerDocument === null) return null;\n if (\n !ownerDocument ||\n typeof ownerDocument !== 'object' ||\n !('body' in ownerDocument)\n ) {\n throw new TypeError(\n 'MonkeysProvider environment.getDocument must resolve to a Document or null.',\n );\n }\n return resolveContainerValue(\n ownerDocument.body,\n 'MonkeysProvider environment.getDocument().body',\n );\n}\n\nexport function BasePortal(props: BasePortalProps) {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean') {\n throw new TypeError('BasePortal disabled must be a boolean.');\n }\n if (props.inline !== undefined && typeof props.inline !== 'boolean') {\n throw new TypeError('BasePortal inline must be a boolean.');\n }\n\n const disabled = props.disabled ?? portalOptions.disabled ?? false;\n if (!mounted || disabled || props.inline) {\n return <>{props.children}</>;\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: props.container !== undefined,\n explicitContainer: props.container,\n providerProvided: portalOptions.container !== undefined,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument,\n });\n\n return container\n ? createPortal(props.children, container)\n : <>{props.children}</>;\n}\n","import { useEffect, useState, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n type MonkeysPortalContainer,\n} from '../../../provider/context';\nimport { resolveBasePortalContainer } from '../BasePortal';\n\ninterface ResolveBaseOverlayPortalStateOptions {\n mounted: boolean;\n explicitDisabled?: boolean;\n explicitContainer?: MonkeysPortalContainer;\n providerDisabled?: boolean;\n providerContainer?: MonkeysPortalContainer;\n getDocument?: () => Document | null;\n}\n\ninterface BaseOverlayPortalInlineState {\n mounted: boolean;\n disabled: boolean;\n shouldPortal: false;\n container: null;\n radixPortalProps: undefined;\n}\n\ninterface BaseOverlayPortalReadyState {\n mounted: true;\n disabled: false;\n shouldPortal: true;\n container: Element;\n radixPortalProps: Readonly<{ container: Element }>;\n}\n\nexport type BaseOverlayPortalState =\n | BaseOverlayPortalInlineState\n | BaseOverlayPortalReadyState;\n\nexport function resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled,\n explicitContainer,\n providerDisabled,\n providerContainer,\n getDocument,\n}: ResolveBaseOverlayPortalStateOptions): BaseOverlayPortalState {\n const disabled = explicitDisabled ?? providerDisabled ?? false;\n if (!mounted || disabled) {\n return {\n mounted,\n disabled,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: explicitContainer !== undefined,\n explicitContainer,\n providerProvided: providerContainer !== undefined,\n providerContainer,\n getDocument,\n });\n\n if (!container) {\n return {\n mounted: true,\n disabled: false,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n return {\n mounted: true,\n disabled: false,\n shouldPortal: true,\n container,\n radixPortalProps: Object.freeze({ container }),\n };\n}\n\nexport interface UseBaseOverlayPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nfunction getDefaultDocument(): Document | null {\n return globalThis.document ?? null;\n}\n\nexport function useBaseOverlayPortal(\n options: UseBaseOverlayPortalOptions = {},\n): BaseOverlayPortalState {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled: options.disabled,\n explicitContainer: options.container,\n providerDisabled: portalOptions.disabled,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument ?? getDefaultDocument,\n });\n}\n\nexport interface BaseOverlayPortalProps extends UseBaseOverlayPortalOptions {\n children?: ReactNode;\n}\n\nexport function renderBaseOverlayPortalContent(\n children: ReactNode,\n portal: BaseOverlayPortalState,\n) {\n return portal.shouldPortal\n ? createPortal(children, portal.container)\n : <>{children}</>;\n}\n\nexport function BaseOverlayPortal({\n children,\n container,\n disabled,\n}: BaseOverlayPortalProps) {\n const portal = useBaseOverlayPortal({ container, disabled });\n return renderBaseOverlayPortalContent(children, portal);\n}\n","import * as ContextMenu from '@radix-ui/react-context-menu';\nimport { forwardRef, type ComponentRef, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysDirection,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\n\nimport type {\n BaseContextMenuCheckboxItemProps,\n BaseContextMenuContentProps,\n BaseContextMenuItemProps,\n BaseContextMenuLabelProps,\n BaseContextMenuProps,\n BaseContextMenuRadioGroupProps,\n BaseContextMenuRadioItemProps,\n BaseContextMenuSeparatorProps,\n BaseContextMenuSubContentProps,\n BaseContextMenuSubProps,\n BaseContextMenuSubTriggerProps,\n BaseContextMenuTriggerProps,\n} from './types';\nimport {\n getBaseMenuItemToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst contextMenuTones = [\n 'default',\n 'primary',\n 'success',\n 'warning',\n 'danger',\n 'muted',\n] as const;\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseContextMenu ${name} must be a boolean.`);\n }\n}\n\nfunction validateTone(value: unknown) {\n if (\n value !== undefined &&\n !contextMenuTones.includes(\n value as (typeof contextMenuTones)[number],\n )\n ) {\n throw new TypeError(\n 'BaseContextMenu tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n}\n\nfunction validateDirection(value: unknown) {\n if (value !== undefined && value !== 'ltr' && value !== 'rtl') {\n throw new TypeError('BaseContextMenu dir must be \"ltr\" or \"rtl\".');\n }\n}\n\nfunction CheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"M3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n );\n}\n\nfunction DotIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"currentColor\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"m6 4 4 4-4 4\" />\n </svg>\n );\n}\n\nfunction renderItemContent({\n label,\n icon,\n shortcut,\n children,\n classNames,\n inset,\n indicator,\n}: Pick<\n BaseContextMenuItemProps,\n 'children' | 'classNames' | 'icon' | 'inset' | 'label' | 'shortcut'\n> & {\n indicator?: ReactNode;\n}) {\n const resolvedLabel = children ?? label;\n\n return (\n <>\n {indicator ? indicator : null}\n {hasRenderableNode(icon) ? (\n <span data-slot=\"icon\" className={cn(classNames?.icon)}>\n {icon}\n </span>\n ) : inset ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"icon\"\n className=\"h-4 w-4 shrink-0\"\n />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span data-slot=\"label\" className={cn(classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n {hasRenderableNode(shortcut) ? (\n <span data-slot=\"shortcut\" className={cn(classNames?.shortcut)}>\n {shortcut}\n </span>\n ) : null}\n </>\n );\n}\n\nexport function BaseContextMenu({\n children,\n trigger,\n content,\n disabled = false,\n modal = true,\n dir,\n appearance,\n className,\n classNames,\n onOpenChange,\n}: BaseContextMenuProps) {\n validateBoolean(disabled, 'disabled');\n validateBoolean(modal, 'modal');\n validateDirection(dir);\n const inheritedDirection = useMonkeysDirection();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n\n return (\n <ContextMenu.Root\n onOpenChange={onOpenChange}\n modal={modal}\n dir={dir ?? inheritedDirection}\n >\n {trigger ? (\n <BaseContextMenuTrigger\n disabled={disabled}\n appearance={resolvedAppearance}\n className={cn(classNames?.trigger, className)}\n >\n {trigger}\n </BaseContextMenuTrigger>\n ) : null}\n {content ? (\n <BaseContextMenuContent\n appearance={resolvedAppearance}\n className={classNames?.content}\n >\n {content}\n </BaseContextMenuContent>\n ) : null}\n {children}\n </ContextMenu.Root>\n );\n}\n\nexport const BaseContextMenuTrigger = forwardRef<\n ComponentRef<typeof ContextMenu.Trigger>,\n BaseContextMenuTriggerProps\n>(function BaseContextMenuTrigger(\n {\n children,\n disabled = false,\n asChild = false,\n appearance,\n className,\n style,\n ...triggerProps\n },\n ref,\n) {\n validateBoolean(disabled, 'Trigger disabled');\n validateBoolean(asChild, 'Trigger asChild');\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Trigger\n {...componentAttributes}\n {...triggerProps}\n ref={ref}\n asChild={asChild}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"trigger\"\n data-disabled={disabled || undefined}\n className={cn(\n !asChild && theme.slots.menuTrigger,\n disabled && !asChild && theme.slots.menuItemDisabled,\n className,\n )}\n style={style}\n >\n {children}\n </ContextMenu.Trigger>\n );\n});\n\nexport const BaseContextMenuContent = forwardRef<\n ComponentRef<typeof ContextMenu.Content>,\n BaseContextMenuContentProps\n>(function BaseContextMenuContent(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...contentProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const portal = useBaseOverlayPortal();\n const content = (\n <ContextMenu.Content\n {...componentAttributes}\n {...contentProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"content\"\n className={cn(theme.slots.menuContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.Content>\n );\n\n return portal.shouldPortal ? (\n <ContextMenu.Portal {...portal.radixPortalProps}>\n {content}\n </ContextMenu.Portal>\n ) : content;\n});\n\nexport const BaseContextMenuLabel = forwardRef<\n ComponentRef<typeof ContextMenu.Label>,\n BaseContextMenuLabelProps\n>(function BaseContextMenuLabel(\n { children, appearance, className, style, ...labelProps },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Label\n {...componentAttributes}\n {...labelProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"label\"\n className={cn(theme.slots.menuLabel, className)}\n style={style}\n >\n {children}\n </ContextMenu.Label>\n );\n});\n\nexport const BaseContextMenuSeparator = forwardRef<\n ComponentRef<typeof ContextMenu.Separator>,\n BaseContextMenuSeparatorProps\n>(function BaseContextMenuSeparator(\n { appearance, className, style, ...separatorProps },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Separator\n {...componentAttributes}\n {...separatorProps}\n ref={ref}\n data-monkeys-component=\"context-menu\"\n data-slot=\"separator\"\n className={cn(theme.slots.menuSeparator, className)}\n style={style}\n />\n );\n});\n\nexport const BaseContextMenuItem = forwardRef<\n ComponentRef<typeof ContextMenu.Item>,\n BaseContextMenuItemProps\n>(function BaseContextMenuItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'Item disabled');\n validateBoolean(inset, 'Item inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.Item\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"item\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuItem,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n })}\n </ContextMenu.Item>\n );\n});\n\nexport const BaseContextMenuCheckboxItem = forwardRef<\n ComponentRef<typeof ContextMenu.CheckboxItem>,\n BaseContextMenuCheckboxItemProps\n>(function BaseContextMenuCheckboxItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n checked,\n onCheckedChange,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'CheckboxItem disabled');\n validateBoolean(inset, 'CheckboxItem inset');\n validateTone(tone);\n if (\n checked !== undefined &&\n checked !== 'indeterminate' &&\n typeof checked !== 'boolean'\n ) {\n throw new TypeError(\n 'BaseContextMenu CheckboxItem checked must be a boolean or \"indeterminate\".',\n );\n }\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.CheckboxItem\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n checked={checked}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"checkbox-item\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n data-checked={\n checked === 'indeterminate'\n ? 'mixed'\n : checked === undefined\n ? undefined\n : String(checked)\n }\n onCheckedChange={(nextChecked) => {\n if (disabled) return;\n onCheckedChange?.(nextChecked);\n }}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n data-slot=\"indicator\"\n className={cn(theme.slots.menuCheckboxIndicator, classNames?.indicator)}\n >\n <CheckIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.CheckboxItem>\n );\n});\n\nexport function BaseContextMenuRadioGroup({\n children,\n value,\n onValueChange,\n}: BaseContextMenuRadioGroupProps) {\n return (\n <ContextMenu.RadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </ContextMenu.RadioGroup>\n );\n}\n\nexport const BaseContextMenuRadioItem = forwardRef<\n ComponentRef<typeof ContextMenu.RadioItem>,\n BaseContextMenuRadioItemProps\n>(function BaseContextMenuRadioItem(\n {\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n value,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'RadioItem disabled');\n validateBoolean(inset, 'RadioItem inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <ContextMenu.RadioItem\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n value={value}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"radio-item\"\n data-tone={resolvedTone}\n data-value={value}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n data-slot=\"indicator\"\n className={cn(theme.slots.menuRadioIndicator, classNames?.indicator)}\n >\n <DotIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.RadioItem>\n );\n});\n\nexport function BaseContextMenuSub({\n children,\n open,\n defaultOpen,\n onOpenChange,\n}: BaseContextMenuSubProps) {\n if (open !== undefined) validateBoolean(open, 'Sub open');\n if (defaultOpen !== undefined) {\n validateBoolean(defaultOpen, 'Sub defaultOpen');\n }\n return (\n <ContextMenu.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n {children}\n </ContextMenu.Sub>\n );\n}\n\nexport const BaseContextMenuSubTrigger = forwardRef<\n ComponentRef<typeof ContextMenu.SubTrigger>,\n BaseContextMenuSubTriggerProps\n>(function BaseContextMenuSubTrigger(\n {\n children,\n label,\n icon,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n ...itemProps\n },\n ref,\n) {\n validateBoolean(disabled, 'SubTrigger disabled');\n validateBoolean(inset, 'SubTrigger inset');\n validateTone(tone);\n const resolvedTone = tone ?? 'default';\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedLabel = children ?? label;\n\n return (\n <ContextMenu.SubTrigger\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n disabled={disabled}\n data-monkeys-component=\"context-menu\"\n data-slot=\"sub-trigger\"\n data-tone={resolvedTone}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.menuSubTrigger,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span\n data-slot=\"icon\"\n className={cn(theme.slots.menuItemIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : inset ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"icon\"\n className=\"h-4 w-4 shrink-0\"\n />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.menuItemLabel, classNames?.label)}\n >\n {resolvedLabel}\n </span>\n ) : null}\n <span\n data-slot=\"sub-indicator\"\n className={cn(\n theme.slots.menuSubTriggerIcon,\n classNames?.shortcut,\n 'rtl:rotate-180',\n )}\n >\n <ChevronRightIcon />\n </span>\n </ContextMenu.SubTrigger>\n );\n});\n\nexport const BaseContextMenuSubContent = forwardRef<\n ComponentRef<typeof ContextMenu.SubContent>,\n BaseContextMenuSubContentProps\n>(function BaseContextMenuSubContent(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n sideOffset = 6,\n ...subContentProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const portal = useBaseOverlayPortal();\n const content = (\n <ContextMenu.SubContent\n {...componentAttributes}\n {...subContentProps}\n ref={ref}\n sideOffset={sideOffset}\n data-monkeys-component=\"context-menu\"\n data-slot=\"sub-content\"\n className={cn(theme.slots.menuSubContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.SubContent>\n );\n\n return portal.shouldPortal ? (\n <ContextMenu.Portal {...portal.radixPortalProps}>\n {content}\n </ContextMenu.Portal>\n ) : content;\n});\n","import type { BaseDescriptionListProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst columnClassNames = {\n 1: 'grid-cols-1',\n 2: 'md:grid-cols-2',\n 3: 'md:grid-cols-2 xl:grid-cols-3',\n};\n\nexport function BaseDescriptionList({\n items,\n columns = 1,\n appearance,\n className,\n classNames,\n style,\n children,\n ...listProps\n}: BaseDescriptionListProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <dl\n {...listProps}\n className={cn(\n theme.slots.descriptionListRoot,\n columnClassNames[columns],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.descriptionList,\n ...style,\n }}\n >\n {items?.map((item, index) => (\n <div\n key={index}\n className={cn(theme.slots.descriptionListItem, classNames?.item)}\n >\n <dt className={cn(theme.slots.descriptionListTerm, classNames?.term)}>\n {item.term}\n </dt>\n <dd\n className={cn(theme.slots.descriptionListValue, classNames?.value)}\n >\n {item.value}\n </dd>\n </div>\n ))}\n {children}\n </dl>\n );\n}\n","import * as Dialog from '@radix-ui/react-dialog';\nimport { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseControlTone, BaseDialogProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst dialogTriggerTones = [\n 'default',\n 'primary',\n 'success',\n 'warning',\n 'danger',\n 'muted',\n] as const;\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseDialog ${name} must be a boolean.`);\n }\n}\n\nfunction validateTriggerTone(value: unknown) {\n if (\n !dialogTriggerTones.includes(\n value as (typeof dialogTriggerTones)[number],\n )\n ) {\n throw new TypeError(\n 'BaseDialog triggerTone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n );\n }\n}\n\nfunction renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone,\n triggerDisabled,\n theme,\n}: Pick<\n BaseDialogProps,\n 'trigger' | 'triggerDisabled' | 'triggerIcon' | 'triggerLabel'\n> & {\n triggerTone: BaseControlTone;\n theme: ReturnType<typeof resolveBaseAppearance>;\n}) {\n if (hasRenderableNode(trigger)) {\n return (\n <span\n role=\"button\"\n tabIndex={triggerDisabled ? -1 : 0}\n aria-disabled={triggerDisabled || undefined}\n onKeyDown={(event) => {\n if (triggerDisabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.currentTarget.click();\n }\n }}\n >\n {trigger}\n </span>\n );\n }\n\n if (!hasRenderableNode(triggerLabel)) return null;\n\n return (\n <button\n type=\"button\"\n disabled={triggerDisabled}\n aria-label={\n typeof triggerLabel === 'string' && triggerLabel.trim()\n ? triggerLabel\n : undefined\n }\n className={cn(\n theme.slots.buttonBase,\n getBaseButtonToneClassName(theme, triggerTone),\n triggerDisabled && theme.slots.buttonDisabled,\n )}\n style={{\n ...theme.styles.button,\n ...(triggerDisabled ? theme.styles.buttonDisabled : undefined),\n }}\n >\n {hasRenderableNode(triggerIcon) ? (\n <span data-slot=\"icon\" className={theme.slots.buttonIcon}>\n {triggerIcon}\n </span>\n ) : null}\n <span data-slot=\"label\" className={theme.slots.buttonLabel}>\n {triggerLabel}\n </span>\n </button>\n );\n}\n\nexport const BaseDialog = forwardRef<HTMLDivElement, BaseDialogProps>(\n function BaseDialog(\n {\n open,\n defaultOpen = false,\n title,\n description,\n header,\n footer,\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone = 'default',\n triggerDisabled = false,\n closeLabel,\n closeOnEscape = true,\n closeOnOverlayClick = true,\n showCloseButton = true,\n keepMounted = false,\n trapFocus = true,\n restoreFocus = true,\n initialFocus = 'first-interactive',\n initialFocusRef,\n zIndex,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n id,\n ...dialogProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(triggerDisabled, 'triggerDisabled');\n validateBoolean(closeOnEscape, 'closeOnEscape');\n validateBoolean(closeOnOverlayClick, 'closeOnOverlayClick');\n validateBoolean(showCloseButton, 'showCloseButton');\n validateBoolean(keepMounted, 'keepMounted');\n validateBoolean(trapFocus, 'trapFocus');\n validateBoolean(restoreFocus, 'restoreFocus');\n validateBoolean(portal, 'portal');\n validateTriggerTone(triggerTone);\n if (\n initialFocus !== 'first-interactive' &&\n initialFocus !== 'container' &&\n initialFocus !== 'explicit'\n ) {\n throw new TypeError(\n 'BaseDialog initialFocus must be \"first-interactive\", \"container\", or \"explicit\".',\n );\n }\n if (zIndex !== undefined && !Number.isFinite(zIndex)) {\n throw new TypeError('BaseDialog zIndex must be a finite number.');\n }\n\n const messages = useMonkeysLocaleMessages().dialog;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const resolvedCloseLabel =\n closeLabel === undefined ? messages.close : closeLabel;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const panelRef = useRef<HTMLDivElement | null>(null);\n const returnFocusRef = useRef<HTMLElement | null>(null);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n const hasTitle = hasRenderableNode(title);\n const hasDescription = hasRenderableNode(description);\n const hasCustomHeader = hasRenderableNode(header);\n\n if (\n showCloseButton &&\n (typeof resolvedCloseLabel !== 'string' || !resolvedCloseLabel.trim())\n ) {\n throw new TypeError(\n 'BaseDialog closeLabel must be a non-empty string when showCloseButton is true.',\n );\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n useEffect(() => {\n if (!isOpen || !keepMounted) return undefined;\n const panel = panelRef.current;\n const ownerDocument = panel?.ownerDocument;\n const ownerWindow = ownerDocument?.defaultView;\n if (!panel || !ownerDocument || !ownerWindow) return undefined;\n\n returnFocusRef.current =\n ownerDocument.activeElement instanceof ownerWindow.HTMLElement\n ? ownerDocument.activeElement\n : null;\n const focusableSelector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',');\n const focusInitial = () => {\n const firstInteractive = panel.querySelector<HTMLElement>(focusableSelector);\n const target =\n initialFocus === 'container'\n ? panel\n : initialFocus === 'explicit'\n ? initialFocusRef?.current ?? panel\n : firstInteractive ?? panel;\n target.focus();\n };\n const frame = ownerWindow.requestAnimationFrame(focusInitial);\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape) {\n event.preventDefault();\n event.stopPropagation();\n handleOpenChange(false);\n return;\n }\n if (event.key !== 'Tab' || !trapFocus) return;\n const focusable = Array.from(\n panel.querySelectorAll<HTMLElement>(focusableSelector),\n );\n if (focusable.length === 0) {\n event.preventDefault();\n panel.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (event.shiftKey && ownerDocument.activeElement === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && ownerDocument.activeElement === last) {\n event.preventDefault();\n first.focus();\n }\n };\n ownerWindow.addEventListener('keydown', handleKeyDown);\n return () => {\n ownerWindow.cancelAnimationFrame(frame);\n ownerWindow.removeEventListener('keydown', handleKeyDown);\n if (restoreFocus && returnFocusRef.current?.isConnected) {\n returnFocusRef.current.focus();\n }\n };\n }, [\n closeOnEscape,\n initialFocus,\n initialFocusRef,\n isOpen,\n keepMounted,\n restoreFocus,\n trapFocus,\n ]);\n\n const semanticHeader =\n hasCustomHeader || hasTitle || hasDescription ? (\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"header\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogHeader, classNames?.header)}\n >\n {hasCustomHeader ? header : null}\n {hasTitle ? (\n <Dialog.Title\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"title\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={\n hasCustomHeader\n ? 'sr-only'\n : cn(theme.slots.dialogTitle, classNames?.title)\n }\n >\n {title}\n </Dialog.Title>\n ) : null}\n {hasDescription ? (\n <Dialog.Description\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"description\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={\n hasCustomHeader\n ? 'sr-only'\n : cn(\n theme.slots.dialogDescription,\n classNames?.description,\n )\n }\n >\n {description}\n </Dialog.Description>\n ) : null}\n </div>\n ) : null;\n\n const triggerNode = renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone,\n triggerDisabled,\n theme,\n });\n\n const dialogLayers = isOpen || keepMounted ? (\n <>\n <Dialog.Overlay\n forceMount={keepMounted || undefined}\n hidden={!isOpen}\n {...componentAttributes}\n aria-hidden=\"true\"\n data-monkeys-component=\"dialog\"\n data-slot=\"overlay\"\n data-portal={portalState}\n className={cn(theme.slots.dialogOverlay, classNames?.overlay)}\n style={{ ...theme.styles.dialogOverlay, zIndex }}\n />\n <div\n {...componentAttributes}\n hidden={!isOpen}\n data-monkeys-component=\"dialog\"\n data-slot=\"content\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogContent, classNames?.content)}\n style={{ zIndex }}\n >\n <Dialog.Content\n forceMount={keepMounted || undefined}\n {...componentAttributes}\n {...(!hasTitle ? { 'aria-labelledby': undefined } : {})}\n {...(!hasDescription ? { 'aria-describedby': undefined } : {})}\n asChild\n onOpenAutoFocus={(event) => {\n if (keepMounted) event.preventDefault();\n }}\n onCloseAutoFocus={(event) => {\n if (keepMounted) event.preventDefault();\n }}\n onEscapeKeyDown={(event) => {\n if (keepMounted || !closeOnEscape) event.preventDefault();\n }}\n onPointerDownOutside={(event) => {\n if (!closeOnOverlayClick) event.preventDefault();\n }}\n >\n <div\n {...componentAttributes}\n ref={panelRef}\n tabIndex={-1}\n aria-modal=\"true\"\n data-monkeys-component=\"dialog\"\n data-slot=\"panel\"\n data-portal={portalState}\n className={cn(theme.slots.dialogPanel, classNames?.panel)}\n style={theme.styles.dialogPanel}\n >\n {semanticHeader}\n\n {showCloseButton ? (\n <Dialog.Close asChild>\n <button\n {...componentAttributes}\n type=\"button\"\n aria-label={resolvedCloseLabel}\n title={resolvedCloseLabel}\n data-monkeys-component=\"dialog\"\n data-slot=\"close\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(\n theme.slots.dialogClose,\n classNames?.close,\n )}\n >\n ×\n </button>\n </Dialog.Close>\n ) : null}\n\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"body\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogBody, classNames?.body)}\n >\n {children}\n </div>\n\n {hasRenderableNode(footer) ? (\n <div\n {...componentAttributes}\n data-monkeys-component=\"dialog\"\n data-slot=\"footer\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogFooter, classNames?.footer)}\n >\n {footer}\n </div>\n ) : null}\n </div>\n </Dialog.Content>\n </div>\n </>\n ) : null;\n\n return (\n <div\n {...componentAttributes}\n {...dialogProps}\n ref={ref}\n id={id}\n data-monkeys-component=\"dialog\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-portal={portalState}\n className={cn(theme.slots.dialogRoot, classNames?.root, className)}\n style={style}\n >\n <Dialog.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={!keepMounted && trapFocus}\n >\n {triggerNode ? (\n <Dialog.Trigger\n {...componentAttributes}\n asChild\n disabled={triggerDisabled}\n data-monkeys-component=\"dialog\"\n data-slot=\"trigger\"\n data-portal={portalState}\n data-tone={triggerTone}\n data-disabled={triggerDisabled || undefined}\n className={cn(\n theme.slots.dialogTrigger,\n triggerDisabled && theme.slots.dialogTriggerDisabled,\n classNames?.trigger,\n )}\n >\n {triggerNode}\n </Dialog.Trigger>\n ) : null}\n {portal && overlayPortal.shouldPortal ? (\n <Dialog.Portal\n {...overlayPortal.radixPortalProps}\n forceMount={keepMounted || undefined}\n >\n {dialogLayers}\n </Dialog.Portal>\n ) : (\n dialogLayers\n )}\n </Dialog.Root>\n </div>\n );\n },\n);\n","import { forwardRef, type CSSProperties } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseDividerProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseDivider = forwardRef<HTMLDivElement, BaseDividerProps>(\n function BaseDivider(\n {\n orientation = 'horizontal',\n label,\n appearance,\n className,\n classNames,\n style,\n ...dividerProps\n },\n ref,\n ) {\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseDivider orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const isVertical = orientation === 'vertical';\n const hasLabel = hasRenderableNode(label) && !isVertical;\n const rootStyle: CSSProperties = {\n ...theme.styles.divider,\n ...style,\n };\n\n if (hasLabel) {\n return (\n <div\n {...componentAttributes}\n {...dividerProps}\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n data-monkeys-component=\"divider\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state=\"labeled\"\n className={cn(\n 'flex min-w-0 items-center',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n >\n <div\n data-slot=\"line\"\n data-orientation={orientation}\n className={cn(\n 'min-w-0 flex-1 border-t',\n theme.slots.dividerRoot,\n classNames?.line,\n )}\n />\n <span\n data-slot=\"label\"\n data-orientation={orientation}\n className={cn(theme.slots.dividerLabel, classNames?.label)}\n >\n {label}\n </span>\n <div\n data-slot=\"line\"\n data-orientation={orientation}\n className={cn(\n 'min-w-0 flex-1 border-t',\n theme.slots.dividerRoot,\n classNames?.line,\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n {...componentAttributes}\n {...dividerProps}\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n data-monkeys-component=\"divider\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state=\"unlabeled\"\n className={cn(\n theme.slots.dividerRoot,\n isVertical ? 'min-h-full self-stretch border-l' : 'w-full border-t',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n />\n );\n },\n);\n","import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { forwardRef, useState, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysDirection,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type {\n BaseDropdownMenuItem,\n BaseDropdownMenuPlacement,\n BaseDropdownMenuProps,\n} from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseDropdownMenu ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'bottom-start' &&\n value !== 'bottom-end' &&\n value !== 'top-start' &&\n value !== 'top-end'\n ) {\n throw new TypeError(\n 'BaseDropdownMenu placement must be \"bottom-start\", \"bottom-end\", \"top-start\", or \"top-end\".',\n );\n }\n}\n\nfunction validateDirection(value: unknown) {\n if (value !== undefined && value !== 'ltr' && value !== 'rtl') {\n throw new TypeError('BaseDropdownMenu dir must be \"ltr\" or \"rtl\".');\n }\n}\n\nfunction validateItems(items: unknown): asserts items is BaseDropdownMenuItem[] {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseDropdownMenu items must be an array.');\n }\n\n const values = new Set<string>();\n for (const [index, item] of items.entries()) {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n throw new TypeError(`BaseDropdownMenu items[${index}] must be an object.`);\n }\n if (typeof item.value !== 'string' || !item.value.trim()) {\n throw new TypeError(\n `BaseDropdownMenu items[${index}].value must be a non-empty string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n `BaseDropdownMenu item value \"${item.value}\" must be unique.`,\n );\n }\n values.add(item.value);\n for (const name of ['disabled', 'danger', 'separatorBefore'] as const) {\n const value = item[name];\n if (value !== undefined) {\n validateBoolean(value, `items[${index}].${name}`);\n }\n }\n if (item.onSelect !== undefined && typeof item.onSelect !== 'function') {\n throw new TypeError(\n `BaseDropdownMenu items[${index}].onSelect must be a function.`,\n );\n }\n }\n}\n\nfunction resolvePlacement(placement: BaseDropdownMenuPlacement) {\n const [side, align] = placement.split('-') as [\n 'bottom' | 'top',\n 'end' | 'start',\n ];\n return { side, align };\n}\n\nfunction renderTrigger({\n trigger,\n triggerLabel,\n triggerIcon,\n disabled,\n theme,\n}: Pick<\n BaseDropdownMenuProps,\n 'disabled' | 'trigger' | 'triggerIcon' | 'triggerLabel'\n> & {\n triggerLabel: ReactNode;\n theme: ReturnType<typeof resolveBaseAppearance>;\n}) {\n return hasRenderableNode(trigger) ? (\n <span\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled || undefined}\n >\n {trigger}\n </span>\n ) : (\n <button\n type=\"button\"\n disabled={disabled}\n aria-label={\n typeof triggerLabel === 'string' && triggerLabel.trim()\n ? triggerLabel\n : undefined\n }\n className={cn(\n theme.slots.buttonBase,\n getBaseButtonToneClassName(theme),\n disabled && theme.slots.buttonDisabled,\n )}\n style={{\n ...theme.styles.button,\n ...(disabled ? theme.styles.buttonDisabled : undefined),\n }}\n >\n {hasRenderableNode(triggerIcon) ? (\n <span data-slot=\"icon\" className={theme.slots.buttonIcon}>\n {triggerIcon}\n </span>\n ) : null}\n {hasRenderableNode(triggerLabel) ? (\n <span data-slot=\"label\" className={theme.slots.buttonLabel}>\n {triggerLabel}\n </span>\n ) : null}\n </button>\n );\n}\n\nexport const BaseDropdownMenu = forwardRef<\n HTMLDivElement,\n BaseDropdownMenuProps\n>(function BaseDropdownMenu(\n {\n items = [],\n label,\n trigger,\n triggerLabel,\n triggerIcon,\n disabled = false,\n open,\n defaultOpen = false,\n placement = 'bottom-start',\n closeOnSelect = true,\n portal = false,\n dir,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n onSelect,\n ...menuProps\n },\n ref,\n) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(closeOnSelect, 'closeOnSelect');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n validateDirection(dir);\n validateItems(items);\n\n const inheritedDirection = useMonkeysDirection();\n const resolvedDirection = dir ?? inheritedDirection;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const messages = useMonkeysLocaleMessages().dropdownMenu;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const resolvedTriggerLabel =\n triggerLabel === undefined ? messages.actions : triggerLabel;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n const { side, align } = resolvePlacement(placement);\n\n if (\n triggerLabel === undefined &&\n (typeof messages.actions !== 'string' || !messages.actions.trim())\n ) {\n throw new TypeError(\n 'BaseDropdownMenu locale actions message must be a non-empty string.',\n );\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const menuContent = (\n <DropdownMenu.Content\n {...componentAttributes}\n side={side}\n align={align}\n sideOffset={6}\n collisionPadding={8}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(theme.slots.dropdownMenu, classNames?.menu)}\n style={theme.styles.dropdownMenu}\n >\n {hasRenderableNode(label) ? (\n <DropdownMenu.Label\n {...componentAttributes}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"label\"\n data-state=\"static\"\n className={cn(theme.slots.dropdownLabel, classNames?.label)}\n >\n {label}\n </DropdownMenu.Label>\n ) : null}\n {items.map((item) => {\n const itemDisabled = item.disabled ?? false;\n const tone = item.danger ? 'danger' : 'default';\n\n return (\n <div\n key={item.value}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"item-wrapper\"\n >\n {item.separatorBefore ? (\n <DropdownMenu.Separator\n {...componentAttributes}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"separator\"\n data-state=\"static\"\n className={cn(\n theme.slots.dropdownSeparator,\n classNames?.separator,\n )}\n />\n ) : null}\n <DropdownMenu.Item\n asChild\n disabled={itemDisabled}\n onSelect={(event) => {\n item.onSelect?.(item);\n onSelect?.(item);\n if (!closeOnSelect) {\n event.preventDefault();\n }\n }}\n >\n <button\n {...componentAttributes}\n type=\"button\"\n disabled={itemDisabled}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"item\"\n data-state={itemDisabled ? 'disabled' : 'enabled'}\n data-value={item.value}\n data-placement={placement}\n data-portal={portalState}\n data-tone={tone}\n data-disabled={itemDisabled || undefined}\n className={cn(\n theme.slots.dropdownItem,\n item.danger && theme.slots.dropdownItemDanger,\n itemDisabled && theme.slots.dropdownItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.dropdownItem}\n >\n {hasRenderableNode(item.icon) ? (\n <span\n data-slot=\"item-icon\"\n className={cn(\n theme.slots.dropdownItemIcon,\n classNames?.itemIcon,\n )}\n >\n {item.icon}\n </span>\n ) : null}\n <span\n data-slot=\"item-content\"\n className={cn(\n theme.slots.dropdownItemContent,\n classNames?.itemContent,\n )}\n >\n <span\n data-slot=\"item-label\"\n className={cn(\n theme.slots.dropdownItemLabel,\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n {hasRenderableNode(item.description) ? (\n <span\n data-slot=\"item-description\"\n className={cn(\n theme.slots.dropdownItemDescription,\n classNames?.itemDescription,\n )}\n >\n {item.description}\n </span>\n ) : null}\n </span>\n {hasRenderableNode(item.shortcut) ? (\n <span\n data-slot=\"item-shortcut\"\n className={cn(\n theme.slots.dropdownItemShortcut,\n classNames?.itemShortcut,\n )}\n >\n {item.shortcut}\n </span>\n ) : null}\n </button>\n </DropdownMenu.Item>\n </div>\n );\n })}\n {children}\n </DropdownMenu.Content>\n );\n\n return (\n <div\n {...componentAttributes}\n {...menuProps}\n ref={ref}\n dir={resolvedDirection}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(theme.slots.dropdownRoot, classNames?.root, className)}\n style={style}\n >\n <DropdownMenu.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n dir={resolvedDirection}\n modal={false}\n >\n <DropdownMenu.Trigger\n {...componentAttributes}\n asChild\n disabled={disabled}\n data-monkeys-component=\"dropdown-menu\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-tone=\"default\"\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.dropdownTrigger,\n disabled && theme.slots.dropdownTriggerDisabled,\n classNames?.trigger,\n )}\n >\n {renderTrigger({\n trigger,\n triggerLabel: resolvedTriggerLabel,\n triggerIcon,\n disabled,\n theme,\n })}\n </DropdownMenu.Trigger>\n {portal && overlayPortal.shouldPortal ? (\n <DropdownMenu.Portal {...overlayPortal.radixPortalProps}>\n {menuContent}\n </DropdownMenu.Portal>\n ) : (\n menuContent\n )}\n </DropdownMenu.Root>\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseEmptyStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultEmptyIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.8\"\n >\n <rect width=\"16\" height=\"12\" x=\"4\" y=\"6\" rx=\"2\" />\n <path d=\"M8 10h8\" />\n <path d=\"M8 14h5\" />\n </svg>\n );\n}\n\nexport const BaseEmptyState = forwardRef<HTMLDivElement, BaseEmptyStateProps>(\n function BaseEmptyState(\n {\n icon = <DefaultEmptyIcon />,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n ...stateProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...stateProps}\n ref={ref}\n data-monkeys-component=\"empty-state\"\n data-slot=\"root\"\n data-state=\"empty\"\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div\n data-slot=\"icon\"\n data-state=\"empty\"\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n data-state=\"empty\"\n className={cn(theme.slots.stateTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n data-state=\"empty\"\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div\n data-slot=\"actions\"\n data-state=\"empty\"\n className={cn(theme.slots.stateActions, classNames?.actions)}\n >\n {actions}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseFieldControlProps, BaseFieldProps } from './types';\nimport {\n BaseFieldContext,\n resolveBaseFieldValidationResult,\n type BaseFieldControlValue,\n} from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction mergeAriaIds(...values: Array<string | undefined>) {\n const ids = values.flatMap(\n (value) => value?.split(/\\s+/).filter(Boolean) ?? [],\n );\n return ids.length ? Array.from(new Set(ids)).join(' ') : undefined;\n}\n\nfunction resolveOptionalId(\n value: string | undefined,\n fallback: string,\n name: string,\n) {\n if (value === undefined) return fallback;\n if (!value.trim() || /\\s/.test(value)) {\n throw new TypeError(\n `BaseField ${name} must be a non-empty ID without whitespace.`,\n );\n }\n return value;\n}\n\nexport const BaseField = forwardRef<HTMLDivElement, BaseFieldProps>(\n function BaseField(\n {\n label,\n description,\n message,\n error,\n required = false,\n disabled = false,\n htmlFor,\n descriptionId,\n messageId,\n errorId,\n validate,\n validationMode = 'onBlur',\n children,\n appearance,\n className,\n classNames,\n style,\n ...fieldProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['required', required],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseField ${name} must be a boolean.`);\n }\n }\n if (validate !== undefined && typeof validate !== 'function') {\n throw new TypeError('BaseField validate must be a function.');\n }\n if (validationMode !== 'onBlur' && validationMode !== 'onChange') {\n throw new TypeError(\n 'BaseField validationMode must be \"onBlur\" or \"onChange\".',\n );\n }\n\n const generatedId = useId();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasDescription = hasRenderableNode(description);\n const [internalError, setInternalError] = useState<string | null>(null);\n const registeredControlsRef = useRef(new Set<symbol>());\n const validateRef = useRef(validate);\n const validationModeRef = useRef(validationMode);\n const disabledRef = useRef(disabled);\n validateRef.current = validate;\n validationModeRef.current = validationMode;\n disabledRef.current = disabled;\n const hasValidator = validate !== undefined;\n\n useEffect(() => {\n if (!hasValidator || disabled) {\n setInternalError(null);\n }\n }, [disabled, hasValidator]);\n\n useEffect(() => {\n if (hasValidator && registeredControlsRef.current.size !== 1) {\n throw new TypeError(\n 'BaseField with validate must contain exactly one compatible Base control.',\n );\n }\n }, [hasValidator]);\n\n const registerControl = useCallback((controlKey: symbol) => {\n const registeredControls = registeredControlsRef.current;\n if (\n validateRef.current !== undefined &&\n !registeredControls.has(controlKey) &&\n registeredControls.size > 0\n ) {\n throw new TypeError(\n 'BaseField with validate supports exactly one compatible Base control. Use BaseFieldset for control groups.',\n );\n }\n registeredControls.add(controlKey);\n return () => {\n registeredControls.delete(controlKey);\n };\n }, []);\n\n const runValidation = useCallback(\n (mode: 'onBlur' | 'onChange', value: BaseFieldControlValue) => {\n const currentValidate = validateRef.current;\n if (\n disabledRef.current ||\n currentValidate === undefined ||\n validationModeRef.current !== mode\n ) {\n return;\n }\n\n const result = resolveBaseFieldValidationResult(currentValidate(value));\n if (result === null) {\n setInternalError(null);\n return;\n }\n setInternalError(result);\n },\n [],\n );\n\n const notifyBlur = useCallback(\n (value: BaseFieldControlValue) => runValidation('onBlur', value),\n [runValidation],\n );\n const notifyChange = useCallback(\n (value: BaseFieldControlValue) => runValidation('onChange', value),\n [runValidation],\n );\n\n const hasExternalError = hasRenderableNode(error);\n const resolvedError = hasExternalError ? error : internalError;\n const hasError = hasRenderableNode(resolvedError);\n const hasMessage = !hasError && hasRenderableNode(message);\n const resolvedMessage = hasError ? resolvedError : message;\n const resolvedControlId = htmlFor ?? `${generatedId}-control`;\n const resolvedDescriptionId = hasDescription\n ? resolveOptionalId(\n descriptionId,\n `${generatedId}-description`,\n 'descriptionId',\n )\n : undefined;\n const resolvedMessageId = hasMessage\n ? resolveOptionalId(messageId, `${generatedId}-message`, 'messageId')\n : undefined;\n const resolvedErrorId = hasError\n ? resolveOptionalId(errorId, `${generatedId}-error`, 'errorId')\n : undefined;\n const controlProps: BaseFieldControlProps = {\n id: resolvedControlId,\n 'aria-describedby': mergeAriaIds(\n resolvedDescriptionId,\n resolvedMessageId,\n ),\n 'aria-errormessage': resolvedErrorId,\n 'aria-invalid': hasError ? true : undefined,\n 'aria-required': required ? true : undefined,\n required: required || undefined,\n disabled: disabled || undefined,\n };\n const renderedChildren =\n typeof children === 'function' ? children(controlProps) : children;\n const fieldContextValue = useMemo(\n () => ({\n invalid: hasError,\n registerControl,\n notifyBlur,\n notifyChange,\n }),\n [hasError, notifyBlur, notifyChange, registerControl],\n );\n\n return (\n <div\n {...componentAttributes}\n {...fieldProps}\n ref={ref}\n aria-disabled={disabled || undefined}\n data-monkeys-component=\"field\"\n data-slot=\"root\"\n data-required={required || undefined}\n data-disabled={disabled || undefined}\n data-invalid={hasError || undefined}\n className={cn(\n theme.slots.fieldRoot,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.field,\n ...style,\n }}\n >\n {hasRenderableNode(label) ? (\n <div\n data-slot=\"label-row\"\n className={cn(theme.slots.fieldLabelRow, classNames?.labelRow)}\n >\n <label\n htmlFor={typeof children === 'function' ? resolvedControlId : htmlFor}\n data-slot=\"label\"\n className={cn(theme.slots.fieldLabel, classNames?.label)}\n >\n {label}\n {required ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"required-indicator\"\n className={cn(\n theme.slots.fieldRequired,\n classNames?.required,\n )}\n >\n {' '}\n *\n </span>\n ) : null}\n </label>\n </div>\n ) : null}\n\n {hasDescription ? (\n <div\n id={resolvedDescriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.fieldDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n\n {hasRenderableNode(renderedChildren) ? (\n <div\n data-slot=\"control\"\n className={cn(theme.slots.fieldControl, classNames?.control)}\n style={theme.styles.fieldControl}\n >\n <BaseFieldContext.Provider value={fieldContextValue}>\n {renderedChildren}\n </BaseFieldContext.Provider>\n </div>\n ) : null}\n\n {hasRenderableNode(resolvedMessage) ? (\n <div\n id={hasError ? resolvedErrorId : resolvedMessageId}\n role={hasError ? 'alert' : undefined}\n data-slot={hasError ? 'error' : 'message'}\n className={cn(\n theme.slots.fieldMessage,\n hasError && 'text-destructive-text',\n classNames?.message,\n )}\n >\n {resolvedMessage}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseFieldsetProps } from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction mergeAriaIds(...values: Array<string | undefined>) {\n const ids = values.flatMap(\n (value) => value?.split(/\\s+/).filter(Boolean) ?? [],\n );\n return ids.length ? Array.from(new Set(ids)).join(' ') : undefined;\n}\n\nfunction resolveOptionalId(\n value: string | undefined,\n fallback: string,\n name: string,\n) {\n if (value === undefined) return fallback;\n if (!value.trim() || /\\s/.test(value)) {\n throw new TypeError(\n `BaseFieldset ${name} must be a non-empty ID without whitespace.`,\n );\n }\n return value;\n}\n\nexport const BaseFieldset = forwardRef<HTMLFieldSetElement, BaseFieldsetProps>(\n function BaseFieldset(\n {\n children,\n legend,\n description,\n descriptionId,\n error,\n errorId,\n disabled,\n appearance,\n className,\n classNames,\n style,\n 'aria-describedby': ariaDescribedBy,\n 'aria-errormessage': ariaErrorMessage,\n ...fieldsetProps\n },\n ref,\n ) {\n const generatedId = useId();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (\n !hasRenderableNode(legend) ||\n (typeof legend === 'string' && !legend.trim())\n ) {\n throw new TypeError('BaseFieldset legend must contain an accessible name.');\n }\n if (disabled !== undefined && typeof disabled !== 'boolean') {\n throw new TypeError('BaseFieldset disabled must be a boolean.');\n }\n\n const hasDescription = hasRenderableNode(description);\n const hasError = hasRenderableNode(error);\n const resolvedDescriptionId = hasDescription\n ? resolveOptionalId(\n descriptionId,\n `${generatedId}-description`,\n 'descriptionId',\n )\n : undefined;\n const resolvedErrorId = hasError\n ? resolveOptionalId(errorId, `${generatedId}-error`, 'errorId')\n : undefined;\n return (\n <fieldset\n {...componentAttributes}\n {...fieldsetProps}\n ref={ref}\n disabled={disabled}\n aria-describedby={mergeAriaIds(ariaDescribedBy, resolvedDescriptionId)}\n aria-errormessage={mergeAriaIds(ariaErrorMessage, resolvedErrorId)}\n data-monkeys-component=\"fieldset\"\n data-slot=\"root\"\n className={cn(theme.slots.fieldsetRoot, classNames?.root, className)}\n style={{\n ...theme.styles.fieldset,\n ...style,\n }}\n >\n <legend\n data-slot=\"legend\"\n className={cn(theme.slots.fieldsetLegend, classNames?.legend)}\n style={theme.styles.fieldsetLegend}\n >\n {legend}\n </legend>\n {hasDescription ? (\n <div\n id={resolvedDescriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.fieldsetDescription,\n classNames?.description,\n )}\n style={theme.styles.fieldsetDescription}\n >\n {description}\n </div>\n ) : null}\n {hasError ? (\n <div\n id={resolvedErrorId}\n data-slot=\"error\"\n className={cn(theme.slots.fieldsetError, classNames?.error)}\n style={theme.styles.fieldsetError}\n >\n {error}\n </div>\n ) : null}\n <div\n data-slot=\"content\"\n className={cn(theme.slots.fieldsetContent, classNames?.content)}\n style={theme.styles.fieldsetContent}\n >\n {children}\n </div>\n </fieldset>\n );\n },\n);\n","import { createElement, forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseHeadingSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseHeadingLevel, BaseHeadingProps } from './types';\nimport { cn } from './utils';\n\nfunction isHeadingLevel(value: unknown): value is BaseHeadingLevel {\n return (\n typeof value === 'number' &&\n Number.isInteger(value) &&\n value >= 1 &&\n value <= 6\n );\n}\n\nexport const BaseHeading = forwardRef<HTMLHeadingElement, BaseHeadingProps>(\n function BaseHeading(\n {\n level = 2,\n children,\n size = 'lg',\n tone = 'default',\n appearance,\n className,\n classNames,\n style,\n ...headingProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (!isHeadingLevel(level)) {\n throw new RangeError('BaseHeading level must be an integer from 1 to 6.');\n }\n\n return createElement(\n `h${level}`,\n {\n ...componentAttributes,\n ...headingProps,\n ref,\n 'data-monkeys-component': 'heading',\n 'data-slot': 'root',\n 'data-level': level,\n 'data-size': size,\n 'data-tone': tone,\n className: cn(\n theme.slots.headingRoot,\n getBaseHeadingSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.heading,\n ...style,\n },\n },\n children,\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseGridColumns,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseGridProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseGrid = forwardRef<HTMLDivElement, BaseGridProps>(\n function BaseGrid(\n {\n children,\n columns = 1,\n gap,\n align = 'stretch',\n justify = 'start',\n appearance,\n className,\n classNames,\n style,\n ...gridProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseGrid', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...gridProps}\n ref={ref}\n data-monkeys-component=\"grid\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n data-columns={columns}\n className={cn(theme.slots.gridRoot, classNames?.root, className)}\n style={{\n ...theme.styles.grid,\n gridTemplateColumns: resolveBaseGridColumns(columns),\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseGrid', align),\n justifyContent: resolveBaseLayoutJustify('BaseGrid', justify),\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseInputProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst controlSizeClassNames = {\n sm: 'h-8 px-2.5 text-xs',\n md: 'h-9 px-3 text-sm',\n lg: 'h-10 px-3.5 text-base',\n} as const;\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n function BaseInput(\n {\n icon,\n trailing,\n invalid = false,\n disabled = false,\n readOnly = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n onBlur,\n onChange,\n ...inputProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseInput ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError('BaseInput controlSize must be \"sm\", \"md\", or \"lg\".');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"input\"\n data-slot=\"root\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span\n data-slot=\"icon\"\n className={cn(theme.slots.controlIcon, classNames?.icon)}\n >\n {icon}\n </span>\n ) : null}\n <input\n {...inputProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n data-slot=\"control\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n controlSize && controlSizeClassNames[controlSize],\n classNames?.control,\n )}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n }}\n onChange={(event) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n }}\n />\n {hasRenderableNode(trailing) ? (\n <span\n data-slot=\"trailing\"\n className={cn(theme.slots.controlTrailing, classNames?.trailing)}\n >\n {trailing}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseInputGroupProps } from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseInputGroup = forwardRef<\n HTMLDivElement,\n BaseInputGroupProps\n>(function BaseInputGroup(\n {\n children,\n startElement,\n endElement,\n startAddon,\n endAddon,\n invalid = false,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n ...groupProps\n },\n ref,\n) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseInputGroup ${name} must be a boolean.`);\n }\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...groupProps}\n ref={ref}\n data-monkeys-component=\"input-group\"\n data-slot=\"root\"\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.inputGroupRoot,\n invalid && theme.slots.inputGroupInvalid,\n disabled && theme.slots.inputGroupDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.inputGroup,\n ...(invalid ? theme.styles.inputGroupInvalid : undefined),\n ...(disabled ? theme.styles.inputGroupDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(startAddon) ? (\n <span\n data-slot=\"start-addon\"\n data-placement=\"start\"\n className={cn(\n theme.slots.inputGroupStartAddon,\n classNames?.startAddon,\n )}\n style={theme.styles.inputGroupAddon}\n >\n {startAddon}\n </span>\n ) : null}\n {hasRenderableNode(startElement) ? (\n <span\n data-slot=\"start-element\"\n data-placement=\"start\"\n className={cn(\n theme.slots.inputGroupStartElement,\n classNames?.startElement,\n )}\n style={theme.styles.inputGroupElement}\n >\n {startElement}\n </span>\n ) : null}\n <div\n data-slot=\"content\"\n className={cn(\n theme.slots.inputGroupContent,\n classNames?.content,\n )}\n style={theme.styles.inputGroupContent}\n >\n {children}\n </div>\n {hasRenderableNode(endElement) ? (\n <span\n data-slot=\"end-element\"\n data-placement=\"end\"\n className={cn(\n theme.slots.inputGroupEndElement,\n classNames?.endElement,\n )}\n style={theme.styles.inputGroupElement}\n >\n {endElement}\n </span>\n ) : null}\n {hasRenderableNode(endAddon) ? (\n <span\n data-slot=\"end-addon\"\n data-placement=\"end\"\n className={cn(\n theme.slots.inputGroupEndAddon,\n classNames?.endAddon,\n )}\n style={theme.styles.inputGroupAddon}\n >\n {endAddon}\n </span>\n ) : null}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseInlineProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseInline = forwardRef<HTMLDivElement, BaseInlineProps>(\n function BaseInline(\n {\n children,\n gap,\n align = 'center',\n justify = 'start',\n wrap = true,\n appearance,\n className,\n classNames,\n style,\n ...inlineProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n if (typeof wrap !== 'boolean') {\n throw new TypeError('BaseInline wrap must be a boolean.');\n }\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseInline', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...inlineProps}\n ref={ref}\n data-monkeys-component=\"inline\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n data-wrap={wrap ? 'wrap' : 'nowrap'}\n className={cn(theme.slots.inlineRoot, classNames?.root, className)}\n style={{\n ...theme.styles.inline,\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseInline', align),\n justifyContent: resolveBaseLayoutJustify('BaseInline', justify),\n flexWrap: wrap ? 'wrap' : 'nowrap',\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseKbdProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseKbd = forwardRef<HTMLElement, BaseKbdProps>(function BaseKbd(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...kbdProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <kbd\n {...componentAttributes}\n {...kbdProps}\n ref={ref}\n data-monkeys-component=\"kbd\"\n data-slot=\"root\"\n className={cn(theme.slots.kbdRoot, classNames?.root, className)}\n style={{\n ...theme.styles.kbd,\n ...style,\n }}\n >\n {children}\n </kbd>\n );\n});\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type ElementType,\n type ForwardedRef,\n type KeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type {\n BaseLayoutPaneProps,\n BaseLayoutProps,\n BaseLayoutResizeHandleProps,\n BaseLayoutSplitProps,\n BaseLayoutOrientation,\n} from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DEFAULT_SPLIT_SIZE = 50;\nconst DEFAULT_MIN_SIZE = 20;\nconst DEFAULT_MAX_SIZE = 80;\nconst DEFAULT_KEYBOARD_STEP = 2.5;\n\ntype CssVariableStyle = CSSProperties & Record<`--${string}`, string>;\n\nfunction assignRef<T>(ref: ForwardedRef<T>, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction assertBoolean(name: string, value: boolean) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseLayout ${name} must be a boolean.`);\n }\n}\n\nfunction assertOrientation(orientation: BaseLayoutOrientation) {\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseLayout orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n}\n\nfunction toCssSize(value: number | string | undefined, fallback: string) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error('BaseLayout size and gap props must be finite, non-negative numbers.');\n }\n return `${value}px`;\n }\n if (typeof value === 'string') {\n if (value.trim().length === 0) {\n throw new TypeError('BaseLayout size and gap string props must not be empty.');\n }\n return value;\n }\n return fallback;\n}\n\nfunction assertPercent(name: string, value: number) {\n if (!Number.isFinite(value)) {\n throw new Error(`BaseLayoutSplit ${name} must be a finite number.`);\n }\n if (value < 0 || value > 100) {\n throw new Error(`BaseLayoutSplit ${name} must be between 0 and 100.`);\n }\n return value;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolveSplitBounds({\n minSize = DEFAULT_MIN_SIZE,\n maxSize = DEFAULT_MAX_SIZE,\n keyboardStep = DEFAULT_KEYBOARD_STEP,\n}: Pick<BaseLayoutSplitProps, 'minSize' | 'maxSize' | 'keyboardStep'>) {\n const min = assertPercent('minSize', minSize);\n const max = assertPercent('maxSize', maxSize);\n if (min > max) {\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\n }\n if (!Number.isFinite(keyboardStep) || keyboardStep <= 0) {\n throw new Error('BaseLayoutSplit keyboardStep must be a finite positive number.');\n }\n return { min, max, keyboardStep };\n}\n\nfunction resolveSplitSize(\n name: string,\n value: number | undefined,\n fallback: number,\n min: number,\n max: number,\n) {\n return clamp(assertPercent(name, value ?? fallback), min, max);\n}\n\nfunction getSeparatorOrientation(orientation: BaseLayoutOrientation) {\n return orientation === 'horizontal' ? 'vertical' : 'horizontal';\n}\n\nfunction isRtl(element: HTMLElement) {\n const ownerWindow = element.ownerDocument.defaultView;\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element).direction === 'rtl';\n }\n return element.closest('[dir=\"rtl\"]') !== null;\n}\n\nfunction setPointerCaptureIfAvailable(target: HTMLElement, pointerId: number) {\n if (!target.setPointerCapture) return;\n try {\n target.setPointerCapture(pointerId);\n } catch (error) {\n const OwnerDOMException = target.ownerDocument.defaultView?.DOMException;\n if (\n OwnerDOMException &&\n error instanceof OwnerDOMException &&\n error.name === 'NotFoundError'\n ) {\n // Synthetic pointer events may not register an active platform pointer.\n // Document listeners below preserve the drag contract in that environment.\n return;\n }\n throw error;\n }\n}\n\nexport const BaseLayout = forwardRef<HTMLDivElement, BaseLayoutProps>(\n function BaseLayout(\n {\n header,\n sidebar,\n aside,\n sidebarLabel,\n asideLabel,\n footer,\n children,\n sidebarSize,\n asideSize,\n gap,\n fullHeight = false,\n appearance,\n className,\n classNames,\n style,\n ...layoutProps\n },\n ref,\n ) {\n assertBoolean('fullHeight', fullHeight);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasHeader = hasRenderableNode(header);\n const hasSidebar = hasRenderableNode(sidebar);\n const hasAside = hasRenderableNode(aside);\n const hasFooter = hasRenderableNode(footer);\n const bodyColumns = [\n hasSidebar ? 'var(--base-layout-sidebar-size)' : undefined,\n 'minmax(0, 1fr)',\n hasAside ? 'var(--base-layout-aside-size)' : undefined,\n ]\n .filter(Boolean)\n .join(' ');\n const layoutRows = [\n hasHeader ? 'auto' : undefined,\n 'minmax(0, 1fr)',\n hasFooter ? 'auto' : undefined,\n ]\n .filter(Boolean)\n .join(' ');\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n\n const layoutStyle: CssVariableStyle = {\n ...theme.styles.layout,\n '--base-layout-sidebar-size': toCssSize(sidebarSize, '16rem'),\n '--base-layout-aside-size': toCssSize(asideSize, '20rem'),\n gridTemplateRows: layoutRows,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...style,\n };\n const bodyStyle: CSSProperties = {\n ...theme.styles.layoutBody,\n gridTemplateColumns: bodyColumns,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n };\n\n return (\n <div\n {...componentAttributes}\n {...layoutProps}\n ref={ref}\n data-monkeys-component=\"layout\"\n data-slot=\"root\"\n data-full-height={fullHeight ? 'true' : 'false'}\n className={cn(\n theme.slots.layoutRoot,\n fullHeight && theme.slots.layoutRootFull,\n classNames?.root,\n className,\n )}\n style={layoutStyle}\n >\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.layoutHeader, classNames?.header)}\n style={theme.styles.layoutHeader}\n >\n {header}\n </div>\n ) : null}\n\n <div\n data-slot=\"body\"\n className={cn(theme.slots.layoutBody, classNames?.body)}\n style={bodyStyle}\n >\n {hasSidebar ? (\n <aside\n aria-label={sidebarLabel}\n data-slot=\"sidebar\"\n className={cn(theme.slots.layoutSidebar, classNames?.sidebar)}\n style={theme.styles.layoutSidebar}\n >\n {sidebar}\n </aside>\n ) : null}\n\n <main\n data-slot=\"main\"\n className={cn(theme.slots.layoutMain, classNames?.main)}\n style={theme.styles.layoutMain}\n >\n {children}\n </main>\n\n {hasAside ? (\n <aside\n aria-label={asideLabel}\n data-slot=\"aside\"\n className={cn(theme.slots.layoutAside, classNames?.aside)}\n style={theme.styles.layoutAside}\n >\n {aside}\n </aside>\n ) : null}\n </div>\n\n {hasFooter ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.layoutFooter, classNames?.footer)}\n style={theme.styles.layoutFooter}\n >\n {footer}\n </div>\n ) : null}\n </div>\n );\n },\n);\n\nexport const BaseLayoutPane = forwardRef<HTMLElement, BaseLayoutPaneProps>(\n function BaseLayoutPane(\n {\n as = 'div',\n scrollable = false,\n bordered = true,\n surface = 'default',\n children,\n appearance,\n className,\n classNames,\n style,\n ...paneProps\n },\n ref,\n ) {\n assertBoolean('scrollable', scrollable);\n assertBoolean('bordered', bordered);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const Component = as as ElementType;\n\n return (\n <Component\n {...componentAttributes}\n {...paneProps}\n ref={ref}\n data-monkeys-component=\"layout-pane\"\n data-slot=\"root\"\n data-scrollable={scrollable ? 'true' : 'false'}\n data-surface={surface}\n className={cn(\n theme.slots.layoutPane,\n scrollable && theme.slots.layoutPaneScrollable,\n bordered && theme.slots.layoutPaneBordered,\n surface === 'muted' && theme.slots.layoutPaneMuted,\n surface === 'soft' && theme.slots.layoutPaneSoft,\n surface === 'transparent' && theme.slots.layoutPaneTransparent,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutPane,\n ...style,\n }}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport const BaseLayoutResizeHandle = forwardRef<\n HTMLDivElement,\n BaseLayoutResizeHandleProps\n>(function BaseLayoutResizeHandle(\n {\n orientation = 'horizontal',\n resizable = false,\n disabled = false,\n size,\n minSize,\n maxSize,\n label,\n appearance,\n className,\n classNames,\n style,\n tabIndex,\n ...handleProps\n },\n ref,\n) {\n assertOrientation(orientation);\n assertBoolean('resizable', resizable);\n assertBoolean('disabled', disabled);\n const resolvedMin = minSize === undefined ? undefined : assertPercent('minSize', minSize);\n const resolvedMax = maxSize === undefined ? undefined : assertPercent('maxSize', maxSize);\n if (\n resolvedMin !== undefined &&\n resolvedMax !== undefined &&\n resolvedMin > resolvedMax\n ) {\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\n }\n const resolvedSize =\n size === undefined\n ? undefined\n : clamp(\n assertPercent('size', size),\n resolvedMin ?? 0,\n resolvedMax ?? 100,\n );\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const messages = useMonkeysLocaleMessages().layout;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedLabel = label ?? messages.resizePanels;\n if (\n resizable &&\n (typeof resolvedLabel !== 'string' || resolvedLabel.trim().length === 0)\n ) {\n throw new TypeError('BaseLayoutResizeHandle label must be a non-empty string.');\n }\n const interactive = resizable && !disabled;\n const separatorOrientation = getSeparatorOrientation(orientation);\n\n return (\n <div\n {...componentAttributes}\n {...handleProps}\n ref={ref}\n data-monkeys-component=\"layout-resize-handle\"\n data-slot=\"handle\"\n data-orientation={orientation}\n data-state={interactive ? 'enabled' : disabled ? 'disabled' : 'static'}\n role={resizable ? 'separator' : undefined}\n aria-label={resizable ? resolvedLabel : undefined}\n aria-orientation={resizable ? separatorOrientation : undefined}\n aria-valuemin={resizable ? resolvedMin : undefined}\n aria-valuemax={resizable ? resolvedMax : undefined}\n aria-valuenow={resizable ? resolvedSize : undefined}\n aria-disabled={resizable && disabled ? true : undefined}\n tabIndex={interactive ? tabIndex ?? 0 : undefined}\n className={cn(\n theme.slots.layoutResizeHandle,\n orientation === 'horizontal'\n ? theme.slots.layoutResizeHandleHorizontal\n : theme.slots.layoutResizeHandleVertical,\n !interactive && theme.slots.layoutResizeHandleDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutResizeHandle,\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(\n theme.slots.layoutResizeHandleIndicator,\n orientation === 'horizontal' ? 'h-8 w-px' : 'h-px w-8',\n classNames?.indicator,\n )}\n />\n </div>\n );\n});\n\nexport const BaseLayoutSplit = forwardRef<HTMLDivElement, BaseLayoutSplitProps>(\n function BaseLayoutSplit(\n {\n orientation = 'horizontal',\n primary,\n secondary,\n children,\n resizable = false,\n disabled = false,\n size,\n defaultSize,\n minSize,\n maxSize,\n gap,\n keyboardStep,\n resizeLabel,\n appearance,\n className,\n classNames,\n style,\n onSizeChange,\n ...splitProps\n },\n ref,\n ) {\n assertOrientation(orientation);\n assertBoolean('resizable', resizable);\n assertBoolean('disabled', disabled);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const bounds = resolveSplitBounds({ minSize, maxSize, keyboardStep });\n const initialSize = resolveSplitSize(\n 'defaultSize',\n defaultSize,\n DEFAULT_SPLIT_SIZE,\n bounds.min,\n bounds.max,\n );\n const [uncontrolledSize, setUncontrolledSize] = useState(initialSize);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const cleanupRef = useRef<(() => void) | null>(null);\n const controlled = size !== undefined;\n const interactive = resizable && !disabled;\n const renderedSize = resolveSplitSize(\n 'size',\n controlled ? size : uncontrolledSize,\n initialSize,\n bounds.min,\n bounds.max,\n );\n const resolvedDirection = splitProps.dir ?? componentAttributes.dir;\n\n const setRootRef = useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n assignRef(ref, node);\n },\n [ref],\n );\n\n const commitSize = useCallback(\n (nextSize: number) => {\n const clampedSize = clamp(nextSize, bounds.min, bounds.max);\n if (!controlled) {\n setUncontrolledSize(clampedSize);\n }\n onSizeChange?.(clampedSize);\n },\n [bounds.max, bounds.min, controlled, onSizeChange],\n );\n\n const updateFromPointer = useCallback(\n (event: Pick<PointerEvent, 'clientX' | 'clientY'>) => {\n const root = rootRef.current;\n if (!root) return;\n const rect = root.getBoundingClientRect();\n const total = orientation === 'horizontal' ? rect.width : rect.height;\n if (!Number.isFinite(total) || total <= 0) return;\n const offset =\n orientation === 'horizontal'\n ? isRtl(root)\n ? rect.right - event.clientX\n : event.clientX - rect.left\n : event.clientY - rect.top;\n commitSize((offset / total) * 100);\n },\n [commitSize, orientation],\n );\n\n const stopResize = useCallback(() => {\n const cleanup = cleanupRef.current;\n cleanupRef.current = null;\n cleanup?.();\n }, []);\n\n useEffect(() => {\n if (!interactive) stopResize();\n return stopResize;\n }, [interactive, stopResize]);\n\n const handlePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!interactive || (event.button !== 0 && event.pointerType !== 'touch')) {\n return;\n }\n event.preventDefault();\n stopResize();\n updateFromPointer(event);\n\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n const ownerDocument = target.ownerDocument;\n\n const handleMove = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n updateFromPointer(nextEvent);\n };\n const handleStop = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n stopResize();\n };\n const handleLostCapture = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n stopResize();\n };\n\n ownerDocument.addEventListener('pointermove', handleMove);\n ownerDocument.addEventListener('pointerup', handleStop);\n ownerDocument.addEventListener('pointercancel', handleStop);\n target.addEventListener('lostpointercapture', handleLostCapture);\n cleanupRef.current = () => {\n ownerDocument.removeEventListener('pointermove', handleMove);\n ownerDocument.removeEventListener('pointerup', handleStop);\n ownerDocument.removeEventListener('pointercancel', handleStop);\n target.removeEventListener('lostpointercapture', handleLostCapture);\n if (target.hasPointerCapture?.(pointerId)) {\n target.releasePointerCapture?.(pointerId);\n }\n };\n setPointerCaptureIfAvailable(target, pointerId);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!interactive) return;\n const step = event.shiftKey ? bounds.keyboardStep * 4 : bounds.keyboardStep;\n const rtl = orientation === 'horizontal' && isRtl(event.currentTarget);\n let nextSize: number | undefined;\n\n if (event.key === 'Home') nextSize = bounds.min;\n if (event.key === 'End') nextSize = bounds.max;\n if (orientation === 'horizontal' && event.key === 'ArrowLeft') {\n nextSize = renderedSize + (rtl ? step : -step);\n }\n if (orientation === 'horizontal' && event.key === 'ArrowRight') {\n nextSize = renderedSize + (rtl ? -step : step);\n }\n if (orientation === 'vertical' && event.key === 'ArrowUp') {\n nextSize = renderedSize - step;\n }\n if (orientation === 'vertical' && event.key === 'ArrowDown') {\n nextSize = renderedSize + step;\n }\n\n if (nextSize === undefined) return;\n event.preventDefault();\n commitSize(nextSize);\n };\n\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n const resizeTrack =\n resolvedGap !== undefined ? 'var(--base-layout-split-gap)' : 'auto';\n const resizeHandleStyle: CSSProperties | undefined =\n resolvedGap !== undefined\n ? orientation === 'horizontal'\n ? { width: 'var(--base-layout-split-gap)' }\n : { height: 'var(--base-layout-split-gap)' }\n : undefined;\n const splitStyle: CssVariableStyle = {\n ...theme.styles.layoutSplit,\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']:\n resizable\n ? `${renderedSize}% ${resizeTrack} minmax(0, 1fr)`\n : `${renderedSize}% minmax(0, 1fr)`,\n ...(resizable ? { gap: 0 } : {}),\n ...(resolvedGap !== undefined\n ? {\n '--base-layout-split-gap': resolvedGap,\n ...(resizable ? {} : { gap: resolvedGap }),\n }\n : {}),\n ...style,\n };\n\n return (\n <div\n {...componentAttributes}\n {...splitProps}\n ref={setRootRef}\n data-monkeys-component=\"layout-split\"\n data-slot=\"root\"\n data-orientation={orientation}\n data-state={interactive ? 'enabled' : disabled ? 'disabled' : 'static'}\n data-controlled={controlled ? 'true' : 'false'}\n className={cn(\n theme.slots.layoutSplitRoot,\n orientation === 'horizontal'\n ? theme.slots.layoutSplitHorizontal\n : theme.slots.layoutSplitVertical,\n classNames?.root,\n className,\n )}\n style={splitStyle}\n >\n <div\n data-slot=\"primary\"\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitPrimary,\n classNames?.primary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {hasRenderableNode(primary) ? primary : children}\n </div>\n\n {resizable ? (\n <BaseLayoutResizeHandle\n orientation={orientation}\n resizable\n disabled={disabled}\n size={renderedSize}\n minSize={bounds.min}\n maxSize={bounds.max}\n label={resizeLabel}\n appearance={appearance}\n dir={resolvedDirection}\n className={classNames?.handle}\n style={resizeHandleStyle}\n onPointerDown={handlePointerDown}\n onKeyDown={handleKeyDown}\n />\n ) : null}\n\n <div\n data-slot=\"secondary\"\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitSecondary,\n classNames?.secondary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {secondary}\n </div>\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BaseLoadingStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultLoadingIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className={className}\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseLoadingState = forwardRef<\n HTMLDivElement,\n BaseLoadingStateProps\n>(function BaseLoadingState(\n {\n icon,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n role = 'status',\n 'aria-live': ariaLive = 'polite',\n 'aria-busy': ariaBusy = true,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...stateProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const loadingMessages = useMonkeysLocaleMessages().loading;\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedIcon =\n icon === undefined ? (\n <DefaultLoadingIcon className={theme.slots.loadingSpinner} />\n ) : (\n icon\n );\n const resolvedAriaLabel =\n nativeAriaLabel ??\n (nativeAriaLabelledBy === undefined ? loadingMessages.spinner : undefined);\n\n return (\n <div\n {...componentAttributes}\n {...stateProps}\n ref={ref}\n role={role}\n aria-live={ariaLive}\n aria-busy={ariaBusy}\n aria-label={resolvedAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n data-monkeys-component=\"loading-state\"\n data-slot=\"root\"\n data-state=\"loading\"\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n {hasRenderableNode(resolvedIcon) ? (\n <div\n data-slot=\"icon\"\n data-state=\"loading\"\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {resolvedIcon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n data-state=\"loading\"\n className={cn(theme.slots.stateTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n data-state=\"loading\"\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div\n data-slot=\"actions\"\n data-state=\"loading\"\n className={cn(theme.slots.stateActions, classNames?.actions)}\n >\n {actions}\n </div>\n ) : null}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseTextSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseLinkProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseLink = forwardRef<HTMLAnchorElement, BaseLinkProps>(\n function BaseLink(\n {\n children,\n size = 'md',\n tone = 'primary',\n appearance,\n className,\n classNames,\n style,\n ...linkProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <a\n {...componentAttributes}\n {...linkProps}\n ref={ref}\n data-monkeys-component=\"link\"\n data-slot=\"root\"\n data-size={size}\n data-tone={tone}\n className={cn(\n theme.slots.linkRoot,\n getBaseTextSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.link,\n ...style,\n }}\n >\n {children}\n </a>\n );\n },\n);\n","import { forwardRef, type Ref } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseListMarkerClassName,\n getBaseListSpacingClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseListItemProps, BaseListProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseList = forwardRef<\n HTMLOListElement | HTMLUListElement,\n BaseListProps\n>(function BaseList(\n {\n ordered = false,\n marker = 'auto',\n spacing = 'default',\n children,\n appearance,\n className,\n classNames,\n style,\n ...listProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const sharedProps = {\n ...componentAttributes,\n ...listProps,\n 'data-monkeys-component': 'list',\n 'data-slot': 'root',\n 'data-list-type': ordered ? 'ordered' : 'unordered',\n 'data-marker': marker,\n 'data-spacing': spacing,\n className: cn(\n theme.slots.listRoot,\n getBaseListSpacingClassName(theme, spacing),\n marker !== 'auto' && getBaseListMarkerClassName(theme, marker),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.list,\n ...style,\n },\n children,\n };\n\n return ordered ? (\n <ol {...sharedProps} ref={ref as Ref<HTMLOListElement>} />\n ) : (\n <ul {...sharedProps} ref={ref as Ref<HTMLUListElement>} />\n );\n});\n\nexport const BaseListItem = forwardRef<HTMLLIElement, BaseListItemProps>(\n function BaseListItem(\n {\n children,\n appearance,\n className,\n classNames,\n style,\n ...itemProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <li\n {...componentAttributes}\n {...itemProps}\n ref={ref}\n data-monkeys-component=\"list-item\"\n data-slot=\"item\"\n className={cn(theme.slots.listItem, classNames?.root, className)}\n style={{\n ...theme.styles.listItem,\n ...style,\n }}\n >\n {children}\n </li>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BaseMultiSelectOption, BaseMultiSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst typeaheadResetDelay = 500;\n\nfunction validateMultiSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n required,\n openForPreview,\n maxTagCount,\n}: Pick<\n BaseMultiSelectProps,\n | 'defaultValue'\n | 'disabled'\n | 'invalid'\n | 'maxTagCount'\n | 'openForPreview'\n | 'options'\n | 'required'\n | 'value'\n>) {\n for (const [name, state] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['required', required],\n ['openForPreview', openForPreview],\n ] as const) {\n if (typeof state !== 'boolean') {\n throw new TypeError(`BaseMultiSelect ${name} must be a boolean.`);\n }\n }\n if (maxTagCount !== undefined && typeof maxTagCount !== 'number') {\n throw new TypeError('BaseMultiSelect maxTagCount must be a number.');\n }\n if (options !== undefined && !Array.isArray(options)) {\n throw new TypeError('BaseMultiSelect options must be an array.');\n }\n options?.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(\n `BaseMultiSelect option at index ${index} must be an object.`,\n );\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseMultiSelect option value at index ${index} must be a string.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseMultiSelect option disabled at index ${index} must be a boolean.`,\n );\n }\n if (\n option.textValue !== undefined &&\n typeof option.textValue !== 'string'\n ) {\n throw new TypeError(\n `BaseMultiSelect option textValue at index ${index} must be a string.`,\n );\n }\n });\n\n for (const [name, values] of [\n ['value', value],\n ['defaultValue', defaultValue],\n ] as const) {\n if (values !== undefined && !Array.isArray(values)) {\n throw new TypeError(`BaseMultiSelect ${name} must be an array.`);\n }\n values?.forEach((item, index) => {\n if (typeof item !== 'string') {\n throw new TypeError(\n `BaseMultiSelect ${name} item at index ${index} must be a string.`,\n );\n }\n });\n }\n}\n\nfunction normalizeValues(values: readonly string[] | undefined) {\n const nextValues: string[] = [];\n const seen = new Set<string>();\n\n values?.forEach((value) => {\n if (seen.has(value)) return;\n seen.add(value);\n nextValues.push(value);\n });\n\n return nextValues;\n}\n\nfunction getNextEnabledIndex(\n options: BaseMultiSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n const startIndex = currentIndex >= 0 ? currentIndex : direction === 1 ? -1 : 0;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) return nextIndex;\n }\n\n return -1;\n}\n\nfunction getBoundaryEnabledIndex(\n options: BaseMultiSelectOption[],\n boundary: 'first' | 'last',\n) {\n if (boundary === 'first') {\n return options.findIndex((option) => !option.disabled);\n }\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) return index;\n }\n return -1;\n}\n\nfunction getSafeTagCount(maxTagCount: number | undefined, total: number) {\n if (maxTagCount === undefined || !Number.isFinite(maxTagCount)) return total;\n return Math.max(0, Math.min(total, Math.floor(maxTagCount)));\n}\n\nfunction getOptionText(option: BaseMultiSelectOption) {\n if (option.textValue !== undefined) return option.textValue;\n if (typeof option.label === 'string') return option.label;\n return option.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport const BaseMultiSelect = forwardRef<HTMLDivElement, BaseMultiSelectProps>(\n function BaseMultiSelect(\n {\n options,\n value,\n defaultValue,\n name,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n required = false,\n openForPreview = false,\n maxTagCount,\n removeLabel,\n emptyLabel,\n appearance,\n className,\n classNames,\n style,\n id,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n 'aria-describedby': nativeAriaDescribedBy,\n 'aria-errormessage': nativeAriaErrorMessage,\n onValueChange,\n ...rootProps\n },\n ref,\n ) {\n validateMultiSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n required,\n openForPreview,\n maxTagCount,\n });\n\n const messages = useMonkeysLocaleMessages().multiSelect;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const multiSelectId = id ?? generatedId;\n const controlId = `${multiSelectId}-control`;\n const listboxId = `${multiSelectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n const composingRef = useRef(false);\n const typeaheadBufferRef = useRef('');\n const typeaheadTimerRef = useRef<{\n ownerWindow: Window;\n timerId: number;\n } | null>(null);\n const optionList = options ?? [];\n const optionIds = optionList.map(\n (option, index) =>\n `${multiSelectId}-option-${index}-${toDomId(option.value)}`,\n );\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const initialDefaultValueRef = useRef(normalizeValues(defaultValue));\n const [uncontrolledValue, setUncontrolledValue] = useState(() => [\n ...initialDefaultValueRef.current,\n ]);\n const [activeIndex, setActiveIndex] = useState(() =>\n getBoundaryEnabledIndex(optionList, 'first'),\n );\n const isControlled = value !== undefined;\n const selectedValues = useMemo(\n () => normalizeValues(isControlled ? value : uncontrolledValue),\n [isControlled, uncontrolledValue, value],\n );\n const selectedValueSet = useMemo(\n () => new Set(selectedValues),\n [selectedValues],\n );\n const optionByValue = useMemo(() => {\n const map = new Map<string, BaseMultiSelectOption>();\n optionList.forEach((option) => {\n if (!map.has(option.value)) map.set(option.value, option);\n });\n return map;\n }, [optionList]);\n const selectedOptions = useMemo(\n () =>\n selectedValues\n .map((selectedValue) => optionByValue.get(selectedValue))\n .filter(\n (option): option is BaseMultiSelectOption => option !== undefined,\n ),\n [optionByValue, selectedValues],\n );\n const firstEnabledIndex = getBoundaryEnabledIndex(optionList, 'first');\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : firstEnabledIndex;\n const visibleTagCount = getSafeTagCount(\n maxTagCount,\n selectedOptions.length,\n );\n const visibleOptions = selectedOptions.slice(0, visibleTagCount);\n const overflowCount = selectedOptions.length - visibleOptions.length;\n const isPlaceholder = selectedOptions.length === 0;\n const layerDirection = rootProps.dir ?? componentAttributes.dir;\n const rootState = disabled\n ? 'disabled'\n : invalid\n ? 'invalid'\n : open\n ? 'open'\n : 'closed';\n\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n };\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled || forceOpen) return;\n setUncontrolledOpen(nextOpen);\n if (nextOpen && resolvedActiveIndex < 0) {\n setActiveIndex(firstEnabledIndex);\n }\n };\n\n const commitValues = (nextValues: string[]) => {\n const normalizedValues = normalizeValues(nextValues);\n if (!isControlled) setUncontrolledValue(normalizedValues);\n onValueChange?.(normalizedValues);\n };\n\n const toggleOption = (option: BaseMultiSelectOption | undefined) => {\n if (!option || option.disabled || disabled) return;\n const nextValues = selectedValueSet.has(option.value)\n ? selectedValues.filter((selectedValue) => selectedValue !== option.value)\n : [...selectedValues, option.value];\n commitValues(nextValues);\n };\n\n const removeOption = (option: BaseMultiSelectOption) => {\n if (disabled) return;\n commitValues(\n selectedValues.filter((selectedValue) => selectedValue !== option.value),\n );\n };\n\n const moveActive = (nextIndex: number) => {\n if (nextIndex < 0 || optionList[nextIndex]?.disabled) return;\n setActiveIndex(nextIndex);\n if (!open) setOpen(true);\n };\n\n const handleTypeahead = (\n event: KeyboardEvent<HTMLDivElement>,\n character: string,\n ) => {\n const ownerWindow = event.currentTarget.ownerDocument.defaultView;\n if (!ownerWindow) return;\n const nextBuffer = `${typeaheadBufferRef.current}${character}`.toLocaleLowerCase();\n typeaheadBufferRef.current = nextBuffer;\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n typeaheadTimerRef.current = {\n ownerWindow,\n timerId: ownerWindow.setTimeout(() => {\n typeaheadBufferRef.current = '';\n typeaheadTimerRef.current = null;\n }, typeaheadResetDelay),\n };\n const repeatedCharacter = Array.from(nextBuffer).every(\n (bufferCharacter) => bufferCharacter === nextBuffer[0],\n );\n const query = repeatedCharacter ? character.toLocaleLowerCase() : nextBuffer;\n for (let offset = 1; offset <= optionList.length; offset += 1) {\n const index =\n (resolvedActiveIndex + offset + optionList.length) % optionList.length;\n const option = optionList[index];\n if (\n !option?.disabled &&\n getOptionText(option).trim().toLocaleLowerCase().startsWith(query)\n ) {\n event.preventDefault();\n moveActive(index);\n return;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || composingRef.current || event.nativeEvent.isComposing) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setActiveIndex(firstEnabledIndex);\n setOpen(true);\n } else {\n moveActive(\n getNextEnabledIndex(\n optionList,\n resolvedActiveIndex,\n event.key === 'ArrowDown' ? 1 : -1,\n ),\n );\n }\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n moveActive(\n getBoundaryEnabledIndex(\n optionList,\n event.key === 'Home' ? 'first' : 'last',\n ),\n );\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!open) setOpen(true);\n else toggleOption(optionList[resolvedActiveIndex]);\n return;\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n setOpen(false);\n return;\n }\n\n if (event.key === 'Tab' && open) {\n setOpen(false);\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n !/\\s/.test(event.key)\n ) {\n handleTypeahead(event, event.key);\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n const ownerDocument = rootRef.current?.ownerDocument;\n if (!ownerDocument) return undefined;\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n return () => ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n }, [forceOpen, open]);\n\n useEffect(() => {\n if (isControlled) return undefined;\n const form = rootRef.current?.closest('form');\n if (!form) return undefined;\n const handleReset = () => {\n setUncontrolledValue([...initialDefaultValueRef.current]);\n setActiveIndex(getBoundaryEnabledIndex(optionList, 'first'));\n if (!forceOpen) setUncontrolledOpen(false);\n };\n form.addEventListener('reset', handleReset);\n return () => form.removeEventListener('reset', handleReset);\n }, [forceOpen, isControlled, optionList]);\n\n useEffect(\n () => () => {\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n },\n [],\n );\n\n return (\n <div\n {...componentAttributes}\n {...rootProps}\n id={id}\n ref={setRootRef}\n dir={layerDirection}\n data-monkeys-component=\"multi-select\"\n data-slot=\"root\"\n data-state={rootState}\n data-disabled={disabled || undefined}\n data-invalid={invalid || undefined}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <div\n {...componentAttributes}\n ref={controlRef}\n id={controlId}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n dir={layerDirection}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && resolvedActiveIndex >= 0\n ? optionIds[resolvedActiveIndex]\n : undefined\n }\n aria-autocomplete=\"none\"\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n data-monkeys-component=\"multi-select\"\n data-slot=\"control\"\n data-state={rootState}\n className={cn(\n theme.slots.controlBase,\n 'flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left',\n disabled && '!cursor-not-allowed',\n classNames?.control,\n )}\n onMouseDown={(event) => {\n if (disabled || event.button !== 0) return;\n event.preventDefault();\n controlRef.current?.focus();\n }}\n onClick={() => {\n controlRef.current?.focus();\n setOpen(!open);\n }}\n onBlur={(event) => {\n if (!rootRef.current?.contains(event.relatedTarget)) setOpen(false);\n }}\n onCompositionStart={() => {\n composingRef.current = true;\n }}\n onCompositionEnd={() => {\n composingRef.current = false;\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-list\"\n data-state={isPlaceholder ? 'empty' : 'filled'}\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1.5',\n classNames?.tagList,\n )}\n >\n {visibleOptions.map((option, index) => (\n <span\n key={`${option.value}-${index}`}\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex max-w-full items-center gap-1 rounded-full border border-border/70 bg-muted/65 px-2 py-0.5 text-xs font-medium text-foreground',\n classNames?.tag,\n )}\n >\n <span\n data-slot=\"tag-label\"\n className={cn('max-w-40 truncate', classNames?.tagLabel)}\n >\n {option.label}\n </span>\n <button\n {...componentAttributes}\n type=\"button\"\n tabIndex={-1}\n dir={layerDirection}\n aria-label={\n removeLabel?.(option) ??\n messages.removeOption({ value: option.value })\n }\n disabled={disabled}\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-remove\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-background/80 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed',\n classNames?.tagRemove,\n )}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n removeOption(option);\n controlRef.current?.focus();\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <span aria-hidden=\"true\">x</span>\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"tag-overflow\"\n data-state=\"selected\"\n className={cn(\n 'inline-flex max-w-full items-center rounded-full border border-border/70 bg-muted/45 px-2 py-0.5 text-xs font-medium text-muted-foreground',\n classNames?.tag,\n )}\n >\n +{overflowCount}\n </span>\n ) : null}\n {isPlaceholder ? (\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"placeholder\"\n data-state=\"empty\"\n className={cn(\n 'min-w-0 truncate',\n theme.slots.selectPlaceholder,\n classNames?.placeholder,\n )}\n >\n {placeholder === undefined ? messages.placeholder : placeholder}\n </span>\n ) : null}\n </span>\n </div>\n <span\n data-monkeys-component=\"multi-select\"\n data-slot=\"chevron\"\n data-state={open ? 'open' : 'closed'}\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n classNames?.chevron,\n )}\n />\n {name\n ? selectedValues.map((selectedValue) => (\n <input\n {...componentAttributes}\n key={selectedValue}\n type=\"hidden\"\n name={name}\n value={selectedValue}\n disabled={disabled}\n dir={layerDirection}\n data-monkeys-component=\"multi-select\"\n data-slot=\"hidden-input\"\n data-state=\"selected\"\n className={classNames?.hiddenInput}\n />\n ))\n : null}\n {open ? (\n <div\n {...componentAttributes}\n id={listboxId}\n role=\"listbox\"\n dir={layerDirection}\n aria-multiselectable=\"true\"\n aria-labelledby={controlId}\n data-monkeys-component=\"multi-select\"\n data-slot=\"menu\"\n data-state=\"open\"\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.length > 0 ? (\n optionList.map((option, index) => {\n const selected = selectedValueSet.has(option.value);\n const active = index === resolvedActiveIndex;\n const optionState = option.disabled\n ? 'disabled'\n : active\n ? 'active'\n : selected\n ? 'selected'\n : 'idle';\n return (\n <button\n {...componentAttributes}\n key={`${option.value}-${index}`}\n id={optionIds[index]}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n dir={layerDirection}\n aria-selected={selected}\n disabled={option.disabled}\n data-monkeys-component=\"multi-select\"\n data-slot=\"option\"\n data-state={optionState}\n data-active={active || undefined}\n data-selected={selected || undefined}\n data-disabled={option.disabled || undefined}\n className={cn(\n theme.slots.selectOption,\n 'gap-2',\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected\n ? theme.styles.selectOptionSelected\n : undefined),\n }}\n onMouseEnter={() => {\n if (!option.disabled) setActiveIndex(index);\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n toggleOption(option);\n controlRef.current?.focus();\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"option-indicator\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]',\n selected &&\n 'border-primary/40 bg-primary text-primary-foreground',\n classNames?.optionIndicator,\n )}\n >\n {selected ? '✓' : null}\n </span>\n <span\n data-slot=\"option-label\"\n className={cn(\n 'min-w-0 flex-1 truncate',\n classNames?.optionLabel,\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })\n ) : (\n <div\n {...componentAttributes}\n dir={layerDirection}\n role=\"option\"\n tabIndex={-1}\n aria-disabled=\"true\"\n aria-selected=\"false\"\n data-monkeys-component=\"multi-select\"\n data-slot=\"empty\"\n data-state=\"empty\"\n className={cn(\n 'px-2.5 py-2 text-sm text-muted-foreground',\n classNames?.empty,\n )}\n >\n {emptyLabel === undefined ? messages.empty : emptyLabel}\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseNumberInputChangeReason,\n BaseNumberInputProps,\n} from './types';\nimport { cn } from './utils';\n\nconst decimalPattern = /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)$/;\n\nexport function parseBaseNumberInputValue(rawValue: string): number | null {\n if (!decimalPattern.test(rawValue)) return null;\n\n const parsedValue = Number(rawValue);\n return Number.isFinite(parsedValue) ? parsedValue : null;\n}\n\nfunction resolveDecimalPlaces(value: number) {\n const match = /^(?:\\d+)(?:\\.(\\d*))?(?:e([+-]?\\d+))?$/i.exec(\n Math.abs(value).toString(),\n );\n if (!match) return 0;\n\n const fractionalPlaces = match[1]?.length ?? 0;\n const exponent = Number(match[2] ?? 0);\n return Math.min(12, Math.max(0, fractionalPlaces - exponent));\n}\n\nfunction normalizeSteppedValue(value: number, values: readonly number[]) {\n const precision = Math.max(...values.map(resolveDecimalPlaces));\n const scale = 10 ** precision;\n const normalized = Math.round((value + Number.EPSILON) * scale) / scale;\n return Object.is(normalized, -0) ? 0 : normalized;\n}\n\nexport function resolveBaseNumberInputStep({\n rawValue,\n direction,\n step,\n min,\n max,\n}: {\n rawValue: string;\n direction: -1 | 1;\n step: number;\n min?: number;\n max?: number;\n}) {\n const parsedValue = parseBaseNumberInputValue(rawValue);\n const baseValue = parsedValue ?? 0;\n const precisionValues = [baseValue, step];\n if (min !== undefined) precisionValues.push(min);\n if (max !== undefined) precisionValues.push(max);\n\n let nextValue = normalizeSteppedValue(\n baseValue + direction * step,\n precisionValues,\n );\n if (min !== undefined) nextValue = Math.max(min, nextValue);\n if (max !== undefined) nextValue = Math.min(max, nextValue);\n return normalizeSteppedValue(nextValue, precisionValues);\n}\n\nfunction validateBoundary(name: 'min' | 'max', value: number | undefined) {\n if (value !== undefined && !Number.isFinite(value)) {\n throw new TypeError(`BaseNumberInput ${name} must be a finite number.`);\n }\n}\n\nfunction validateLabel(name: string, value: string) {\n if (!value.trim()) {\n throw new TypeError(`BaseNumberInput ${name} must be a non-empty string.`);\n }\n}\n\nfunction isInRange(\n value: number | null,\n min: number | undefined,\n max: number | undefined,\n) {\n return (\n value !== null &&\n (min === undefined || value >= min) &&\n (max === undefined || value <= max)\n );\n}\n\nexport const BaseNumberInput = forwardRef<\n HTMLInputElement,\n BaseNumberInputProps\n>(function BaseNumberInput(\n {\n value,\n defaultValue = '',\n min,\n max,\n step = 1,\n showStepControls = false,\n incrementLabel,\n decrementLabel,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n onChange,\n onKeyDown,\n onValueChange,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n ref,\n) {\n if (value !== undefined && typeof value !== 'string') {\n throw new TypeError('BaseNumberInput value must be a string.');\n }\n if (typeof defaultValue !== 'string') {\n throw new TypeError('BaseNumberInput defaultValue must be a string.');\n }\n validateBoundary('min', min);\n validateBoundary('max', max);\n if (min !== undefined && max !== undefined && min > max) {\n throw new RangeError(\n 'BaseNumberInput min must be less than or equal to max.',\n );\n }\n if (!Number.isFinite(step) || step <= 0) {\n throw new TypeError('BaseNumberInput step must be a positive finite number.');\n }\n for (const [name, candidate] of [\n ['showStepControls', showStepControls],\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof candidate !== 'boolean') {\n throw new TypeError(`BaseNumberInput ${name} must be a boolean.`);\n }\n }\n\n const messages = useMonkeysLocaleMessages();\n const resolvedIncrementLabel =\n incrementLabel ?? messages.numberInput.increment;\n const resolvedDecrementLabel =\n decrementLabel ?? messages.numberInput.decrement;\n validateLabel('incrementLabel', resolvedIncrementLabel);\n validateLabel('decrementLabel', resolvedDecrementLabel);\n\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const rawValue = isControlled ? value : uncontrolledValue;\n const parsedValue = parseBaseNumberInputValue(rawValue);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n const emitValueChange = (\n nextRawValue: string,\n reason: BaseNumberInputChangeReason,\n ) => {\n if (!isControlled) setUncontrolledValue(nextRawValue);\n const nextValue = parseBaseNumberInputValue(nextRawValue);\n onValueChange?.(nextValue, {\n rawValue: nextRawValue,\n reason,\n inRange: isInRange(nextValue, min, max),\n });\n };\n\n const stepValue = (direction: -1 | 1) => {\n if (disabled || readOnly) return;\n if (\n parsedValue !== null &&\n ((direction === 1 && max !== undefined && parsedValue >= max) ||\n (direction === -1 && min !== undefined && parsedValue <= min))\n ) {\n return;\n }\n\n const nextValue = resolveBaseNumberInputStep({\n rawValue,\n direction,\n step,\n min,\n max,\n });\n emitValueChange(\n String(nextValue),\n direction === 1 ? 'step-up' : 'step-down',\n );\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n emitValueChange(event.currentTarget.value, 'input');\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || disabled || readOnly) return;\n if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown') return;\n\n event.preventDefault();\n stepValue(event.key === 'ArrowUp' ? 1 : -1);\n };\n\n const decrementDisabled =\n disabled ||\n readOnly ||\n (parsedValue !== null && min !== undefined && parsedValue <= min);\n const incrementDisabled =\n disabled ||\n readOnly ||\n (parsedValue !== null && max !== undefined && parsedValue >= max);\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"number-input\"\n data-slot=\"root\"\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n <input\n {...inputProps}\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n role=\"spinbutton\"\n value={rawValue}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={parsedValue ?? undefined}\n aria-valuetext={rawValue || undefined}\n data-slot=\"control\"\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n theme.slots.numberInputControl,\n classNames?.control,\n )}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n {showStepControls ? (\n <span\n data-slot=\"step-controls\"\n className={cn(\n theme.slots.numberInputStepControls,\n classNames?.stepControls,\n )}\n style={theme.styles.numberInputStepControls}\n >\n <button\n type=\"button\"\n aria-label={resolvedIncrementLabel}\n disabled={incrementDisabled}\n data-slot=\"increment\"\n className={cn(\n theme.slots.numberInputStepButton,\n classNames?.increment,\n )}\n style={theme.styles.numberInputStepButton}\n onClick={() => stepValue(1)}\n >\n +\n </button>\n <button\n type=\"button\"\n aria-label={resolvedDecrementLabel}\n disabled={decrementDisabled}\n data-slot=\"decrement\"\n className={cn(\n theme.slots.numberInputStepButton,\n classNames?.decrement,\n )}\n style={theme.styles.numberInputStepButton}\n onClick={() => stepValue(-1)}\n >\n −\n </button>\n </span>\n ) : null}\n </div>\n );\n});\n","import type { BaseNoticeProps } from './types';\nimport { getBaseNoticeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseNotice({\n tone,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...noticeProps\n}: BaseNoticeProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...noticeProps}\n className={cn(\n theme.slots.noticeBase,\n getBaseNoticeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.notice,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.noticeIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n <div className=\"min-w-0 flex-1\">\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.noticeTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.noticeDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.noticeActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n as = 'article',\n title,\n description,\n media,\n header,\n footer,\n children,\n interactive,\n selected,\n disabled,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...panelProps\n}: BasePanelProps) {\n const theme = resolveBaseAppearance({ ...appearance, variant, density, state });\n const Component = as as ElementType;\n const hasHeader =\n header !== undefined\n ? hasRenderableNode(header)\n : hasRenderableNode(title) || hasRenderableNode(description);\n const hasMedia = media !== undefined && media !== null;\n const bodyIsStandalone = !hasHeader && !hasMedia;\n\n return (\n <Component\n {...panelProps}\n aria-disabled={disabled || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={state ?? (disabled ? 'disabled' : selected ? 'selected' : 'idle')}\n data-monkeys-component=\"panel\"\n data-slot=\"root\"\n data-interactive={interactive || undefined}\n data-selected={selected || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.panelRoot,\n interactive && !disabled && theme.slots.panelInteractive,\n selected && theme.slots.panelSelected,\n disabled && theme.slots.panelDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.panel,\n ...style,\n }}\n >\n {hasMedia ? (\n <div\n data-slot=\"media\"\n className={cn(theme.slots.panelMedia, classNames?.media)}\n >\n {media}\n </div>\n ) : null}\n\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.panelHeader, classNames?.header)}\n style={theme.styles.panelHeader}\n >\n {header !== undefined ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n className={cn(theme.slots.panelTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n className={cn(\n theme.slots.panelDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {children !== undefined && children !== null ? (\n <div\n data-slot=\"body\"\n className={cn(\n theme.slots.panelBody,\n bodyIsStandalone && theme.slots.panelBodyStandalone,\n classNames?.body,\n )}\n style={theme.styles.panelBody}\n >\n {children}\n </div>\n ) : null}\n\n {footer !== undefined && footer !== null ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.panelFooter, classNames?.footer)}\n style={theme.styles.panelFooter}\n >\n {footer}\n </div>\n ) : null}\n </Component>\n );\n}\n","import {\n forwardRef,\n useRef,\n useState,\n type PointerEvent,\n type Ref,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BasePasswordInputProps } from './types';\nimport { cn } from './utils';\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === 'function') {\n ref(element);\n } else {\n (ref as { current: TElement | null }).current = element;\n }\n }\n}\n\nfunction validateLabel(name: string, value: string) {\n if (!value.trim()) {\n throw new TypeError(`BasePasswordInput ${name} must be a non-empty string.`);\n }\n}\n\nexport const BasePasswordInput = forwardRef<\n HTMLInputElement,\n BasePasswordInputProps\n>(function BasePasswordInput(\n {\n visible,\n defaultVisible = false,\n onVisibleChange,\n showPasswordLabel,\n hidePasswordLabel,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n forwardedRef,\n) {\n for (const [name, candidate] of [\n ['defaultVisible', defaultVisible],\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof candidate !== 'boolean') {\n throw new TypeError(`BasePasswordInput ${name} must be a boolean.`);\n }\n }\n if (visible !== undefined && typeof visible !== 'boolean') {\n throw new TypeError('BasePasswordInput visible must be a boolean.');\n }\n\n const messages = useMonkeysLocaleMessages();\n const resolvedShowLabel =\n showPasswordLabel ?? messages.passwordInput.showPassword;\n const resolvedHideLabel =\n hidePasswordLabel ?? messages.passwordInput.hidePassword;\n validateLabel('showPasswordLabel', resolvedShowLabel);\n validateLabel('hidePasswordLabel', resolvedHideLabel);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [uncontrolledVisible, setUncontrolledVisible] =\n useState(defaultVisible);\n const isControlled = visible !== undefined;\n const resolvedVisible = isControlled ? visible : uncontrolledVisible;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n const handleTogglePointerDown = (event: PointerEvent<HTMLButtonElement>) => {\n const input = inputRef.current;\n if (input && input.ownerDocument.activeElement === input) {\n event.preventDefault();\n }\n };\n\n const handleToggle = () => {\n if (disabled) return;\n const nextVisible = !resolvedVisible;\n if (!isControlled) setUncontrolledVisible(nextVisible);\n onVisibleChange?.(nextVisible);\n };\n\n const toggleLabel = resolvedVisible\n ? resolvedHideLabel\n : resolvedShowLabel;\n\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"password-input\"\n data-slot=\"root\"\n data-visible={resolvedVisible || undefined}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n <input\n {...inputProps}\n ref={(element) => setRefs(element, inputRef, forwardedRef)}\n type={resolvedVisible ? 'text' : 'password'}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n data-slot=\"control\"\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n theme.slots.passwordInputControl,\n classNames?.control,\n )}\n />\n <button\n type=\"button\"\n aria-label={toggleLabel}\n aria-pressed={resolvedVisible}\n disabled={disabled}\n data-slot=\"toggle\"\n data-state={resolvedVisible ? 'visible' : 'hidden'}\n className={cn(\n theme.slots.passwordInputToggle,\n classNames?.toggle,\n )}\n style={theme.styles.passwordInputToggle}\n onPointerDown={handleTogglePointerDown}\n onClick={handleToggle}\n >\n {toggleLabel}\n </button>\n </div>\n );\n});\n","import { forwardRef, useState, type ReactNode } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport type { BasePaginationProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\ntype PaginationItem = number | 'ellipsis';\n\nconst paginationModes = new Set(['compact', 'pages']);\n\nfunction clampPage(page: number, pageCount: number) {\n return Math.min(Math.max(page, 1), Math.max(pageCount, 1));\n}\n\nfunction assertPositiveInteger(value: unknown, name: string) {\n if (!Number.isSafeInteger(value) || (value as number) < 1) {\n throw new RangeError(\n `BasePagination ${name} must be a positive safe integer.`,\n );\n }\n}\n\nfunction assertNonNegativeInteger(value: unknown, name: string) {\n if (!Number.isSafeInteger(value) || (value as number) < 0) {\n throw new RangeError(\n `BasePagination ${name} must be a non-negative safe integer.`,\n );\n }\n}\n\nfunction assertOptionalControlLabel(value: ReactNode, name: string) {\n if (typeof value === 'string' && !value.trim()) {\n throw new TypeError(\n `BasePagination ${name} must be a non-empty string when provided.`,\n );\n }\n}\n\nfunction assertAccessibleName(\n ariaLabel: unknown,\n ariaLabelledBy: unknown,\n) {\n if (\n ariaLabel !== undefined &&\n (typeof ariaLabel !== 'string' || !ariaLabel.trim())\n ) {\n throw new TypeError(\n 'BasePagination aria-label must be a non-empty string when provided.',\n );\n }\n if (\n ariaLabelledBy !== undefined &&\n (typeof ariaLabelledBy !== 'string' || !ariaLabelledBy.trim())\n ) {\n throw new TypeError(\n 'BasePagination aria-labelledby must contain at least one valid ID token.',\n );\n }\n if (typeof ariaLabelledBy === 'string') {\n const tokens = ariaLabelledBy.trim().split(/\\s+/);\n if (tokens.some((token) => /[\\u0000-\\u001f\\u007f]/u.test(token))) {\n throw new TypeError(\n 'BasePagination aria-labelledby must contain only valid ID tokens.',\n );\n }\n }\n}\n\nfunction assertLocaleString(value: unknown, name: string) {\n if (typeof value !== 'string' || !value.trim()) {\n throw new TypeError(\n `BasePagination locale ${name} must resolve to a non-empty string.`,\n );\n }\n return value;\n}\n\nfunction getControlContent(value: ReactNode, fallback: string) {\n return hasRenderableNode(value) ? value : fallback;\n}\n\nfunction getControlAriaLabel(value: ReactNode, fallback: string) {\n return typeof value === 'string' && value.trim() ? value : fallback;\n}\n\nfunction getPageItems(\n currentPage: number,\n pageCount: number,\n boundaryCount: number,\n siblingCount: number,\n): PaginationItem[] {\n const pages = new Set<number>();\n const addPage = (page: number) => {\n if (page >= 1 && page <= pageCount) pages.add(page);\n };\n\n for (let offset = 0; offset < boundaryCount; offset += 1) {\n addPage(1 + offset);\n addPage(pageCount - offset);\n }\n for (let offset = -siblingCount; offset <= siblingCount; offset += 1) {\n addPage(currentPage + offset);\n }\n\n const sortedPages = [...pages].sort((left, right) => left - right);\n const items: PaginationItem[] = [];\n\n sortedPages.forEach((page, index) => {\n const previousPage = sortedPages[index - 1];\n if (previousPage !== undefined) {\n const gap = page - previousPage;\n if (gap === 2) items.push(previousPage + 1);\n if (gap > 2) items.push('ellipsis');\n }\n items.push(page);\n });\n\n return items;\n}\n\nexport const BasePagination = forwardRef<HTMLDivElement, BasePaginationProps>(\n function BasePagination(\n {\n page,\n defaultPage,\n pageSize = 20,\n total = 0,\n mode = 'compact',\n siblingCount = 1,\n boundaryCount = 1,\n label,\n firstLabel,\n previousLabel,\n nextLabel,\n lastLabel,\n appearance,\n className,\n classNames,\n style,\n onPageChange,\n role = 'navigation',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...paginationProps\n },\n ref,\n ) {\n const messages = useMonkeysLocaleMessages().pagination;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [uncontrolledPage, setUncontrolledPage] = useState(\n () => defaultPage ?? 1,\n );\n\n if (page !== undefined) assertPositiveInteger(page, 'page');\n if (defaultPage !== undefined) {\n assertPositiveInteger(defaultPage, 'defaultPage');\n }\n assertPositiveInteger(pageSize, 'pageSize');\n assertNonNegativeInteger(total, 'total');\n assertNonNegativeInteger(siblingCount, 'siblingCount');\n assertNonNegativeInteger(boundaryCount, 'boundaryCount');\n if (!paginationModes.has(mode)) {\n throw new TypeError('BasePagination mode must be \"compact\" or \"pages\".');\n }\n if (onPageChange !== undefined && typeof onPageChange !== 'function') {\n throw new TypeError('BasePagination onPageChange must be a function.');\n }\n assertOptionalControlLabel(firstLabel, 'firstLabel');\n assertOptionalControlLabel(previousLabel, 'previousLabel');\n assertOptionalControlLabel(nextLabel, 'nextLabel');\n assertOptionalControlLabel(lastLabel, 'lastLabel');\n assertAccessibleName(ariaLabel, ariaLabelledBy);\n\n const navigationLabel = assertLocaleString(\n messages.navigation,\n 'navigation',\n );\n const firstMessage = assertLocaleString(messages.first, 'first');\n const previousMessage = assertLocaleString(messages.previous, 'previous');\n const nextMessage = assertLocaleString(messages.next, 'next');\n const lastMessage = assertLocaleString(messages.last, 'last');\n const pageCount = Math.max(Math.ceil(total / pageSize), 1);\n const isControlled = page !== undefined;\n const isUncontrolled = !isControlled && defaultPage !== undefined;\n const currentPage = clampPage(\n isControlled ? page : isUncontrolled ? uncontrolledPage : 1,\n pageCount,\n );\n const start = total > 0 ? (currentPage - 1) * pageSize + 1 : 0;\n const end = Math.min(currentPage * pageSize, total);\n const canPrevious = currentPage > 1;\n const canNext = currentPage < pageCount;\n const pageItems =\n mode === 'pages'\n ? getPageItems(currentPage, pageCount, boundaryCount, siblingCount)\n : [];\n\n const requestPage = (requestedPage: number) => {\n const nextPage = clampPage(requestedPage, pageCount);\n if (nextPage === currentPage) return;\n if (isUncontrolled) setUncontrolledPage(nextPage);\n onPageChange?.(nextPage);\n };\n\n const renderControl = (\n slot: 'first' | 'previous' | 'next' | 'last',\n targetPage: number,\n enabled: boolean,\n content: ReactNode,\n accessibleLabel: string,\n ) => (\n <button\n type=\"button\"\n disabled={!enabled}\n aria-label={accessibleLabel}\n data-slot={slot}\n className={cn(\n theme.slots.paginationButton,\n !enabled && theme.slots.paginationButtonDisabled,\n classNames?.button,\n )}\n onClick={() => requestPage(targetPage)}\n >\n {content}\n </button>\n );\n\n return (\n <div\n {...componentAttributes}\n {...paginationProps}\n ref={ref}\n role={role}\n aria-label={\n ariaLabel ?? (ariaLabelledBy === undefined ? navigationLabel : undefined)\n }\n aria-labelledby={ariaLabelledBy}\n data-monkeys-component=\"pagination\"\n data-slot=\"root\"\n data-mode={mode}\n data-controlled={isControlled || undefined}\n data-uncontrolled={isUncontrolled || undefined}\n className={cn(theme.slots.paginationRoot, classNames?.root, className)}\n style={{\n ...theme.styles.pagination,\n ...style,\n }}\n >\n <div\n aria-live=\"polite\"\n data-slot=\"info\"\n className={cn(theme.slots.paginationInfo, classNames?.info)}\n >\n {hasRenderableNode(label)\n ? label\n : total > 0\n ? messages.range({ start, end, total })\n : messages.emptyResults}\n </div>\n\n <div\n data-slot=\"controls\"\n className={cn(theme.slots.paginationControls, classNames?.controls)}\n >\n {mode === 'pages'\n ? renderControl(\n 'first',\n 1,\n canPrevious,\n getControlContent(firstLabel, firstMessage),\n getControlAriaLabel(firstLabel, firstMessage),\n )\n : null}\n {renderControl(\n 'previous',\n currentPage - 1,\n canPrevious,\n getControlContent(previousLabel, previousMessage),\n getControlAriaLabel(previousLabel, previousMessage),\n )}\n\n {mode === 'compact' ? (\n <span\n aria-current=\"page\"\n aria-label={assertLocaleString(\n messages.currentPage({ page: currentPage, pageCount }),\n 'currentPage',\n )}\n data-slot=\"page\"\n data-page={currentPage}\n className={cn(theme.slots.paginationPage, classNames?.page)}\n >\n {currentPage} / {pageCount}\n </span>\n ) : (\n pageItems.map((item, index) => {\n if (item === 'ellipsis') {\n return (\n <span\n key={`ellipsis-${index}`}\n aria-hidden=\"true\"\n data-slot=\"ellipsis\"\n className={cn(\n theme.slots.paginationEllipsis,\n classNames?.ellipsis,\n )}\n >\n …\n </span>\n );\n }\n\n const isCurrent = item === currentPage;\n return (\n <button\n key={item}\n type=\"button\"\n aria-current={isCurrent ? 'page' : undefined}\n aria-label={assertLocaleString(\n isCurrent\n ? messages.currentPage({ page: item, pageCount })\n : messages.page({ page: item, pageCount }),\n isCurrent ? 'currentPage' : 'page',\n )}\n data-slot=\"page\"\n data-page={item}\n data-current={isCurrent || undefined}\n className={cn(\n theme.slots.paginationButton,\n isCurrent && theme.slots.paginationPage,\n classNames?.button,\n isCurrent && classNames?.page,\n )}\n onClick={() => requestPage(item)}\n >\n {item}\n </button>\n );\n })\n )}\n\n {renderControl(\n 'next',\n currentPage + 1,\n canNext,\n getControlContent(nextLabel, nextMessage),\n getControlAriaLabel(nextLabel, nextMessage),\n )}\n {mode === 'pages'\n ? renderControl(\n 'last',\n pageCount,\n canNext,\n getControlContent(lastLabel, lastMessage),\n getControlAriaLabel(lastLabel, lastMessage),\n )\n : null}\n </div>\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseProgressProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport const BaseProgress = forwardRef<HTMLDivElement, BaseProgressProps>(\n function BaseProgress(\n {\n value = 0,\n max = 100,\n label,\n showValue = false,\n valueFormatter,\n appearance,\n className,\n classNames,\n style,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...progressProps\n },\n ref,\n ) {\n const generatedLabelId = `${useId()}-label`;\n\n if (typeof max !== 'number' || !Number.isFinite(max) || max <= 0) {\n throw new TypeError('BaseProgress max must be a positive finite number.');\n }\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n throw new TypeError('BaseProgress value must be a finite number.');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const safeValue = clamp(value, 0, max);\n const percent = (safeValue / max) * 100;\n const renderedValue =\n valueFormatter?.(safeValue, max) ?? `${Math.round(percent)}%`;\n const hasLabel = hasRenderableNode(label);\n const hasLabelRow = hasLabel || showValue;\n const labelText = typeof label === 'string' ? label : undefined;\n const hasExplicitName =\n nativeAriaLabel !== undefined || nativeAriaLabelledBy !== undefined;\n const generatedAriaLabelledBy =\n hasLabel && labelText === undefined && !hasExplicitName\n ? generatedLabelId\n : undefined;\n const state = safeValue === 0 ? 'empty' : safeValue === max ? 'complete' : 'progress';\n\n return (\n <div\n {...componentAttributes}\n {...progressProps}\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-label={\n nativeAriaLabel ??\n (nativeAriaLabelledBy === undefined ? labelText : undefined)\n }\n aria-labelledby={nativeAriaLabelledBy ?? generatedAriaLabelledBy}\n data-monkeys-component=\"progress\"\n data-slot=\"root\"\n data-state={state}\n data-value={safeValue}\n data-max={max}\n className={cn(theme.slots.progressRoot, classNames?.root, className)}\n style={{\n ...theme.styles.progressRoot,\n ...style,\n }}\n >\n {hasLabelRow ? (\n <div\n data-slot=\"label-row\"\n data-state={state}\n className={cn(theme.slots.progressLabelRow, classNames?.labelRow)}\n >\n {hasLabel ? (\n <span\n id={generatedAriaLabelledBy}\n data-slot=\"label\"\n className={cn(theme.slots.progressLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : (\n <span data-slot=\"label\" />\n )}\n {showValue ? (\n <span\n data-slot=\"value\"\n data-value={safeValue}\n className={cn(theme.slots.progressValue, classNames?.value)}\n >\n {renderedValue}\n </span>\n ) : null}\n </div>\n ) : null}\n <div\n data-slot=\"track\"\n data-state={state}\n className={cn(theme.slots.progressTrack, classNames?.track)}\n >\n <div\n data-slot=\"indicator\"\n data-state={state}\n data-value={safeValue}\n className={cn(theme.slots.progressIndicator, classNames?.indicator)}\n style={{\n ...theme.styles.progressIndicator,\n width: `${percent}%`,\n }}\n />\n </div>\n </div>\n );\n },\n);\n","import { forwardRef, useId, useState, type ChangeEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseRadioGroupProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nconst optionSizeClassNames = {\n sm: 'px-2 py-1.5 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n} as const;\n\nconst markerSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst indicatorSizeClassNames = {\n sm: 'h-1.5 w-1.5',\n md: 'h-2 w-2',\n lg: 'h-2.5 w-2.5',\n} as const;\n\nexport const BaseRadioGroup = forwardRef<\n HTMLDivElement,\n BaseRadioGroupProps\n>(function BaseRadioGroup(\n {\n options = [],\n value,\n defaultValue,\n name,\n form,\n orientation = 'vertical',\n required = false,\n invalid = false,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n children,\n onChange,\n onValueChange,\n id,\n 'aria-invalid': nativeAriaInvalid,\n ...groupProps\n },\n ref,\n) {\n for (const [stateName, stateValue] of [\n ['required', required],\n ['invalid', invalid],\n ['disabled', disabled],\n ] as const) {\n if (typeof stateValue !== 'boolean') {\n throw new TypeError(`BaseRadioGroup ${stateName} must be a boolean.`);\n }\n }\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseRadioGroup orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseRadioGroup controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n if (!Array.isArray(options)) {\n throw new TypeError('BaseRadioGroup options must be an array.');\n }\n const optionValues = new Set<string>();\n options.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(\n `BaseRadioGroup option at index ${index} must be an object.`,\n );\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseRadioGroup option value at index ${index} must be a string.`,\n );\n }\n if (optionValues.has(option.value)) {\n const duplicateValue = JSON.stringify(option.value);\n throw new TypeError(\n 'BaseRadioGroup options must use unique values; ' +\n `duplicate value ${duplicateValue} at index ${index}.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseRadioGroup option disabled at index ${index} must be a boolean.`,\n );\n }\n optionValues.add(option.value);\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const resolvedName = name ?? rootId;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (\n event: ChangeEvent<HTMLInputElement>,\n optionDisabled?: boolean,\n ) => {\n if (disabled || optionDisabled) return;\n const nextValue = event.currentTarget.value;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onChange?.(event);\n onValueChange?.(nextValue, event);\n };\n\n return (\n <div\n {...componentAttributes}\n {...groupProps}\n ref={ref}\n id={id}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-disabled={disabled || undefined}\n data-monkeys-component=\"radio-group\"\n data-slot=\"root\"\n data-state={disabled ? 'disabled' : 'enabled'}\n data-orientation={orientation}\n data-size={controlSize}\n data-required={required || undefined}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.radioGroupRoot,\n orientation === 'horizontal' && 'flex flex-wrap items-center',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.radioGroup,\n ...style,\n }}\n >\n {options.map((option, index) => {\n const optionDisabled = disabled || option.disabled;\n const checked = option.value === selectedValue;\n const state = checked ? 'checked' : 'unchecked';\n const optionId = `${rootId}-${index}-${toDomId(option.value)}`;\n\n return (\n <label\n key={option.value}\n htmlFor={optionId}\n data-slot=\"option\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(\n theme.slots.radioOption,\n optionDisabled && theme.slots.radioOptionDisabled,\n controlSize && optionSizeClassNames[controlSize],\n classNames?.option,\n )}\n style={theme.styles.radioOption}\n >\n <span\n data-slot=\"marker\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(\n theme.slots.radioMarker,\n checked && theme.slots.radioMarkerChecked,\n controlSize && markerSizeClassNames[controlSize],\n classNames?.marker,\n )}\n >\n <input\n id={optionId}\n type=\"radio\"\n name={resolvedName}\n form={form}\n value={option.value}\n checked={checked}\n required={required}\n disabled={optionDisabled}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-invalid={invalid || undefined}\n data-disabled={optionDisabled || undefined}\n className={cn(theme.slots.radioInput, classNames?.input)}\n onChange={(event) => handleSelect(event, option.disabled)}\n />\n {checked ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.radioIndicator,\n controlSize && indicatorSizeClassNames[controlSize],\n classNames?.indicator,\n )}\n />\n ) : null}\n </span>\n {hasRenderableNode(option.icon) ? (\n <span\n data-slot=\"icon\"\n className={cn('mt-0.5 shrink-0', classNames?.icon)}\n >\n {option.icon}\n </span>\n ) : null}\n <span\n data-slot=\"content\"\n className={cn(theme.slots.radioContent, classNames?.content)}\n >\n <span\n data-slot=\"label\"\n className={cn(theme.slots.radioLabel, classNames?.label)}\n >\n {option.label}\n </span>\n {hasRenderableNode(option.description) ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.radioDescription,\n classNames?.description,\n )}\n >\n {option.description}\n </span>\n ) : null}\n </span>\n </label>\n );\n })}\n {children}\n </div>\n );\n});\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance, resolveBaseLayoutLength } from './theme';\nimport type { BaseScrollAreaAxis, BaseScrollAreaProps } from './types';\nimport { cn } from './utils';\n\nfunction resolveOverflow(axis: BaseScrollAreaAxis) {\n if (axis === 'x') {\n return { overflowX: 'auto', overflowY: 'hidden' } as const;\n }\n if (axis === 'y') {\n return { overflowX: 'hidden', overflowY: 'auto' } as const;\n }\n if (axis === 'both') {\n return { overflowX: 'auto', overflowY: 'auto' } as const;\n }\n throw new TypeError('BaseScrollArea axis must be \"x\", \"y\", or \"both\".');\n}\n\nexport const BaseScrollArea = forwardRef<HTMLDivElement, BaseScrollAreaProps>(\n function BaseScrollArea(\n {\n children,\n axis = 'y',\n maxWidth,\n maxHeight,\n appearance,\n className,\n classNames,\n style,\n ...viewportProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overflow = resolveOverflow(axis);\n const resolvedMaxWidth =\n maxWidth === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseScrollArea', 'maxWidth', maxWidth);\n const resolvedMaxHeight =\n maxHeight === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseScrollArea', 'maxHeight', maxHeight);\n\n return (\n <div\n {...componentAttributes}\n {...viewportProps}\n ref={ref}\n data-monkeys-component=\"scroll-area\"\n data-slot=\"viewport\"\n data-axis={axis}\n className={cn(\n theme.slots.scrollAreaViewport,\n classNames?.viewport,\n className,\n )}\n style={{\n ...theme.styles.scrollArea,\n ...overflow,\n maxWidth: resolvedMaxWidth,\n maxHeight: resolvedMaxHeight,\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useRef,\n useState,\n type ChangeEvent,\n type FocusEvent,\n type FormEvent,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSelectOption, BaseSelectProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst typeaheadResetDelay = 500;\n\nfunction validateSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n openForPreview,\n required,\n}: Pick<\n BaseSelectProps,\n | 'defaultValue'\n | 'disabled'\n | 'invalid'\n | 'openForPreview'\n | 'options'\n | 'required'\n | 'value'\n>) {\n for (const [name, state] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['openForPreview', openForPreview],\n ] as const) {\n if (typeof state !== 'boolean') {\n throw new TypeError(`BaseSelect ${name} must be a boolean.`);\n }\n }\n if (required !== undefined && typeof required !== 'boolean') {\n throw new TypeError('BaseSelect required must be a boolean.');\n }\n\n if (options !== undefined && !Array.isArray(options)) {\n throw new TypeError('BaseSelect options must be an array.');\n }\n options?.forEach((option, index) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError(`BaseSelect option at index ${index} must be an object.`);\n }\n if (typeof option.value !== 'string') {\n throw new TypeError(\n `BaseSelect option value at index ${index} must be a string.`,\n );\n }\n if (\n option.disabled !== undefined &&\n typeof option.disabled !== 'boolean'\n ) {\n throw new TypeError(\n `BaseSelect option disabled at index ${index} must be a boolean.`,\n );\n }\n if (\n option.textValue !== undefined &&\n typeof option.textValue !== 'string'\n ) {\n throw new TypeError(\n `BaseSelect option textValue at index ${index} must be a string.`,\n );\n }\n });\n\n if (options?.length) {\n if (\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number'\n ) {\n throw new TypeError(\n 'BaseSelect value must be a string or number when options are used.',\n );\n }\n if (\n defaultValue !== undefined &&\n typeof defaultValue !== 'string' &&\n typeof defaultValue !== 'number'\n ) {\n throw new TypeError(\n 'BaseSelect defaultValue must be a string or number when options are used.',\n );\n }\n }\n}\n\nfunction normalizeValue(value: BaseSelectProps['value']) {\n return typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n}\n\nfunction findOption(options: BaseSelectOption[], value: string | undefined) {\n if (value === undefined) return undefined;\n return options.find((option) => option.value === value);\n}\n\nfunction getInitialActiveIndex(options: BaseSelectOption[], value: string) {\n const selectedIndex = options.findIndex(\n (option) => option.value === value && !option.disabled,\n );\n if (selectedIndex >= 0) return selectedIndex;\n return options.findIndex((option) => !option.disabled);\n}\n\nfunction getNextEnabledIndex(\n options: BaseSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n const startIndex = currentIndex >= 0 ? currentIndex : direction === 1 ? -1 : 0;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nfunction getBoundaryEnabledIndex(\n options: BaseSelectOption[],\n boundary: 'first' | 'last',\n) {\n if (boundary === 'first') {\n return options.findIndex((option) => !option.disabled);\n }\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) return index;\n }\n return -1;\n}\n\nfunction getOptionText(option: BaseSelectOption) {\n if (option.textValue !== undefined) return option.textValue;\n if (typeof option.label === 'string') return option.label;\n return option.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport const BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\n function BaseSelect(\n {\n options,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n openForPreview = false,\n appearance,\n className,\n classNames,\n style,\n children,\n value,\n defaultValue,\n onBlur,\n onChange,\n onFocus,\n onInvalid,\n name,\n id,\n required,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n 'aria-describedby': nativeAriaDescribedBy,\n 'aria-errormessage': nativeAriaErrorMessage,\n 'aria-required': nativeAriaRequired,\n ...selectProps\n },\n ref,\n ) {\n validateSelectProps({\n options,\n value,\n defaultValue,\n invalid,\n disabled,\n openForPreview,\n required,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n const generatedId = useId();\n const selectId = id ?? generatedId;\n const triggerId = `${selectId}-button`;\n const listboxId = `${selectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const selectRef = useRef<HTMLSelectElement | null>(null);\n const optionRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const composingRef = useRef(false);\n const typeaheadBufferRef = useRef('');\n const typeaheadTimerRef = useRef<{\n ownerWindow: Window;\n timerId: number;\n } | null>(null);\n const optionList = options ?? [];\n const isCustomSelect = optionList.length > 0;\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n normalizeValue(defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled\n ? normalizeValue(value)\n : uncontrolledValue;\n const selectedOption = findOption(optionList, selectedValue);\n const [activeIndex, setActiveIndex] = useState(() =>\n getInitialActiveIndex(optionList, selectedValue),\n );\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : getInitialActiveIndex(optionList, selectedValue);\n const optionIds = optionList.map(\n (option, index) =>\n `${selectId}-option-${index}-${toDomId(option.value)}`,\n );\n const visibleLabel = selectedOption?.label ?? placeholder;\n const isPlaceholder = !selectedOption;\n const layerDirection = selectProps.dir ?? componentAttributes.dir;\n const rootState = disabled\n ? 'disabled'\n : resolvedInvalid\n ? 'invalid'\n : open\n ? 'open'\n : 'closed';\n\n const setSelectRef = (node: HTMLSelectElement | null) => {\n selectRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const handleNativeBlur = (event: FocusEvent<HTMLSelectElement>) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n };\n\n const handleNativeChange = (event: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n };\n\n const resetActiveIndex = () => {\n setActiveIndex(getInitialActiveIndex(optionList, selectedValue));\n };\n\n const cancelAndClose = () => {\n resetActiveIndex();\n if (!forceOpen) setUncontrolledOpen(false);\n };\n\n const openMenu = (nextActiveIndex?: number) => {\n setActiveIndex(\n nextActiveIndex ?? getInitialActiveIndex(optionList, selectedValue),\n );\n if (!forceOpen) setUncontrolledOpen(true);\n };\n\n const notifyChange = (nextValue: string) => {\n const selectElement = selectRef.current;\n if (!selectElement) return;\n const ownerWindow = selectElement.ownerDocument.defaultView;\n if (!ownerWindow) {\n throw new Error(\n 'BaseSelect cannot dispatch change without an owning window.',\n );\n }\n const valueSetter = Object.getOwnPropertyDescriptor(\n ownerWindow.HTMLSelectElement.prototype,\n 'value',\n )?.set;\n if (!valueSetter) {\n throw new Error('BaseSelect could not resolve the native select value setter.');\n }\n valueSetter.call(selectElement, nextValue);\n selectElement.dispatchEvent(\n new ownerWindow.Event('change', { bubbles: true }),\n );\n };\n\n const commitIndex = (nextIndex: number) => {\n const option = optionList[nextIndex];\n if (!option || option.disabled || disabled) return;\n setActiveIndex(nextIndex);\n if (option.value !== selectedValue) {\n if (!isControlled) {\n setUncontrolledValue(option.value);\n }\n notifyChange(option.value);\n }\n if (!forceOpen) setUncontrolledOpen(false);\n };\n\n const moveActive = (nextIndex: number) => {\n if (nextIndex < 0 || optionList[nextIndex]?.disabled) return;\n setActiveIndex(nextIndex);\n if (!open) openMenu(nextIndex);\n };\n\n const handleTypeahead = (\n event: KeyboardEvent<HTMLButtonElement>,\n character: string,\n ) => {\n const ownerWindow = event.currentTarget.ownerDocument.defaultView;\n if (!ownerWindow) return;\n const nextBuffer = `${typeaheadBufferRef.current}${character}`.toLocaleLowerCase();\n typeaheadBufferRef.current = nextBuffer;\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n typeaheadTimerRef.current = {\n ownerWindow,\n timerId: ownerWindow.setTimeout(() => {\n typeaheadBufferRef.current = '';\n typeaheadTimerRef.current = null;\n }, typeaheadResetDelay),\n };\n\n const repeatedCharacter = Array.from(nextBuffer).every(\n (bufferCharacter) => bufferCharacter === nextBuffer[0],\n );\n const query = repeatedCharacter ? character.toLocaleLowerCase() : nextBuffer;\n const startIndex = open\n ? resolvedActiveIndex\n : optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n for (let offset = 1; offset <= optionList.length; offset += 1) {\n const index = (startIndex + offset + optionList.length) % optionList.length;\n const option = optionList[index];\n if (\n !option?.disabled &&\n getOptionText(option).trim().toLocaleLowerCase().startsWith(query)\n ) {\n event.preventDefault();\n moveActive(index);\n return;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled || composingRef.current || event.nativeEvent.isComposing) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const selectedIndex = optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n const currentIndex = open ? resolvedActiveIndex : selectedIndex;\n moveActive(\n getNextEnabledIndex(\n optionList,\n currentIndex,\n event.key === 'ArrowDown' ? 1 : -1,\n ),\n );\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n moveActive(\n getBoundaryEnabledIndex(\n optionList,\n event.key === 'Home' ? 'first' : 'last',\n ),\n );\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (open) {\n commitIndex(resolvedActiveIndex);\n } else {\n openMenu();\n }\n return;\n }\n\n if (event.key === 'Escape' && open) {\n event.preventDefault();\n cancelAndClose();\n return;\n }\n\n if (event.key === 'Tab' && open) {\n commitIndex(resolvedActiveIndex);\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n !/\\s/.test(event.key)\n ) {\n handleTypeahead(event, event.key);\n }\n };\n\n const handleCustomFocus = (event: FocusEvent<HTMLSelectElement>) => {\n onFocus?.(event);\n if (!event.defaultPrevented) triggerRef.current?.focus();\n };\n\n const handleCustomInvalid = (event: FormEvent<HTMLSelectElement>) => {\n onInvalid?.(event);\n event.preventDefault();\n triggerRef.current?.focus();\n };\n\n useEffect(() => {\n if (!isCustomSelect || !open || forceOpen) return undefined;\n const ownerDocument = rootRef.current?.ownerDocument;\n if (!ownerDocument) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n cancelAndClose();\n }\n };\n\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n return () => {\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, isCustomSelect, open, optionList, selectedValue]);\n\n useEffect(() => {\n if (!isCustomSelect || !open || resolvedActiveIndex < 0) return;\n optionRefs.current[resolvedActiveIndex]?.scrollIntoView?.({\n block: 'nearest',\n });\n }, [isCustomSelect, open, resolvedActiveIndex]);\n\n useEffect(() => {\n if (!isCustomSelect || isControlled) return undefined;\n const selectElement = selectRef.current;\n const form = selectElement?.form;\n const ownerWindow = selectElement?.ownerDocument.defaultView;\n if (!form || !ownerWindow) return undefined;\n\n const handleReset = () => {\n ownerWindow.setTimeout(() => {\n const resetValue = normalizeValue(defaultValue);\n setUncontrolledValue(resetValue);\n setActiveIndex(getInitialActiveIndex(optionList, resetValue));\n if (!forceOpen) setUncontrolledOpen(false);\n }, 0);\n };\n form.addEventListener('reset', handleReset);\n return () => form.removeEventListener('reset', handleReset);\n }, [defaultValue, forceOpen, isControlled, isCustomSelect, optionList]);\n\n useEffect(\n () => () => {\n if (typeaheadTimerRef.current) {\n typeaheadTimerRef.current.ownerWindow.clearTimeout(\n typeaheadTimerRef.current.timerId,\n );\n }\n },\n [],\n );\n\n if (!isCustomSelect) {\n return (\n <div\n {...componentAttributes}\n data-monkeys-component=\"select\"\n data-slot=\"root\"\n data-state={rootState}\n data-native=\"true\"\n className={cn(\n theme.slots.controlWrapper,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <select\n {...componentAttributes}\n {...selectProps}\n id={id}\n ref={ref}\n name={name}\n value={value}\n defaultValue={defaultValue}\n required={required}\n disabled={disabled}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n aria-required={nativeAriaRequired}\n data-monkeys-component=\"select\"\n data-slot=\"native\"\n data-state={rootState}\n data-native=\"true\"\n onBlur={handleNativeBlur}\n onFocus={onFocus}\n onInvalid={onInvalid}\n onChange={handleNativeChange}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n classNames?.control,\n )}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {children}\n </select>\n <span className={theme.slots.selectChevron} />\n </div>\n );\n }\n\n return (\n <div\n {...componentAttributes}\n ref={rootRef}\n dir={layerDirection}\n data-monkeys-component=\"select\"\n data-slot=\"root\"\n data-state={rootState}\n data-native=\"false\"\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <button\n {...componentAttributes}\n ref={triggerRef}\n type=\"button\"\n id={triggerId}\n role=\"combobox\"\n disabled={disabled}\n dir={layerDirection}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && resolvedActiveIndex >= 0\n ? optionIds[resolvedActiveIndex]\n : undefined\n }\n aria-autocomplete=\"none\"\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n aria-describedby={nativeAriaDescribedBy}\n aria-errormessage={nativeAriaErrorMessage}\n aria-required={nativeAriaRequired ?? (required || undefined)}\n data-monkeys-component=\"select\"\n data-slot=\"trigger\"\n data-state={rootState}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n 'flex items-center text-left',\n classNames?.control,\n )}\n onClick={() => {\n if (open) cancelAndClose();\n else openMenu();\n }}\n onBlur={(event) => {\n if (!rootRef.current?.contains(event.relatedTarget)) {\n cancelAndClose();\n fieldControl.notifyBlur(selectedValue);\n }\n }}\n onCompositionStart={() => {\n composingRef.current = true;\n }}\n onCompositionEnd={() => {\n composingRef.current = false;\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n isPlaceholder && theme.slots.selectPlaceholder,\n isPlaceholder && classNames?.placeholder,\n )}\n >\n {visibleLabel}\n </span>\n </button>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n )}\n />\n <select\n {...componentAttributes}\n {...selectProps}\n ref={setSelectRef}\n id={id}\n name={name}\n value={selectedValue}\n required={required}\n disabled={disabled}\n dir={layerDirection}\n aria-hidden=\"true\"\n tabIndex={-1}\n data-monkeys-component=\"select\"\n data-slot=\"native\"\n data-state={rootState}\n data-native=\"false\"\n className={theme.slots.selectNative}\n onBlur={onBlur}\n onFocus={handleCustomFocus}\n onInvalid={handleCustomInvalid}\n onChange={handleNativeChange}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {optionList.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {getOptionText(option)}\n </option>\n ))}\n </select>\n {open ? (\n <div\n {...componentAttributes}\n id={listboxId}\n role=\"listbox\"\n dir={layerDirection}\n aria-labelledby={triggerId}\n data-monkeys-component=\"select\"\n data-slot=\"menu\"\n data-state=\"open\"\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.map((option, index) => {\n const selected = option.value === selectedValue;\n const active = index === resolvedActiveIndex;\n const optionState = option.disabled\n ? 'disabled'\n : active\n ? 'active'\n : selected\n ? 'selected'\n : 'idle';\n return (\n <button\n {...componentAttributes}\n ref={(node) => {\n optionRefs.current[index] = node;\n }}\n key={option.value}\n id={optionIds[index]}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n disabled={option.disabled}\n dir={layerDirection}\n aria-selected={selected}\n data-monkeys-component=\"select\"\n data-slot=\"option\"\n data-state={optionState}\n data-active={active || undefined}\n data-selected={selected || undefined}\n data-disabled={option.disabled || undefined}\n className={cn(\n theme.slots.selectOption,\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected ? theme.styles.selectOptionSelected : undefined),\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitIndex(index)}\n >\n <span className=\"min-w-0 flex-1 truncate\">\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import type { BaseSectionHeaderProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseSectionHeader({\n eyebrow,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...headerProps\n}: BaseSectionHeaderProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...headerProps}\n className={cn(theme.slots.sectionHeaderRoot, classNames?.root, className)}\n style={{\n ...theme.styles.sectionHeader,\n ...style,\n }}\n >\n <div\n className={cn(theme.slots.sectionHeaderContent, classNames?.content)}\n >\n {hasRenderableNode(eyebrow) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderEyebrow,\n classNames?.eyebrow,\n )}\n >\n {eyebrow}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.sectionHeaderTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.sectionHeaderActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { useState, type KeyboardEvent } from 'react';\n\nimport type { BaseSegmentedControlProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getInitialSegmentValue(\n options: BaseSegmentedControlProps['options'],\n defaultValue?: string,\n) {\n if (defaultValue && options?.some((option) => option.value === defaultValue)) {\n const defaultOption = options.find((option) => option.value === defaultValue);\n if (!defaultOption?.disabled) {\n return defaultValue;\n }\n }\n return options?.find((option) => !option.disabled)?.value ?? options?.[0]?.value;\n}\n\nexport function BaseSegmentedControl({\n options = [],\n value,\n defaultValue,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n ...controlProps\n}: BaseSegmentedControlProps) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialSegmentValue(options, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (nextValue: string, disabled?: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n const enabledOptions = options.filter((option) => !option.disabled);\n if (enabledOptions.length === 0) return;\n\n event.preventDefault();\n const currentIndex = Math.max(\n 0,\n enabledOptions.findIndex((option) => option.value === selectedValue),\n );\n const nextIndex =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? enabledOptions.length - 1\n : event.key === 'ArrowLeft' || event.key === 'ArrowUp'\n ? (currentIndex - 1 + enabledOptions.length) % enabledOptions.length\n : (currentIndex + 1) % enabledOptions.length;\n const nextOption = enabledOptions[nextIndex];\n const buttons = event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]');\n const target = Array.from(buttons).find(\n (button) => button.dataset.value === nextOption.value,\n );\n handleSelect(nextOption.value);\n target?.focus();\n };\n\n return (\n <div\n {...controlProps}\n role=\"radiogroup\"\n aria-orientation=\"horizontal\"\n className={cn(theme.slots.segmentedRoot, classNames?.root, className)}\n style={{\n ...theme.styles.segmentedRoot,\n ...style,\n }}\n onKeyDown={handleKeyDown}\n >\n {options.map((option) => {\n const selected = option.value === selectedValue;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n data-value={option.value}\n aria-checked={selected}\n tabIndex={selected ? 0 : -1}\n disabled={option.disabled}\n className={cn(\n theme.slots.segmentedItem,\n selected && theme.slots.segmentedItemActive,\n option.disabled && theme.slots.segmentedItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.segmentedItem}\n onClick={() => handleSelect(option.value, option.disabled)}\n >\n {hasRenderableNode(option.icon) ? (\n <span className={cn('inline-flex h-4 w-4 shrink-0', classNames?.icon)}>\n {option.icon}\n </span>\n ) : null}\n <span className={cn('min-w-0 truncate', classNames?.label)}>\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSkeletonProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst variantClassNames = {\n line: 'h-4 w-full',\n block: 'h-24 w-full',\n circle: 'aspect-square h-10 rounded-full',\n} as const;\n\nexport const BaseSkeleton = forwardRef<HTMLDivElement, BaseSkeletonProps>(\n function BaseSkeleton(\n {\n variant = 'line',\n animated = true,\n appearance,\n className,\n classNames,\n style,\n ...skeletonProps\n },\n ref,\n ) {\n if (variant !== 'line' && variant !== 'block' && variant !== 'circle') {\n throw new TypeError(\n 'BaseSkeleton variant must be \"line\", \"block\", or \"circle\".',\n );\n }\n if (typeof animated !== 'boolean') {\n throw new TypeError('BaseSkeleton animated must be a boolean.');\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...skeletonProps}\n ref={ref}\n aria-hidden=\"true\"\n data-monkeys-component=\"skeleton\"\n data-slot=\"root\"\n data-variant={variant}\n data-animated={animated}\n data-state={animated ? 'animated' : 'static'}\n className={cn(\n theme.slots.skeletonRoot,\n variantClassNames[variant],\n animated && 'motion-safe:animate-pulse motion-reduce:animate-none',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.skeleton,\n ...style,\n }}\n />\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseSpinnerProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseSpinner = forwardRef<HTMLSpanElement, BaseSpinnerProps>(\n function BaseSpinner(\n {\n decorative = false,\n label,\n appearance,\n className,\n classNames,\n style,\n ...spinnerProps\n },\n ref,\n ) {\n const messages = useMonkeysLocaleMessages();\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (typeof decorative !== 'boolean') {\n throw new TypeError('BaseSpinner decorative must be a boolean.');\n }\n if (decorative && label !== undefined) {\n throw new TypeError(\n 'BaseSpinner label cannot be provided when decorative is true.',\n );\n }\n\n const resolvedLabel = decorative\n ? undefined\n : (label ?? messages.loading.spinner);\n if (\n !decorative &&\n (typeof resolvedLabel !== 'string' || !resolvedLabel.trim())\n ) {\n throw new TypeError('BaseSpinner label must be a non-empty string.');\n }\n\n return (\n <span\n {...componentAttributes}\n {...spinnerProps}\n ref={ref}\n role={decorative ? undefined : 'status'}\n aria-label={resolvedLabel}\n aria-hidden={decorative ? 'true' : undefined}\n data-monkeys-component=\"spinner\"\n data-slot=\"root\"\n data-decorative={decorative || undefined}\n className={cn(theme.slots.spinnerRoot, classNames?.root, className)}\n style={{\n ...theme.styles.spinner,\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(theme.slots.spinnerIndicator, classNames?.indicator)}\n style={theme.styles.spinnerIndicator}\n />\n </span>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n resolveBaseAppearance,\n resolveBaseLayoutAlign,\n resolveBaseLayoutJustify,\n resolveBaseLayoutLength,\n} from './theme';\nimport type { BaseStackProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseStack = forwardRef<HTMLDivElement, BaseStackProps>(\n function BaseStack(\n {\n children,\n gap,\n align = 'stretch',\n justify = 'start',\n appearance,\n className,\n classNames,\n style,\n ...stackProps\n },\n ref,\n ) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const resolvedGap =\n gap === undefined\n ? undefined\n : resolveBaseLayoutLength('BaseStack', 'gap', gap);\n\n return (\n <div\n {...componentAttributes}\n {...stackProps}\n ref={ref}\n data-monkeys-component=\"stack\"\n data-slot=\"root\"\n data-align={align}\n data-justify={justify}\n className={cn(theme.slots.stackRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stack,\n gap: resolvedGap,\n alignItems: resolveBaseLayoutAlign('BaseStack', align),\n justifyContent: resolveBaseLayoutJustify('BaseStack', justify),\n ...style,\n }}\n >\n {children}\n </div>\n );\n },\n);\n","import { forwardRef, useId } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseStepItem,\n BaseStepsProps,\n BaseStepsStatusLabels,\n BaseStepStatus,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst stepStatuses = new Set<BaseStepStatus>([\n 'pending',\n 'current',\n 'completed',\n 'error',\n]);\nconst statusLabelKeys = [\n 'current',\n 'completed',\n 'error',\n 'disabled',\n] as const;\nconst invalidStepIdPattern = /[\\s\\u0000-\\u001f\\u007f]/u;\n\ninterface ValidatedStep {\n item: BaseStepItem;\n encodedId: string;\n status: BaseStepStatus;\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction hasStepLabel(value: unknown): boolean {\n if (!hasRenderableNode(value as BaseStepItem['label'])) return false;\n if (typeof value === 'string') return Boolean(value.trim());\n if (Array.isArray(value)) return value.some(hasStepLabel);\n return true;\n}\n\nfunction encodeStepId(id: string) {\n try {\n return encodeURIComponent(id);\n } catch {\n throw new TypeError(\n `BaseSteps item id ${JSON.stringify(id)} must contain valid Unicode.`,\n );\n }\n}\n\nfunction validateItems(items: unknown): ValidatedStep[] {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseSteps items must be an array.');\n }\n\n const ids = new Set<string>();\n let currentCount = 0;\n\n const validatedItems = items.map((candidate, index) => {\n if (!isPlainRecord(candidate)) {\n throw new TypeError(`BaseSteps item at index ${index} must be an object.`);\n }\n\n const item = candidate as unknown as BaseStepItem;\n if (\n typeof item.id !== 'string' ||\n !item.id ||\n invalidStepIdPattern.test(item.id)\n ) {\n throw new TypeError(\n `BaseSteps item at index ${index} must have a non-empty id without whitespace or control characters.`,\n );\n }\n if (ids.has(item.id)) {\n throw new TypeError(`BaseSteps item id ${JSON.stringify(item.id)} is duplicated.`);\n }\n ids.add(item.id);\n\n if (!hasStepLabel(item.label)) {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} label must contain renderable content.`,\n );\n }\n\n const status = item.status ?? 'pending';\n if (!stepStatuses.has(status)) {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} status must be one of: pending, current, completed, error.`,\n );\n }\n if (status === 'current') currentCount += 1;\n\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} disabled must be a boolean.`,\n );\n }\n if (item.selectable !== undefined && typeof item.selectable !== 'boolean') {\n throw new TypeError(\n `BaseSteps item ${JSON.stringify(item.id)} selectable must be a boolean.`,\n );\n }\n\n return { item, encodedId: encodeStepId(item.id), status };\n });\n\n if (currentCount > 1) {\n throw new RangeError('BaseSteps items may contain at most one current step.');\n }\n\n return validatedItems;\n}\n\nfunction resolveStatusLabels(\n defaults: BaseStepsStatusLabels,\n override: unknown,\n): BaseStepsStatusLabels {\n if (override !== undefined && !isPlainRecord(override)) {\n throw new TypeError('BaseSteps statusLabels must be an object.');\n }\n\n const overrideRecord = override as Record<string, unknown> | undefined;\n for (const key of Object.keys(overrideRecord ?? {})) {\n if (!statusLabelKeys.includes(key as (typeof statusLabelKeys)[number])) {\n throw new TypeError(\n `BaseSteps statusLabels.${key} is not a supported status label.`,\n );\n }\n }\n\n const resolved = {\n current: overrideRecord?.current ?? defaults.current,\n completed: overrideRecord?.completed ?? defaults.completed,\n error: overrideRecord?.error ?? defaults.error,\n disabled: overrideRecord?.disabled ?? defaults.disabled,\n };\n\n for (const key of statusLabelKeys) {\n if (typeof resolved[key] !== 'string' || !resolved[key].trim()) {\n throw new TypeError(\n `BaseSteps statusLabels.${key} must be a non-empty string.`,\n );\n }\n }\n\n return resolved as BaseStepsStatusLabels;\n}\n\nfunction validateAccessibleName(\n ariaLabel: unknown,\n ariaLabelledBy: unknown,\n) {\n if (\n ariaLabel !== undefined &&\n (typeof ariaLabel !== 'string' || !ariaLabel.trim())\n ) {\n throw new TypeError(\n 'BaseSteps aria-label must be a non-empty string when provided.',\n );\n }\n if (ariaLabelledBy === undefined) return;\n if (typeof ariaLabelledBy !== 'string' || !ariaLabelledBy.trim()) {\n throw new TypeError(\n 'BaseSteps aria-labelledby must contain at least one valid ID token.',\n );\n }\n const tokens = ariaLabelledBy.trim().split(/\\s+/);\n if (tokens.some((token) => invalidStepIdPattern.test(token))) {\n throw new TypeError(\n 'BaseSteps aria-labelledby must contain only valid ID tokens.',\n );\n }\n}\n\nfunction getIndicator(status: BaseStepStatus, index: number) {\n if (status === 'completed') return '\\u2713';\n if (status === 'error') return '!';\n return index + 1;\n}\n\nfunction getIndicatorClassName(\n status: BaseStepStatus,\n slots: ReturnType<typeof resolveBaseAppearance>['slots'],\n) {\n return cn(\n status === 'pending' && slots.stepsIndicatorPending,\n status === 'current' && slots.stepsIndicatorCurrent,\n status === 'completed' && slots.stepsIndicatorCompleted,\n status === 'error' && slots.stepsIndicatorError,\n );\n}\n\nexport const BaseSteps = forwardRef<HTMLOListElement, BaseStepsProps>(\n function BaseSteps(\n {\n items,\n orientation = 'horizontal',\n statusLabels,\n appearance,\n className,\n classNames,\n style,\n onStepSelect,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...stepsProps\n },\n ref,\n ) {\n const generatedId = useId();\n const messages = useMonkeysLocaleMessages().steps;\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseSteps orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (onStepSelect !== undefined && typeof onStepSelect !== 'function') {\n throw new TypeError('BaseSteps onStepSelect must be a function.');\n }\n if (typeof messages.label !== 'string' || !messages.label.trim()) {\n throw new TypeError('BaseSteps locale label must be a non-empty string.');\n }\n validateAccessibleName(ariaLabel, ariaLabelledBy);\n\n const validatedItems = validateItems(items);\n const resolvedStatusLabels = resolveStatusLabels(messages, statusLabels);\n\n return (\n <ol\n {...componentAttributes}\n {...stepsProps}\n ref={ref}\n role=\"list\"\n aria-label={\n ariaLabel ?? (ariaLabelledBy === undefined ? messages.label : undefined)\n }\n aria-labelledby={ariaLabelledBy}\n data-monkeys-component=\"steps\"\n data-slot=\"root\"\n data-orientation={orientation}\n className={cn(\n theme.slots.stepsRoot,\n orientation === 'horizontal'\n ? theme.slots.stepsHorizontal\n : theme.slots.stepsVertical,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.steps,\n ...style,\n }}\n >\n {validatedItems.map(({ item, encodedId, status }, index) => {\n const itemDomId = `${generatedId}-step-${encodedId}`;\n const labelId = `${itemDomId}-label`;\n const descriptionId = `${itemDomId}-description`;\n const statusId = `${itemDomId}-status`;\n const hasDescription = hasRenderableNode(item.description);\n const statusText =\n status === 'pending' ? undefined : resolvedStatusLabels[status];\n const hasStatusText = Boolean(statusText || item.disabled);\n const interactive =\n onStepSelect !== undefined && item.selectable !== false;\n const describedBy = [\n hasDescription ? descriptionId : undefined,\n hasStatusText ? statusId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n const content = (\n <>\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n className={cn(\n theme.slots.stepsIndicator,\n getIndicatorClassName(status, theme.slots),\n classNames?.indicator,\n )}\n style={theme.styles.stepsIndicator}\n >\n {getIndicator(status, index)}\n </span>\n <span\n data-slot=\"content\"\n className={cn(theme.slots.stepsContent, classNames?.content)}\n >\n <span\n id={labelId}\n data-slot=\"label\"\n className={cn(theme.slots.stepsLabel, classNames?.label)}\n >\n {item.label}\n </span>\n {hasDescription ? (\n <span\n id={descriptionId}\n data-slot=\"description\"\n className={cn(\n theme.slots.stepsDescription,\n classNames?.description,\n )}\n >\n {item.description}\n </span>\n ) : null}\n {hasStatusText ? (\n <span\n id={statusId}\n data-slot=\"status\"\n className={cn(\n theme.slots.stepsStatus,\n classNames?.status,\n )}\n >\n {statusText}\n {statusText && item.disabled ? '. ' : null}\n {item.disabled ? resolvedStatusLabels.disabled : null}\n </span>\n ) : null}\n </span>\n </>\n );\n\n return (\n <li\n key={item.id}\n id={itemDomId}\n aria-current={status === 'current' ? 'step' : undefined}\n aria-disabled={item.disabled || undefined}\n data-step-id={item.id}\n data-status={status}\n data-disabled={item.disabled || undefined}\n data-selectable={interactive || undefined}\n className={cn(\n theme.slots.stepsItem,\n orientation === 'horizontal'\n ? theme.slots.stepsItemHorizontal\n : theme.slots.stepsItemVertical,\n classNames?.item,\n )}\n style={theme.styles.stepsItem}\n >\n {interactive ? (\n <button\n type=\"button\"\n disabled={item.disabled}\n aria-labelledby={labelId}\n aria-describedby={describedBy}\n data-slot=\"trigger\"\n className={cn(\n theme.slots.stepsTrigger,\n theme.slots.stepsTriggerInteractive,\n item.disabled && theme.slots.stepsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.stepsTrigger}\n onClick={() => {\n if (item.disabled) return;\n onStepSelect(item.id, item, index);\n }}\n >\n {content}\n </button>\n ) : (\n <div\n data-slot=\"trigger\"\n className={cn(\n theme.slots.stepsTrigger,\n item.disabled && theme.slots.stepsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.stepsTrigger}\n >\n {content}\n </div>\n )}\n {index < validatedItems.length - 1 ? (\n <span\n aria-hidden=\"true\"\n data-slot=\"connector\"\n className={cn(\n theme.slots.stepsConnector,\n orientation === 'horizontal'\n ? theme.slots.stepsConnectorHorizontal\n : theme.slots.stepsConnectorVertical,\n status === 'completed' &&\n theme.slots.stepsConnectorCompleted,\n status === 'error' && theme.slots.stepsConnectorError,\n classNames?.connector,\n )}\n style={theme.styles.stepsConnector}\n />\n ) : null}\n </li>\n );\n })}\n </ol>\n );\n },\n);\n","import { forwardRef, useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseSwitchProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasNonEmptyRenderableNode, hasRenderableNode } from './utils';\n\nconst trackSizeClassNames = {\n sm: 'h-5 w-9',\n md: 'h-6 w-10',\n lg: 'h-7 w-12',\n} as const;\n\nconst thumbSizeClassNames = {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n} as const;\n\nconst checkedThumbClassNames = {\n sm: 'translate-x-[18px]',\n md: 'translate-x-5',\n lg: 'translate-x-6',\n} as const;\n\nconst densitySize = {\n compact: 'sm',\n default: 'md',\n comfortable: 'lg',\n} as const;\n\nexport const BaseSwitch = forwardRef<HTMLInputElement, BaseSwitchProps>(\n function BaseSwitch(\n {\n label,\n description,\n disabled = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n ...switchProps\n },\n ref,\n ) {\n if (typeof disabled !== 'boolean') {\n throw new TypeError('BaseSwitch disabled must be a boolean.');\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseSwitch controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const hasLabel = hasRenderableNode(label);\n const hasDescription = hasNonEmptyRenderableNode(description);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = isControlled ? checked : uncontrolledChecked;\n const state = resolvedChecked ? 'checked' : 'unchecked';\n const resolvedVisualSize = controlSize ?? densitySize[theme.density];\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n {...componentAttributes}\n data-monkeys-component=\"switch\"\n data-slot=\"root\"\n data-state={state}\n data-size={controlSize}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.switchRoot,\n !hasDescription && 'items-center',\n disabled && theme.slots.switchDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.switchRoot,\n ...style,\n }}\n >\n <span\n data-slot=\"track\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.switchTrack,\n !hasDescription && 'mt-0',\n resolvedChecked && theme.slots.switchChecked,\n controlSize && trackSizeClassNames[controlSize],\n classNames?.track,\n )}\n style={theme.styles.switchTrack}\n >\n <input\n {...switchProps}\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-checked={resolvedChecked}\n data-slot=\"input\"\n data-state={state}\n data-size={controlSize}\n data-disabled={disabled || undefined}\n onChange={handleChange}\n className={cn(theme.slots.switchInput, classNames?.input)}\n />\n <span\n aria-hidden=\"true\"\n data-slot=\"thumb\"\n data-state={state}\n data-size={controlSize}\n className={cn(\n theme.slots.switchThumb,\n controlSize && thumbSizeClassNames[controlSize],\n resolvedChecked && checkedThumbClassNames[resolvedVisualSize],\n classNames?.thumb,\n )}\n style={theme.styles.switchThumb}\n />\n </span>\n\n {hasLabel || hasDescription ? (\n <span\n data-slot=\"content\"\n className={cn(theme.slots.switchContent, classNames?.content)}\n >\n {hasLabel ? (\n <span\n data-slot=\"label\"\n className={cn(theme.slots.switchLabel, classNames?.label)}\n >\n {label}\n </span>\n ) : null}\n {hasDescription ? (\n <span\n data-slot=\"description\"\n className={cn(\n theme.slots.switchDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type DragEvent,\n type ForwardedRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type MutableRefObject,\n type PointerEvent as ReactPointerEvent,\n type ReactNode,\n type UIEvent as ReactUIEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n useMonkeysLocaleMessages,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseAppearance,\n BaseResolvedTheme,\n BaseTableAlign,\n BaseTableBodyProps,\n BaseTableCaptionProps,\n BaseTableCellProps,\n BaseTableColumnDefinition,\n BaseTableColumnInteractionOptions,\n BaseTableContainerProps,\n BaseTableEmptyProps,\n BaseTableFooterProps,\n BaseTableHeaderProps,\n BaseTableHeadProps,\n BaseTableLayout,\n BaseTableLoadingProps,\n BaseTableProps,\n BaseTableRowProps,\n BaseTableSortDirection,\n BaseTableVerticalAlign,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DATA_TRANSFER_COLUMN_TYPE = 'application/x-monkeys-base-table-column';\nconst COLUMN_RESIZE_KEYBOARD_STEP = 8;\n\nfunction assignRef<T>(ref: ForwardedRef<T> | undefined, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction assertBoolean(name: string, value: unknown) {\n if (value !== undefined && typeof value !== 'boolean') {\n throw new Error(`BaseTable ${name} must be a boolean.`);\n }\n}\n\nfunction assertEnum<T extends string>(\n name: string,\n value: unknown,\n values: readonly T[],\n) {\n if (value !== undefined && !values.includes(value as T)) {\n throw new Error(\n `BaseTable ${name} must be one of ${values.map((item) => `\"${item}\"`).join(', ')}.`,\n );\n }\n}\n\nfunction assertOptionalLabel(name: string, value: unknown) {\n if (\n value !== undefined &&\n (typeof value !== 'string' || value.trim().length === 0)\n ) {\n throw new Error(`BaseTable ${name} must be a non-empty string when provided.`);\n }\n}\n\nfunction assertOptionalFunction(name: string, value: unknown) {\n if (value !== undefined && typeof value !== 'function') {\n throw new Error(`BaseTable ${name} must be a function when provided.`);\n }\n}\n\nfunction validateCssSizeValue(\n value: unknown,\n name: string,\n options: { stringAllowed?: boolean } = {},\n) {\n if (value === undefined) return;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable ${name} must be a finite non-negative number${\n options.stringAllowed ? ' or a non-empty CSS size string' : ''\n }.`,\n );\n }\n return;\n }\n if (\n options.stringAllowed &&\n typeof value === 'string' &&\n value.trim().length > 0\n ) {\n return;\n }\n throw new Error(\n `BaseTable ${name} must be ${\n options.stringAllowed\n ? 'a finite non-negative number or a non-empty CSS size string'\n : 'a finite non-negative number'\n }.`,\n );\n}\n\nfunction validateColumns(columns: unknown) {\n if (columns === undefined) return undefined;\n if (!Array.isArray(columns)) {\n throw new Error('BaseTable columns must be an array when provided.');\n }\n\n const ids = new Set<string>();\n columns.forEach((column, index) => {\n if (!column || typeof column !== 'object' || Array.isArray(column)) {\n throw new Error(`BaseTable column at index ${index} must be an object.`);\n }\n const definition = column as BaseTableColumnDefinition;\n if (typeof definition.id !== 'string' || definition.id.trim().length === 0) {\n throw new Error(\n `BaseTable column id at index ${index} must be a non-empty string.`,\n );\n }\n const columnId = definition.id.trim();\n if (definition.id !== columnId) {\n throw new Error(\n `BaseTable column id \"${definition.id}\" must not contain surrounding whitespace.`,\n );\n }\n if (ids.has(columnId)) {\n throw new Error(`BaseTable columns contain duplicate id \"${columnId}\".`);\n }\n ids.add(columnId);\n validateCssSizeValue(definition.width, `column \"${columnId}\" width`, {\n stringAllowed: true,\n });\n validateCssSizeValue(definition.minWidth, `column \"${columnId}\" minWidth`, {\n stringAllowed: true,\n });\n validateCssSizeValue(definition.maxWidth, `column \"${columnId}\" maxWidth`, {\n stringAllowed: true,\n });\n if (\n typeof definition.minWidth === 'number' &&\n typeof definition.maxWidth === 'number' &&\n definition.minWidth > definition.maxWidth\n ) {\n throw new Error(\n `BaseTable column \"${columnId}\" minWidth cannot be greater than maxWidth.`,\n );\n }\n });\n return ids;\n}\n\nfunction validateColumnOrder(columnOrder: unknown, knownColumnIds?: Set<string>) {\n if (columnOrder === undefined) return;\n if (!Array.isArray(columnOrder)) {\n throw new Error('BaseTable columnOrder must be an array when provided.');\n }\n\n const ids = new Set<string>();\n columnOrder.forEach((value, index) => {\n if (typeof value !== 'string' || value.trim().length === 0) {\n throw new Error(\n `BaseTable columnOrder entry at index ${index} must be a non-empty string.`,\n );\n }\n const columnId = value.trim();\n if (value !== columnId) {\n throw new Error(\n `BaseTable columnOrder entry \"${value}\" must not contain surrounding whitespace.`,\n );\n }\n if (ids.has(columnId)) {\n throw new Error(\n `BaseTable columnOrder contains duplicate id \"${columnId}\".`,\n );\n }\n if (knownColumnIds && !knownColumnIds.has(columnId)) {\n throw new Error(\n `BaseTable columnOrder contains unknown column id \"${columnId}\".`,\n );\n }\n ids.add(columnId);\n });\n\n if (knownColumnIds && ids.size !== knownColumnIds.size) {\n const missing = [...knownColumnIds].filter((columnId) => !ids.has(columnId));\n throw new Error(\n `BaseTable columnOrder must contain every configured column id; missing ${missing\n .map((columnId) => `\"${columnId}\"`)\n .join(', ')}.`,\n );\n }\n}\n\nfunction validateColumnSizes(columnSizes: unknown, knownColumnIds?: Set<string>) {\n if (columnSizes === undefined) return;\n if (\n !columnSizes ||\n typeof columnSizes !== 'object' ||\n Array.isArray(columnSizes) ||\n ![Object.prototype, null].includes(Object.getPrototypeOf(columnSizes))\n ) {\n throw new Error(\n 'BaseTable columnSizes must be a plain record when provided.',\n );\n }\n\n Object.entries(columnSizes).forEach(([columnId, value]) => {\n const normalizedColumnId = columnId.trim();\n if (normalizedColumnId.length === 0) {\n throw new Error('BaseTable columnSizes keys must be non-empty strings.');\n }\n if (columnId !== normalizedColumnId) {\n throw new Error(\n `BaseTable columnSizes key \"${columnId}\" must not contain surrounding whitespace.`,\n );\n }\n if (knownColumnIds && !knownColumnIds.has(normalizedColumnId)) {\n throw new Error(\n `BaseTable columnSizes contains unknown column id \"${columnId}\".`,\n );\n }\n validateCssSizeValue(value, `columnSizes[\"${columnId}\"]`);\n });\n}\n\nfunction isRtl(element: HTMLElement) {\n const ownerWindow = element.ownerDocument.defaultView;\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element).direction === 'rtl';\n }\n return element.closest('[dir=\"rtl\"]') !== null;\n}\n\nfunction setPointerCaptureIfAvailable(target: HTMLElement, pointerId: number) {\n if (!target.setPointerCapture) return;\n try {\n target.setPointerCapture(pointerId);\n } catch (error) {\n const OwnerDOMException = target.ownerDocument.defaultView?.DOMException;\n if (\n OwnerDOMException &&\n error instanceof OwnerDOMException &&\n error.name === 'NotFoundError'\n ) {\n return;\n }\n throw error;\n }\n}\n\ntype BaseTableContextValue = BaseTableColumnInteractionOptions & {\n appearance?: BaseAppearance;\n theme: BaseResolvedTheme;\n layout: BaseTableLayout;\n columnTemplate?: string;\n bodyMaxHeight?: number | string;\n bodyClassName?: string;\n splitHeaderRef?: MutableRefObject<HTMLTableSectionElement | null>;\n splitFooterRef?: MutableRefObject<HTMLTableSectionElement | null>;\n draggingColumnId?: string;\n setDraggingColumnId: (columnId?: string) => void;\n};\n\nconst BaseTableContext = createContext<BaseTableContextValue | null>(null);\n\nfunction useBaseTableContext(appearance?: BaseAppearance) {\n const context = useContext(BaseTableContext);\n const providerAppearance = useMonkeysBaseAppearance(appearance);\n if (context) {\n const resolvedAppearance =\n appearance === undefined ? context.appearance : providerAppearance;\n return {\n ...context,\n theme:\n appearance === undefined\n ? context.theme\n : resolveBaseAppearance(resolvedAppearance),\n appearance: resolvedAppearance,\n };\n }\n\n const theme = resolveBaseAppearance(providerAppearance);\n return {\n appearance: providerAppearance,\n theme,\n layout: 'native',\n setDraggingColumnId: () => {},\n } satisfies BaseTableContextValue;\n}\n\nfunction hasSplitScrollTable(children: ReactNode): boolean {\n let found = false;\n\n Children.forEach(children, (child) => {\n if (found || !isValidElement(child)) return;\n\n const childProps = child.props as {\n children?: ReactNode;\n layout?: unknown;\n };\n\n if (childProps.layout === 'split-scroll') {\n found = true;\n return;\n }\n\n if (childProps.children) {\n found = hasSplitScrollTable(childProps.children);\n }\n });\n\n return found;\n}\n\nfunction toCssSize(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction validateTableCssSize(\n value: number | string | undefined,\n property: string,\n) {\n if (value === undefined) return undefined;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable ${property} must be a finite non-negative number when numeric.`,\n );\n }\n return `${value}px`;\n }\n\n if (value.trim().length === 0) {\n throw new Error(`BaseTable ${property} must not be an empty CSS size.`);\n }\n\n return value;\n}\n\nfunction validateCssSize(\n value: number | string | undefined,\n columnId: string,\n property: string,\n) {\n if (value === undefined) return undefined;\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has invalid ${property}. Expected a finite non-negative number.`,\n );\n }\n return `${value}px`;\n }\n\n if (value.trim().length === 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has an empty ${property} value.`,\n );\n }\n\n return value;\n}\n\nfunction validateNumericSize(\n value: number | string | undefined,\n columnId: string,\n property: string,\n) {\n if (value === undefined || typeof value !== 'number') return undefined;\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has invalid ${property}. Expected a finite non-negative number.`,\n );\n }\n return value;\n}\n\nfunction buildSplitColumnTemplate(\n columns: BaseTableColumnDefinition[] | undefined,\n columnSizes: BaseTableColumnInteractionOptions['columnSizes'],\n) {\n if (!columns?.length) {\n throw new Error(\n 'BaseTable layout=\"split-scroll\" requires at least one column definition.',\n );\n }\n\n const seenColumnIds = new Set<string>();\n const tracks = columns.map((column, index) => {\n const columnId = column.id.trim();\n if (!columnId) {\n throw new Error(\n `BaseTable split-scroll column at index ${index} requires a non-empty id.`,\n );\n }\n if (seenColumnIds.has(columnId)) {\n throw new Error(\n `BaseTable layout=\"split-scroll\" received duplicate column id \"${columnId}\".`,\n );\n }\n seenColumnIds.add(columnId);\n\n const columnSize = columnSizes?.[columnId];\n const numericMinWidth = validateNumericSize(column.minWidth, columnId, 'minWidth');\n const numericMaxWidth = validateNumericSize(column.maxWidth, columnId, 'maxWidth');\n if (\n numericMinWidth !== undefined &&\n numericMaxWidth !== undefined &&\n numericMaxWidth < numericMinWidth\n ) {\n throw new Error(\n `BaseTable split-scroll column \"${columnId}\" has maxWidth smaller than minWidth.`,\n );\n }\n\n const minWidth = validateCssSize(column.minWidth, columnId, 'minWidth');\n const maxWidth = validateCssSize(column.maxWidth, columnId, 'maxWidth');\n const baseWidth =\n columnSize !== undefined\n ? clampWidth(columnSize, numericMinWidth, numericMaxWidth)\n : column.width;\n const width = validateCssSize(baseWidth, columnId, 'width');\n if (width) return width;\n\n return `minmax(${minWidth ?? '0px'}, ${maxWidth ?? '1fr'})`;\n });\n\n return `${tracks.join(' ')} var(--base-table-split-scrollbar-gutter)`;\n}\n\nfunction clampWidth(value: number, minWidth?: number, maxWidth?: number) {\n const min = minWidth ?? 48;\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getNextColumnOrder(\n order: string[] | undefined,\n columnId: string,\n targetColumnId: string,\n) {\n if (!order || columnId === targetColumnId) return undefined;\n const fromIndex = order.indexOf(columnId);\n const toIndex = order.indexOf(targetColumnId);\n if (fromIndex < 0 || toIndex < 0) return undefined;\n\n const next = [...order];\n const [moved] = next.splice(fromIndex, 1);\n next.splice(toIndex, 0, moved);\n return next;\n}\n\nfunction sortAriaValue(direction?: BaseTableSortDirection) {\n switch (direction) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return undefined;\n }\n}\n\nfunction getSplitHeadJustifyContent(align: BaseTableAlign) {\n switch (align) {\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n default:\n return 'flex-start';\n }\n}\n\nfunction getSplitHeadAlignItems(verticalAlign: BaseTableVerticalAlign) {\n switch (verticalAlign) {\n case 'top':\n return 'flex-start';\n case 'bottom':\n return 'flex-end';\n default:\n return 'center';\n }\n}\n\nfunction SortIndicator({\n direction,\n className,\n}: {\n direction?: BaseTableSortDirection;\n className?: string;\n}) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n className,\n direction === 'desc' && 'rotate-180',\n (!direction || direction === 'none') && 'opacity-45',\n )}\n >\n ▲\n </span>\n );\n}\n\nfunction DragHandleIcon() {\n return (\n <span aria-hidden=\"true\" className=\"grid gap-0.5\">\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n </span>\n );\n}\n\nexport const BaseTableContainer = forwardRef<\n HTMLDivElement,\n BaseTableContainerProps\n>(function BaseTableContainer(\n {\n appearance,\n attachedFooter = false,\n children,\n className,\n classNames,\n style,\n ...containerProps\n },\n ref,\n) {\n assertBoolean('attachedFooter', attachedFooter);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const containsSplitScrollTable = hasSplitScrollTable(children);\n const splitScrollContainerStyle = containsSplitScrollTable\n ? ({\n overflow: 'hidden',\n scrollbarGutter: 'auto',\n } as CSSProperties)\n : undefined;\n\n return (\n <div\n {...componentAttributes}\n {...containerProps}\n ref={ref}\n data-monkeys-component=\"table-container\"\n data-slot=\"container\"\n data-base-table-container=\"\"\n data-attached-footer={attachedFooter ? '' : undefined}\n className={cn(\n theme.slots.tableContainer,\n attachedFooter && theme.slots.tableContainerFooterAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableContainer,\n ...(attachedFooter ? theme.styles.tableContainerFooterAttached : undefined),\n ...splitScrollContainerStyle,\n ...style,\n }}\n >\n {children}\n </div>\n );\n});\n\nexport const BaseTable = forwardRef<HTMLTableElement, BaseTableProps>(\n function BaseTable(\n {\n appearance,\n className,\n classNames,\n style,\n layout = 'native',\n columns,\n bodyMaxHeight,\n bodyClassName,\n columnOrder,\n columnSizes,\n columnDragEnabled = false,\n columnResizeEnabled = false,\n onColumnOrderChange,\n onColumnSizeChange,\n ...tableProps\n },\n ref,\n ) {\n assertEnum('layout', layout, ['native', 'split-scroll'] as const);\n assertBoolean('columnDragEnabled', columnDragEnabled);\n assertBoolean('columnResizeEnabled', columnResizeEnabled);\n assertOptionalFunction('onColumnOrderChange', onColumnOrderChange);\n assertOptionalFunction('onColumnSizeChange', onColumnSizeChange);\n validateCssSizeValue(bodyMaxHeight, 'bodyMaxHeight', { stringAllowed: true });\n const knownColumnIds = validateColumns(columns);\n validateColumnOrder(columnOrder, knownColumnIds);\n validateColumnSizes(columnSizes, knownColumnIds);\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const [draggingColumnId, setDraggingColumnId] = useState<string | undefined>();\n const splitHeaderRef = useRef<HTMLTableSectionElement | null>(null);\n const splitFooterRef = useRef<HTMLTableSectionElement | null>(null);\n const isSplitScroll = layout === 'split-scroll';\n const columnTemplate = isSplitScroll\n ? buildSplitColumnTemplate(columns, columnSizes)\n : undefined;\n const contextValue: BaseTableContextValue = {\n appearance: resolvedAppearance,\n theme,\n layout,\n columnTemplate,\n bodyMaxHeight,\n bodyClassName,\n splitHeaderRef,\n splitFooterRef,\n columnOrder,\n columnSizes,\n columnDragEnabled,\n columnResizeEnabled,\n onColumnOrderChange,\n onColumnSizeChange,\n draggingColumnId,\n setDraggingColumnId,\n };\n\n return (\n <BaseTableContext.Provider value={contextValue}>\n <table\n {...componentAttributes}\n {...tableProps}\n ref={ref}\n data-monkeys-component=\"table\"\n data-slot=\"root\"\n data-base-table-layout={layout}\n className={cn(\n theme.slots.tableRoot,\n isSplitScroll && theme.slots.tableSplitRoot,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.table,\n ...(isSplitScroll ? theme.styles.tableSplitRoot : undefined),\n ...(columnTemplate\n ? ({\n '--base-table-column-template': columnTemplate,\n } as CSSProperties)\n : undefined),\n ...style,\n }}\n />\n </BaseTableContext.Provider>\n );\n});\n\nexport const BaseTableHeader = forwardRef<\n HTMLTableSectionElement,\n BaseTableHeaderProps\n>(function BaseTableHeader(\n { appearance, className, classNames, style, ...headerProps },\n ref,\n) {\n const { layout, splitHeaderRef, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const setHeaderRef = (node: HTMLTableSectionElement | null) => {\n if (splitHeaderRef) splitHeaderRef.current = isSplitScroll ? node : null;\n assignRef(ref, node);\n };\n\n return (\n <thead\n {...headerProps}\n ref={setHeaderRef}\n data-slot=\"header\"\n className={cn(\n theme.slots.tableHeader,\n isSplitScroll && theme.slots.tableSplitHeader,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHeader,\n ...(isSplitScroll ? theme.styles.tableSplitHeader : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableBody = forwardRef<\n HTMLTableSectionElement,\n BaseTableBodyProps\n>(function BaseTableBody(\n { appearance, className, classNames, onScroll, style, ...bodyProps },\n ref,\n) {\n const {\n bodyClassName,\n bodyMaxHeight,\n layout,\n splitFooterRef,\n splitHeaderRef,\n theme,\n } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const handleScroll = isSplitScroll\n ? (event: ReactUIEvent<HTMLTableSectionElement>) => {\n const scrollLeft = event.currentTarget.scrollLeft;\n\n if (splitHeaderRef?.current) {\n splitHeaderRef.current.scrollLeft = scrollLeft;\n }\n if (splitFooterRef?.current) {\n splitFooterRef.current.scrollLeft = scrollLeft;\n }\n onScroll?.(event);\n }\n : onScroll;\n\n return (\n <tbody\n {...bodyProps}\n ref={ref}\n data-slot=\"body\"\n onScroll={handleScroll}\n className={cn(\n theme.slots.tableBody,\n isSplitScroll && theme.slots.tableSplitBody,\n isSplitScroll && bodyClassName,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableBody,\n ...(isSplitScroll ? theme.styles.tableSplitBody : undefined),\n ...(isSplitScroll && bodyMaxHeight !== undefined\n ? { maxHeight: validateTableCssSize(bodyMaxHeight, 'bodyMaxHeight') }\n : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableFooter = forwardRef<\n HTMLTableSectionElement,\n BaseTableFooterProps\n>(function BaseTableFooter(\n { appearance, className, classNames, style, ...footerProps },\n ref,\n) {\n const { layout, splitFooterRef, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const setFooterRef = (node: HTMLTableSectionElement | null) => {\n if (splitFooterRef) splitFooterRef.current = isSplitScroll ? node : null;\n assignRef(ref, node);\n };\n\n return (\n <tfoot\n {...footerProps}\n ref={setFooterRef}\n data-slot=\"footer\"\n className={cn(\n theme.slots.tableFooter,\n isSplitScroll && theme.slots.tableSplitFooter,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableFooter,\n ...(isSplitScroll ? theme.styles.tableSplitFooter : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableRow = forwardRef<HTMLTableRowElement, BaseTableRowProps>(\n function BaseTableRow(\n {\n interactive,\n selected,\n disabled,\n appearance,\n className,\n classNames,\n style,\n ...rowProps\n },\n ref,\n ) {\n assertBoolean('interactive', interactive);\n assertBoolean('selected', selected);\n assertBoolean('disabled', disabled);\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <tr\n {...rowProps}\n ref={ref}\n data-slot=\"row\"\n aria-disabled={disabled || undefined}\n data-state={selected ? 'selected' : undefined}\n className={cn(\n theme.slots.tableRow,\n isSplitScroll && theme.slots.tableSplitRow,\n interactive && !disabled && theme.slots.tableRowInteractive,\n selected && theme.slots.tableRowSelected,\n disabled && theme.slots.tableRowDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableRow,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableHead = forwardRef<HTMLTableCellElement, BaseTableHeadProps>(function BaseTableHead({\n columnId,\n align,\n verticalAlign,\n icon,\n label,\n description,\n meta,\n actions,\n trailing,\n sortable,\n sortDirection = 'none',\n sortLabel,\n onSort,\n draggable,\n dragLabel,\n resizable,\n resizeLabel,\n width,\n minWidth,\n maxWidth,\n appearance,\n className,\n classNames,\n style,\n children,\n onDragOver,\n onDrop,\n ...headProps\n}, forwardedRef) {\n assertEnum('head align', align, ['left', 'center', 'right'] as const);\n assertEnum('head verticalAlign', verticalAlign, [\n 'top',\n 'middle',\n 'bottom',\n ] as const);\n assertEnum('head sortDirection', sortDirection, [\n 'asc',\n 'desc',\n 'none',\n ] as const);\n assertBoolean('head sortable', sortable);\n assertBoolean('head draggable', draggable);\n assertBoolean('head resizable', resizable);\n assertOptionalFunction('head onSort', onSort);\n assertOptionalLabel('head sortLabel', sortLabel);\n assertOptionalLabel('head dragLabel', dragLabel);\n assertOptionalLabel('head resizeLabel', resizeLabel);\n if (\n columnId !== undefined &&\n (typeof columnId !== 'string' || columnId.trim().length === 0)\n ) {\n throw new Error(\n 'BaseTable head columnId must be a non-empty string when provided.',\n );\n }\n validateCssSizeValue(width, 'head width', { stringAllowed: true });\n validateCssSizeValue(minWidth, 'head minWidth');\n validateCssSizeValue(maxWidth, 'head maxWidth');\n if (\n minWidth !== undefined &&\n maxWidth !== undefined &&\n minWidth > maxWidth\n ) {\n throw new Error('BaseTable head minWidth cannot be greater than maxWidth.');\n }\n const tableContext = useBaseTableContext(appearance);\n const { theme } = tableContext;\n const messages = useMonkeysLocaleMessages().table;\n const isSplitScroll = tableContext.layout === 'split-scroll';\n const resolvedAlign = align ?? (isSplitScroll ? 'center' : 'left');\n const resolvedVerticalAlign = verticalAlign ?? 'middle';\n const headRef = useRef<HTMLTableCellElement | null>(null);\n const resizeCleanupRef = useRef<() => void>(() => {});\n const [measuredWidth, setMeasuredWidth] = useState<number>();\n const setHeadRef = (node: HTMLTableCellElement | null) => {\n headRef.current = node;\n assignRef(forwardedRef, node);\n };\n const controlledWidth =\n columnId && tableContext.columnSizes?.[columnId] !== undefined\n ? tableContext.columnSizes[columnId]\n : width;\n const canDrag = Boolean(\n columnId &&\n draggable !== false &&\n (draggable || tableContext.columnDragEnabled) &&\n tableContext.columnOrder &&\n tableContext.onColumnOrderChange,\n );\n const canResize = Boolean(\n columnId &&\n resizable !== false &&\n (resizable || tableContext.columnResizeEnabled) &&\n tableContext.onColumnSizeChange,\n );\n if (\n canResize &&\n maxWidth !== undefined &&\n maxWidth < (minWidth ?? 48)\n ) {\n throw new Error(\n 'BaseTable resizable head maxWidth cannot be smaller than its effective minWidth.',\n );\n }\n const interactiveSort = Boolean(sortable || onSort);\n const ariaSort = sortAriaValue(sortDirection);\n\n const content = hasRenderableNode(label) ? label : children;\n const hasVisibleSortName =\n hasRenderableNode(content) || hasRenderableNode(description);\n const sortAccessibleName =\n sortLabel ??\n (!hasVisibleSortName\n ? messages.sortColumn({ columnId: columnId?.trim() || undefined })\n : undefined);\n const usesRichHeader =\n canDrag ||\n hasRenderableNode(icon) ||\n hasRenderableNode(label) ||\n hasRenderableNode(description) ||\n hasRenderableNode(meta) ||\n hasRenderableNode(actions) ||\n hasRenderableNode(trailing) ||\n interactiveSort;\n const renderedContent =\n usesRichHeader ? (\n <div className={cn(theme.slots.tableHeadContent, classNames?.content)}>\n <div className={cn(theme.slots.tableHeadMain, classNames?.main)}>\n {canDrag ? (\n <button\n type=\"button\"\n draggable\n title={dragLabel}\n aria-label={\n dragLabel ?? messages.dragColumn({ columnId: columnId as string })\n }\n className={cn(theme.slots.tableHeadDragHandle, classNames?.dragHandle)}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => {\n if (\n !columnId ||\n !tableContext.columnOrder ||\n (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')\n ) {\n return;\n }\n const currentIndex = tableContext.columnOrder.indexOf(columnId);\n if (currentIndex < 0) return;\n const rtl = isRtl(event.currentTarget);\n const physicalDelta = event.key === 'ArrowLeft' ? -1 : 1;\n const nextIndex = currentIndex + (rtl ? -physicalDelta : physicalDelta);\n const targetColumnId = tableContext.columnOrder[nextIndex];\n if (!targetColumnId) return;\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n columnId,\n targetColumnId,\n );\n if (!nextOrder) return;\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId,\n targetColumnId,\n });\n }}\n onDragStart={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(columnId);\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData(DATA_TRANSFER_COLUMN_TYPE, columnId as string);\n }}\n onDragEnd={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(undefined);\n }}\n >\n <DragHandleIcon />\n </button>\n ) : null}\n {icon ? (\n <span className={cn(theme.slots.tableHeadIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {interactiveSort ? (\n <button\n type=\"button\"\n disabled={!onSort}\n title={sortLabel}\n aria-label={sortAccessibleName}\n className={cn(theme.slots.tableHeadSortButton, classNames?.sortButton)}\n onClick={(event) => {\n event.stopPropagation();\n onSort?.(columnId);\n }}\n >\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n <SortIndicator\n direction={sortDirection}\n className={cn(theme.slots.tableHeadSortIcon, classNames?.sortIcon)}\n />\n </button>\n ) : (\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n )}\n </div>\n {hasRenderableNode(meta) || hasRenderableNode(actions) || hasRenderableNode(trailing) ? (\n <div className={cn(theme.slots.tableHeadActions, classNames?.actions)}>\n {hasRenderableNode(meta) ? (\n <span className={cn(theme.slots.tableHeadMeta, classNames?.meta)}>\n {meta}\n </span>\n ) : null}\n {actions}\n {trailing}\n </div>\n ) : null}\n </div>\n ) : (\n children\n );\n\n const handleDragOver = (event: DragEvent<HTMLTableCellElement>) => {\n onDragOver?.(event);\n if (!canDrag || !tableContext.draggingColumnId || tableContext.draggingColumnId === columnId) {\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = 'move';\n };\n\n const handleDrop = (event: DragEvent<HTMLTableCellElement>) => {\n onDrop?.(event);\n if (!canDrag || !columnId) return;\n const sourceColumnId =\n tableContext.draggingColumnId ||\n event.dataTransfer.getData(DATA_TRANSFER_COLUMN_TYPE);\n if (!sourceColumnId || sourceColumnId === columnId) return;\n\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n sourceColumnId,\n columnId,\n );\n if (nextOrder) {\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId: sourceColumnId,\n targetColumnId: columnId,\n });\n }\n tableContext.setDraggingColumnId(undefined);\n };\n\n const handleResizePointerDown = (event: ReactPointerEvent<HTMLButtonElement>) => {\n if (\n !canResize ||\n !columnId ||\n !tableContext.onColumnSizeChange ||\n (event.button !== 0 && event.pointerType !== 'touch')\n ) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n resizeCleanupRef.current();\n\n const startX = event.clientX;\n const currentWidth =\n currentResizeWidth ?? headRef.current?.offsetWidth ?? minWidth ?? 48;\n const previousWidth = clampWidth(currentWidth, minWidth, maxWidth);\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n const ownerDocument = target.ownerDocument;\n const rtl = isRtl(target);\n\n const handlePointerMove = (moveEvent: PointerEvent) => {\n if (moveEvent.pointerId !== pointerId) return;\n const nextWidth = clampWidth(\n previousWidth + (rtl ? startX - moveEvent.clientX : moveEvent.clientX - startX),\n minWidth,\n maxWidth,\n );\n tableContext.onColumnSizeChange?.(columnId, nextWidth, {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n });\n };\n\n const handleStop = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n resizeCleanupRef.current();\n };\n const handleLostCapture = (nextEvent: PointerEvent) => {\n if (nextEvent.pointerId !== pointerId) return;\n resizeCleanupRef.current();\n };\n\n resizeCleanupRef.current = () => {\n ownerDocument.removeEventListener('pointermove', handlePointerMove);\n ownerDocument.removeEventListener('pointerup', handleStop);\n ownerDocument.removeEventListener('pointercancel', handleStop);\n target.removeEventListener('lostpointercapture', handleLostCapture);\n if (target.hasPointerCapture?.(pointerId)) {\n target.releasePointerCapture?.(pointerId);\n }\n resizeCleanupRef.current = () => {};\n };\n setPointerCaptureIfAvailable(target, pointerId);\n ownerDocument.addEventListener('pointermove', handlePointerMove);\n ownerDocument.addEventListener('pointerup', handleStop);\n ownerDocument.addEventListener('pointercancel', handleStop);\n target.addEventListener('lostpointercapture', handleLostCapture);\n };\n\n const currentResizeWidth =\n typeof controlledWidth === 'number'\n ? clampWidth(controlledWidth, minWidth, maxWidth)\n : measuredWidth;\n const announcedResizeWidth =\n currentResizeWidth ?? clampWidth(minWidth ?? 48, minWidth, maxWidth);\n\n const handleResizeKeyDown = (\n event: ReactKeyboardEvent<HTMLButtonElement>,\n ) => {\n if (!canResize || !columnId || !tableContext.onColumnSizeChange) return;\n const rtl = isRtl(event.currentTarget);\n const previousWidth =\n currentResizeWidth ??\n clampWidth(\n headRef.current?.offsetWidth || minWidth || 48,\n minWidth,\n maxWidth,\n );\n let nextWidth: number | undefined;\n if (event.key === 'ArrowLeft') {\n nextWidth = previousWidth + (rtl ? COLUMN_RESIZE_KEYBOARD_STEP : -COLUMN_RESIZE_KEYBOARD_STEP);\n }\n if (event.key === 'ArrowRight') {\n nextWidth = previousWidth + (rtl ? -COLUMN_RESIZE_KEYBOARD_STEP : COLUMN_RESIZE_KEYBOARD_STEP);\n }\n if (event.key === 'Home' && minWidth !== undefined) nextWidth = minWidth;\n if (event.key === 'End' && maxWidth !== undefined) nextWidth = maxWidth;\n if (nextWidth === undefined) return;\n event.preventDefault();\n event.stopPropagation();\n tableContext.onColumnSizeChange(\n columnId,\n clampWidth(nextWidth, minWidth, maxWidth),\n {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n },\n );\n };\n\n useEffect(() => {\n if (typeof controlledWidth === 'number') {\n setMeasuredWidth(undefined);\n return;\n }\n const measured = headRef.current?.getBoundingClientRect().width;\n if (measured && Number.isFinite(measured)) {\n const nextWidth = clampWidth(measured, minWidth, maxWidth);\n setMeasuredWidth((current) =>\n current === nextWidth ? current : nextWidth,\n );\n }\n }, [controlledWidth, minWidth, maxWidth, canResize]);\n\n useEffect(() => {\n if (!canResize) resizeCleanupRef.current();\n return () => resizeCleanupRef.current();\n }, [canResize, columnId, tableContext.onColumnSizeChange]);\n\n return (\n <th\n {...headProps}\n ref={setHeadRef}\n data-slot=\"head\"\n scope={headProps.scope ?? 'col'}\n aria-sort={ariaSort}\n className={cn(\n theme.slots.tableHead,\n isSplitScroll && theme.slots.tableSplitHead,\n resolvedAlign === 'center' && theme.slots.tableCellAlignCenter,\n resolvedAlign === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHead,\n ...(isSplitScroll ? theme.styles.tableSplitHead : undefined),\n width: isSplitScroll ? undefined : toCssSize(controlledWidth),\n minWidth: isSplitScroll ? undefined : toCssSize(minWidth),\n maxWidth: isSplitScroll ? undefined : toCssSize(maxWidth),\n ...(isSplitScroll\n ? {\n alignItems: getSplitHeadAlignItems(resolvedVerticalAlign),\n justifyContent: getSplitHeadJustifyContent(resolvedAlign),\n textAlign: resolvedAlign,\n }\n : verticalAlign\n ? { verticalAlign }\n : undefined),\n ...style,\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n {renderedContent}\n {canResize ? (\n <button\n type=\"button\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-valuenow={announcedResizeWidth}\n aria-valuemin={minWidth ?? 48}\n aria-valuemax={maxWidth}\n aria-valuetext={`${announcedResizeWidth}px`}\n title={resizeLabel}\n aria-label={\n resizeLabel ?? messages.resizeColumn({ columnId: columnId as string })\n }\n className={cn(theme.slots.tableHeadResizeHandle, classNames?.resizeHandle)}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={handleResizeKeyDown}\n onPointerDown={handleResizePointerDown}\n />\n ) : null}\n </th>\n );\n});\n\nexport const BaseTableCell = forwardRef<HTMLTableCellElement, BaseTableCellProps>(\n function BaseTableCell(\n {\n align = 'left',\n appearance,\n className,\n classNames,\n style,\n ...cellProps\n },\n ref,\n ) {\n assertEnum('cell align', align, ['left', 'center', 'right'] as const);\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <td\n {...cellProps}\n ref={ref}\n data-slot=\"cell\"\n className={cn(\n theme.slots.tableCell,\n isSplitScroll && theme.slots.tableSplitCell,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableCell,\n ...(isSplitScroll ? theme.styles.tableSplitCell : undefined),\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableCaption = forwardRef<\n HTMLTableCaptionElement,\n BaseTableCaptionProps\n>(function BaseTableCaption(\n { appearance, className, classNames, style, ...captionProps },\n ref,\n) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <caption\n {...captionProps}\n ref={ref}\n data-slot=\"caption\"\n className={cn(theme.slots.tableCaption, classNames?.root, className)}\n style={{\n ...theme.styles.tableCaption,\n ...style,\n }}\n />\n );\n});\n\nexport const BaseTableEmpty = forwardRef<HTMLTableRowElement, BaseTableEmptyProps>(\n function BaseTableEmpty(\n {\n colSpan,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...emptyProps\n },\n ref,\n ) {\n if (!Number.isSafeInteger(colSpan) || colSpan < 1) {\n throw new Error('BaseTable empty colSpan must be a positive safe integer.');\n }\n const { layout, theme } = useBaseTableContext(appearance);\n const isSplitScroll = layout === 'split-scroll';\n const hasStructuredContent =\n hasRenderableNode(icon) ||\n hasRenderableNode(title) ||\n hasRenderableNode(description) ||\n hasRenderableNode(actions);\n\n return (\n <tr\n {...emptyProps}\n ref={ref}\n data-slot=\"empty-row\"\n className={cn(\n theme.slots.tableEmptyRow,\n isSplitScroll && theme.slots.tableSplitRow,\n classNames?.row,\n className,\n )}\n style={{\n ...theme.styles.tableEmpty,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n >\n <td\n colSpan={colSpan}\n data-slot=\"empty-cell\"\n className={cn(\n theme.slots.tableEmptyCell,\n isSplitScroll && theme.slots.tableSplitCell,\n classNames?.cell,\n )}\n style={isSplitScroll ? { gridColumn: '1 / -1' } : undefined}\n >\n {hasStructuredContent ? (\n <div className={cn(theme.slots.tableEmptyContent, classNames?.content)}>\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.tableEmptyIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.tableEmptyTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.tableEmptyDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableEmptyActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n ) : (\n children\n )}\n </td>\n </tr>\n );\n});\n\nexport function BaseTableLoading({\n rows = 3,\n columns,\n columnWidths = [],\n animated = true,\n rowLabel,\n appearance,\n className,\n classNames,\n style,\n}: BaseTableLoadingProps) {\n if (!Number.isSafeInteger(rows) || rows < 0) {\n throw new Error(\n 'BaseTable loading rows must be a non-negative safe integer.',\n );\n }\n if (!Number.isSafeInteger(columns) || columns < 1) {\n throw new Error(\n 'BaseTable loading columns must be a positive safe integer.',\n );\n }\n if (!Array.isArray(columnWidths)) {\n throw new Error('BaseTable loading columnWidths must be an array.');\n }\n columnWidths.forEach((value, index) =>\n validateCssSizeValue(value, `loading columnWidths[${index}]`, {\n stringAllowed: true,\n }),\n );\n assertBoolean('loading animated', animated);\n assertOptionalLabel('loading rowLabel', rowLabel);\n const { layout, theme } = useBaseTableContext(appearance);\n const messages = useMonkeysLocaleMessages().table;\n const resolvedRowLabel = rowLabel ?? messages.loadingRow;\n const isSplitScroll = layout === 'split-scroll';\n\n return (\n <>\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <tr\n key={rowIndex}\n data-slot=\"loading-row\"\n aria-label={`${resolvedRowLabel} ${rowIndex + 1}`}\n aria-busy=\"true\"\n className={cn(\n theme.slots.tableLoadingRow,\n isSplitScroll && theme.slots.tableSplitRow,\n classNames?.row,\n className,\n )}\n style={{\n ...theme.styles.tableLoading,\n ...(isSplitScroll ? theme.styles.tableSplitRow : undefined),\n ...style,\n }}\n >\n {Array.from({ length: columns }).map((__, columnIndex) => (\n <td\n key={columnIndex}\n data-slot=\"loading-cell\"\n className={cn(\n theme.slots.tableLoadingCell,\n isSplitScroll && theme.slots.tableSplitCell,\n classNames?.cell,\n )}\n >\n <div\n aria-hidden=\"true\"\n data-slot=\"loading-skeleton\"\n className={cn(\n theme.slots.tableLoadingSkeleton,\n animated && 'animate-pulse motion-reduce:animate-none',\n classNames?.skeleton,\n )}\n style={{\n width: toCssSize(columnWidths[columnIndex]),\n }}\n />\n </td>\n ))}\n </tr>\n ))}\n </>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTableFooterBarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseTableFooterBar = forwardRef<\n HTMLDivElement,\n BaseTableFooterBarProps\n>(function BaseTableFooterBar(\n {\n appearance,\n leading,\n actions,\n attached = true,\n children,\n className,\n classNames,\n style,\n ...footerBarProps\n },\n ref,\n) {\n if (typeof attached !== 'boolean') {\n throw new Error('BaseTableFooterBar attached must be a boolean.');\n }\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return (\n <div\n {...componentAttributes}\n {...footerBarProps}\n ref={ref}\n data-monkeys-component=\"table-footer-bar\"\n data-slot=\"footer-bar\"\n data-base-table-footer-bar=\"\"\n data-attached={attached ? '' : undefined}\n className={cn(\n theme.slots.tableFooterBar,\n attached && theme.slots.tableFooterBarAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableFooterBar,\n ...style,\n }}\n >\n {hasRenderableNode(leading) ? (\n <div className={cn(theme.slots.tableFooterBarLeading, classNames?.leading)}>\n {leading}\n </div>\n ) : null}\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.tableFooterBarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableFooterBarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n});\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTabsItem, BaseTabsProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateTabsProps({\n items,\n value,\n defaultValue,\n orientation,\n activationMode,\n}: Pick<\n BaseTabsProps,\n 'activationMode' | 'defaultValue' | 'items' | 'orientation' | 'value'\n>) {\n if (!Array.isArray(items)) {\n throw new TypeError('BaseTabs items must be an array.');\n }\n if (value !== undefined && typeof value !== 'string') {\n throw new TypeError('BaseTabs value must be a string.');\n }\n if (defaultValue !== undefined && typeof defaultValue !== 'string') {\n throw new TypeError('BaseTabs defaultValue must be a string.');\n }\n if (orientation !== 'horizontal' && orientation !== 'vertical') {\n throw new TypeError(\n 'BaseTabs orientation must be \"horizontal\" or \"vertical\".',\n );\n }\n if (activationMode !== 'automatic' && activationMode !== 'manual') {\n throw new TypeError(\n 'BaseTabs activationMode must be \"automatic\" or \"manual\".',\n );\n }\n\n const values = new Set<string>();\n items.forEach((item, index) => {\n if (!item || typeof item !== 'object') {\n throw new TypeError(`BaseTabs item at index ${index} must be an object.`);\n }\n if (typeof item.value !== 'string') {\n throw new TypeError(\n `BaseTabs item value at index ${index} must be a string.`,\n );\n }\n if (values.has(item.value)) {\n throw new TypeError(\n 'BaseTabs items must use unique values; ' +\n `duplicate value ${JSON.stringify(item.value)} at index ${index}.`,\n );\n }\n if (item.disabled !== undefined && typeof item.disabled !== 'boolean') {\n throw new TypeError(\n `BaseTabs item disabled at index ${index} must be a boolean.`,\n );\n }\n values.add(item.value);\n });\n}\n\nfunction getResolvedValue(items: BaseTabsItem[], candidate?: string) {\n if (\n candidate !== undefined &&\n items.some((item) => item.value === candidate && !item.disabled)\n ) {\n return candidate;\n }\n return items.find((item) => !item.disabled)?.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nfunction getDomIdFragments(items: BaseTabsItem[]) {\n const usedFragments = new Set<string>();\n\n return items.map((item, index) => {\n const baseFragment = toDomId(item.value);\n let fragment = baseFragment;\n\n if (usedFragments.has(fragment)) {\n fragment = `${baseFragment}-${index}`;\n while (usedFragments.has(fragment)) {\n fragment = `${fragment}-${index}`;\n }\n }\n\n usedFragments.add(fragment);\n return fragment;\n });\n}\n\nfunction getHorizontalStep(\n event: KeyboardEvent<HTMLButtonElement>,\n key: 'ArrowLeft' | 'ArrowRight',\n) {\n const view = event.currentTarget.ownerDocument.defaultView;\n const direction = view?.getComputedStyle(event.currentTarget).direction;\n const rtl = direction === 'rtl';\n\n if (key === 'ArrowRight') return rtl ? -1 : 1;\n return rtl ? 1 : -1;\n}\n\nexport const BaseTabs = forwardRef<HTMLDivElement, BaseTabsProps>(\n function BaseTabs(\n {\n items = [],\n value,\n defaultValue,\n orientation = 'horizontal',\n activationMode = 'automatic',\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n 'aria-label': tablistAriaLabel,\n 'aria-labelledby': tablistAriaLabelledBy,\n ...tabsProps\n },\n ref,\n ) {\n validateTabsProps({\n items,\n value,\n defaultValue,\n orientation,\n activationMode,\n });\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const initialCandidate = value !== undefined ? value : defaultValue;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getResolvedValue(items, defaultValue),\n );\n const [focusedValue, setFocusedValue] = useState(() =>\n getResolvedValue(items, initialCandidate),\n );\n const triggerRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const isControlled = value !== undefined;\n const selectedValue = getResolvedValue(\n items,\n isControlled ? value : uncontrolledValue,\n );\n const selectedIndex = items.findIndex(\n (item) => item.value === selectedValue && !item.disabled,\n );\n const selectedItem = selectedIndex >= 0 ? items[selectedIndex] : undefined;\n const enabledIndices = items.reduce<number[]>((indices, item, index) => {\n if (!item.disabled) indices.push(index);\n return indices;\n }, []);\n const storedFocusIndex = items.findIndex(\n (item) => item.value === focusedValue && !item.disabled,\n );\n const rovingIndex =\n storedFocusIndex >= 0 ? storedFocusIndex : selectedIndex;\n const idFragments = getDomIdFragments(items);\n const groupState = selectedItem ? 'active' : 'disabled';\n const layerDirection =\n typeof tabsProps.dir === 'string'\n ? tabsProps.dir\n : componentAttributes.dir;\n\n const activateItem = (item: BaseTabsItem) => {\n if (item.disabled) return;\n if (!isControlled) {\n setUncontrolledValue(item.value);\n }\n onValueChange?.(item.value);\n };\n\n const moveFocus = (\n event: KeyboardEvent<HTMLButtonElement>,\n targetIndex: number,\n ) => {\n const targetItem = items[targetIndex];\n if (!targetItem || targetItem.disabled) return;\n\n event.preventDefault();\n setFocusedValue(targetItem.value);\n triggerRefs.current[targetIndex]?.focus();\n if (activationMode === 'automatic') {\n activateItem(targetItem);\n }\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLButtonElement>,\n item: BaseTabsItem,\n index: number,\n ) => {\n if (item.disabled) return;\n\n if (\n activationMode === 'manual' &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n activateItem(item);\n return;\n }\n\n if (enabledIndices.length === 0) return;\n if (event.key === 'Home') {\n moveFocus(event, enabledIndices[0]);\n return;\n }\n if (event.key === 'End') {\n moveFocus(event, enabledIndices[enabledIndices.length - 1]);\n return;\n }\n\n let step: number | undefined;\n if (\n orientation === 'horizontal' &&\n (event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n step = getHorizontalStep(event, event.key);\n } else if (orientation === 'vertical' && event.key === 'ArrowUp') {\n step = -1;\n } else if (orientation === 'vertical' && event.key === 'ArrowDown') {\n step = 1;\n }\n if (step === undefined) return;\n\n const enabledPosition = enabledIndices.indexOf(index);\n const nextPosition =\n (enabledPosition + step + enabledIndices.length) %\n enabledIndices.length;\n moveFocus(event, enabledIndices[nextPosition]);\n };\n\n return (\n <div\n {...componentAttributes}\n {...tabsProps}\n ref={ref}\n id={id}\n data-monkeys-component=\"tabs\"\n data-slot=\"root\"\n data-state={groupState}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(theme.slots.tabsRoot, classNames?.root, className)}\n style={style}\n >\n <div\n {...componentAttributes}\n dir={layerDirection}\n role=\"tablist\"\n aria-label={tablistAriaLabel}\n aria-labelledby={tablistAriaLabelledBy}\n aria-orientation={orientation}\n data-monkeys-component=\"tabs\"\n data-slot=\"list\"\n data-state={groupState}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(\n theme.slots.tabsList,\n orientation === 'vertical' && 'flex-col items-stretch',\n classNames?.list,\n )}\n style={theme.styles.tabsList}\n >\n {items.map((item, index) => {\n const itemId = idFragments[index];\n const selected = index === selectedIndex;\n const state = item.disabled\n ? 'disabled'\n : selected\n ? 'active'\n : 'inactive';\n\n return (\n <button\n {...componentAttributes}\n ref={(node) => {\n triggerRefs.current[index] = node;\n }}\n key={item.value}\n id={`${rootId}-${itemId}-tab`}\n type=\"button\"\n role=\"tab\"\n tabIndex={!item.disabled && index === rovingIndex ? 0 : -1}\n aria-selected={selected}\n aria-controls={`${rootId}-${itemId}-panel`}\n disabled={item.disabled}\n dir={layerDirection}\n data-monkeys-component=\"tabs\"\n data-slot=\"trigger\"\n data-state={state}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n data-disabled={item.disabled || undefined}\n className={cn(\n theme.slots.tabsTrigger,\n selected && theme.slots.tabsTriggerActive,\n item.disabled && theme.slots.tabsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.tabsTrigger}\n onFocus={() => setFocusedValue(item.value)}\n onKeyDown={(event) => handleKeyDown(event, item, index)}\n onClick={() => {\n setFocusedValue(item.value);\n activateItem(item);\n }}\n >\n <span className=\"min-w-0 truncate\">{item.label}</span>\n </button>\n );\n })}\n </div>\n\n {selectedItem ? (\n <div\n {...componentAttributes}\n id={`${rootId}-${idFragments[selectedIndex]}-panel`}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={`${rootId}-${idFragments[selectedIndex]}-tab`}\n dir={layerDirection}\n data-monkeys-component=\"tabs\"\n data-slot=\"panel\"\n data-state=\"active\"\n data-orientation={orientation}\n data-activation-mode={activationMode}\n className={cn(theme.slots.tabsPanel, classNames?.panel)}\n style={theme.styles.tabsPanel}\n >\n {hasRenderableNode(selectedItem.content) ? (\n selectedItem.content\n ) : hasRenderableNode(selectedItem.description) ? (\n <p className=\"m-0 text-muted-foreground\">\n {selectedItem.description}\n </p>\n ) : null}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseTextareaProps } from './types';\nimport { useBaseFieldControl } from './internal/baseFieldContext';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst controlSizeClassNames = {\n sm: 'min-h-20 px-2.5 py-1.5 text-xs leading-5',\n md: 'min-h-24 px-3 py-2 text-sm leading-6',\n lg: 'min-h-28 px-3.5 py-2.5 text-base leading-7',\n} as const;\n\nexport const BaseTextarea = forwardRef<HTMLTextAreaElement, BaseTextareaProps>(\n function BaseTextarea(\n {\n invalid = false,\n disabled = false,\n readOnly = false,\n controlSize,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n onBlur,\n onChange,\n ...textareaProps\n },\n ref,\n ) {\n for (const [name, value] of [\n ['invalid', invalid],\n ['disabled', disabled],\n ['readOnly', readOnly],\n ] as const) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTextarea ${name} must be a boolean.`);\n }\n }\n if (\n controlSize !== undefined &&\n controlSize !== 'sm' &&\n controlSize !== 'md' &&\n controlSize !== 'lg'\n ) {\n throw new TypeError(\n 'BaseTextarea controlSize must be \"sm\", \"md\", or \"lg\".',\n );\n }\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const fieldControl = useBaseFieldControl();\n const resolvedInvalid = invalid || fieldControl.invalid;\n\n return (\n <textarea\n {...componentAttributes}\n {...textareaProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (resolvedInvalid || undefined)}\n data-monkeys-component=\"textarea\"\n data-slot=\"control\"\n data-size={controlSize}\n data-invalid={resolvedInvalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n className={cn(\n theme.slots.controlWrapper,\n theme.slots.controlBase,\n theme.slots.controlTextarea,\n resolvedInvalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n controlSize && controlSizeClassNames[controlSize],\n classNames?.control,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(resolvedInvalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n onBlur={(event) => {\n onBlur?.(event);\n fieldControl.notifyBlur(event.currentTarget.value);\n }}\n onChange={(event) => {\n onChange?.(event);\n fieldControl.notifyChange(event.currentTarget.value);\n }}\n />\n );\n },\n);\n","import { createElement, forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport {\n getBaseTextSizeClassName,\n getBaseTypographyToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport type { BaseTextProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseText = forwardRef<HTMLElement, BaseTextProps>(function BaseText(\n {\n as = 'p',\n children,\n size = 'md',\n tone = 'default',\n appearance,\n className,\n classNames,\n style,\n ...textProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n return createElement(\n as,\n {\n ...componentAttributes,\n ...textProps,\n ref,\n 'data-monkeys-component': 'text',\n 'data-slot': 'root',\n 'data-size': size,\n 'data-tone': tone,\n className: cn(\n theme.slots.textRoot,\n getBaseTextSizeClassName(theme, size),\n getBaseTypographyToneClassName(theme, tone),\n classNames?.root,\n className,\n ),\n style: {\n ...theme.styles.text,\n ...style,\n },\n },\n children,\n );\n});\n","import * as Tooltip from '@radix-ui/react-tooltip';\nimport {\n Fragment,\n forwardRef,\n isValidElement,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTooltip ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'top' &&\n value !== 'bottom' &&\n value !== 'left' &&\n value !== 'right'\n ) {\n throw new TypeError(\n 'BaseTooltip placement must be \"top\", \"bottom\", \"left\", or \"right\".',\n );\n }\n}\n\nfunction normalizeTrigger(children: ReactNode, disabled: boolean) {\n if (isValidElement(children) && children.type !== Fragment) {\n return children;\n }\n\n return (\n <span tabIndex={!disabled && hasRenderableNode(children) ? 0 : undefined}>\n {children}\n </span>\n );\n}\n\nexport const BaseTooltip = forwardRef<HTMLSpanElement, BaseTooltipProps>(\n function BaseTooltip(\n {\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const canShow = !disabled && hasRenderableNode(content);\n const requestedOpen = isControlled ? open : uncontrolledOpen;\n const isOpen = canShow && requestedOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen && !canShow) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const trigger = normalizeTrigger(children, disabled);\n const tooltipContent = canShow ? (\n <Tooltip.Content\n {...componentAttributes}\n side={placement}\n sideOffset={8}\n collisionPadding={8}\n data-monkeys-component=\"tooltip\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipContent, classNames?.content)}\n style={theme.styles.tooltip}\n >\n {content}\n </Tooltip.Content>\n ) : null;\n\n return (\n <span\n {...componentAttributes}\n {...tooltipProps}\n ref={ref}\n data-monkeys-component=\"tooltip\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n >\n <Tooltip.Provider\n delayDuration={0}\n skipDelayDuration={0}\n disableHoverableContent\n >\n <Tooltip.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n delayDuration={0}\n disableHoverableContent\n >\n <span\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger-wrapper\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}\n >\n <Tooltip.Trigger\n asChild\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n >\n {trigger}\n </Tooltip.Trigger>\n </span>\n {portal && overlayPortal.shouldPortal ? (\n <Tooltip.Portal {...overlayPortal.radixPortalProps}>\n {tooltipContent}\n </Tooltip.Portal>\n ) : (\n tooltipContent\n )}\n </Tooltip.Root>\n </Tooltip.Provider>\n </span>\n );\n },\n);\n","import type { BaseToolbarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseToolbar({\n leading,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...toolbarProps\n}: BaseToolbarProps) {\n const theme = resolveBaseAppearance(appearance);\n const hasTitleBlock = hasRenderableNode(title) || hasRenderableNode(description);\n\n return (\n <div\n {...toolbarProps}\n className={cn(theme.slots.toolbarRoot, classNames?.root, className)}\n style={{\n ...theme.styles.toolbar,\n ...style,\n }}\n >\n <div className={cn(theme.slots.toolbarLeading, classNames?.leading)}>\n {hasRenderableNode(leading) ? leading : null}\n {hasTitleBlock ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.toolbarTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.toolbarDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.toolbarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { forwardRef } from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { resolveBaseAppearance } from './theme';\nimport type { BaseVisuallyHiddenProps } from './types';\nimport { cn } from './utils';\n\nexport const BaseVisuallyHidden = forwardRef<\n HTMLSpanElement,\n BaseVisuallyHiddenProps\n>(function BaseVisuallyHidden(\n {\n children,\n focusable = false,\n appearance,\n className,\n classNames,\n style,\n ...hiddenProps\n },\n ref,\n) {\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n\n if (typeof focusable !== 'boolean') {\n throw new TypeError('BaseVisuallyHidden focusable must be a boolean.');\n }\n\n return (\n <span\n {...componentAttributes}\n {...hiddenProps}\n ref={ref}\n data-monkeys-component=\"visually-hidden\"\n data-slot=\"root\"\n data-focusable={focusable || undefined}\n className={cn(\n theme.slots.visuallyHiddenRoot,\n focusable && theme.slots.visuallyHiddenFocusable,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.visuallyHidden,\n ...style,\n }}\n >\n {children}\n </span>\n );\n});\n"]}
|