@servicetitan/anvil2 1.27.2 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/AnvilProvider-C7Li86-d.js +16 -0
  3. package/dist/AnvilProvider-C7Li86-d.js.map +1 -0
  4. package/dist/AnvilProvider.js +1 -1
  5. package/dist/{Combobox-DnTI2I3L.js → Combobox-JAm3x-tw.js} +1986 -116
  6. package/dist/Combobox-JAm3x-tw.js.map +1 -0
  7. package/dist/Combobox.css +343 -1
  8. package/dist/Combobox.js +1 -1
  9. package/dist/{DateField-DocC46Mw.js → DateField-5mNXaJ7q.js} +548 -11
  10. package/dist/DateField-5mNXaJ7q.js.map +1 -0
  11. package/dist/DateField.js +1 -1
  12. package/dist/{Dialog-DQ9QXB5D.js → Dialog-B4M0DXxG.js} +2 -2
  13. package/dist/{Dialog-DQ9QXB5D.js.map → Dialog-B4M0DXxG.js.map} +1 -1
  14. package/dist/{Dialog-Kh2tcVWz-DqcNnouf.js → Dialog-CUK5YvVY-Dv5edacC.js} +5 -5
  15. package/dist/Dialog-CUK5YvVY-Dv5edacC.js.map +1 -0
  16. package/dist/Dialog.js +1 -1
  17. package/dist/Drawer-BqqZB3Sn.js +66 -0
  18. package/dist/Drawer-BqqZB3Sn.js.map +1 -0
  19. package/dist/{Drawer-C6fpnRDX.js → Drawer-CrXiK2w0-BMzKuNFt.js} +15 -75
  20. package/dist/Drawer-CrXiK2w0-BMzKuNFt.js.map +1 -0
  21. package/dist/Drawer.js +1 -1
  22. package/dist/{AnvilProvider-DNJk1Ait.js → HammerProvider-DuxhW0gv-C2voN5ro.js} +26 -15
  23. package/dist/HammerProvider-DuxhW0gv-C2voN5ro.js.map +1 -0
  24. package/dist/{InputMask-Ceh574pv.js → InputMask-BmXj5mob.js} +2 -2
  25. package/dist/{InputMask-Ceh574pv.js.map → InputMask-BmXj5mob.js.map} +1 -1
  26. package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js → InputMask-CQzrMoEy-CLNvXsm7.js} +3 -3
  27. package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js.map → InputMask-CQzrMoEy-CLNvXsm7.js.map} +1 -1
  28. package/dist/InputMask.js +1 -1
  29. package/dist/{Label-DWF2pXeG-1BhzVgZG.js → Label-CbYy5kwu-BCTOKxOk.js} +3 -3
  30. package/dist/{Label-DWF2pXeG-1BhzVgZG.js.map → Label-CbYy5kwu-BCTOKxOk.js.map} +1 -1
  31. package/dist/Menu-IEBrkdoN.js +1090 -0
  32. package/dist/Menu-IEBrkdoN.js.map +1 -0
  33. package/dist/Menu.css +116 -1
  34. package/dist/Menu.js +1 -1
  35. package/dist/{Page-BGkLs3bR.js → Page-qlpHVAMH.js} +70 -54
  36. package/dist/Page-qlpHVAMH.js.map +1 -0
  37. package/dist/Page.css +103 -70
  38. package/dist/Page.js +1 -1
  39. package/dist/{Popover-DzEc_Muv.js → Popover-B7K3o_l4.js} +2 -2
  40. package/dist/{Popover-DzEc_Muv.js.map → Popover-B7K3o_l4.js.map} +1 -1
  41. package/dist/{Popover-QKZtjN4_-CETYlWwq.js → Popover-C1B3UJXp-B5obSIvA.js} +351 -12
  42. package/dist/Popover-C1B3UJXp-B5obSIvA.js.map +1 -0
  43. package/dist/{Popover-QKZtjN4_.css → Popover-C1B3UJXp.css} +53 -1
  44. package/dist/Popover.js +1 -1
  45. package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js → ProgressBar-BLg29adn-CMz5eu5f.js} +3 -3
  46. package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js.map → ProgressBar-BLg29adn-CMz5eu5f.js.map} +1 -1
  47. package/dist/{ProgressBar-IItIByYc.js → ProgressBar-_DyYSgfx.js} +2 -2
  48. package/dist/{ProgressBar-IItIByYc.js.map → ProgressBar-_DyYSgfx.js.map} +1 -1
  49. package/dist/ProgressBar.js +1 -1
  50. package/dist/{SearchField-CWb0kaV8.js → SearchField-C-4icPUa.js} +2 -2
  51. package/dist/{SearchField-CWb0kaV8.js.map → SearchField-C-4icPUa.js.map} +1 -1
  52. package/dist/SearchField.js +1 -1
  53. package/dist/{TextField-D53XNiCi-C6_A5VRq.js → TextField-Lwe9XAou-tH8gcQTq.js} +2 -2
  54. package/dist/{TextField-D53XNiCi-C6_A5VRq.js.map → TextField-Lwe9XAou-tH8gcQTq.js.map} +1 -1
  55. package/dist/{TextField-s92xHzb3.js → TextField-tF-ERwA8.js} +2 -2
  56. package/dist/{TextField-s92xHzb3.js.map → TextField-tF-ERwA8.js.map} +1 -1
  57. package/dist/TextField.js +1 -1
  58. package/dist/{Textarea-B61wNIFr.js → Textarea-BrzxOEx3.js} +2 -2
  59. package/dist/Textarea-BrzxOEx3.js.map +1 -0
  60. package/dist/Textarea.js +1 -1
  61. package/dist/Toast.js +1 -1
  62. package/dist/{Toolbar-Cge6Nznj.js → Toolbar-D9fMSiGU.js} +2 -2
  63. package/dist/{Toolbar-Cge6Nznj.js.map → Toolbar-D9fMSiGU.js.map} +1 -1
  64. package/dist/Toolbar.js +1 -1
  65. package/dist/{Tooltip-DgM8NSPm-CRIQbuTm.js → Tooltip-36nMbVT3-DMkvo60s.js} +222 -22
  66. package/dist/Tooltip-36nMbVT3-DMkvo60s.js.map +1 -0
  67. package/dist/{Tooltip-DgM8NSPm.css → Tooltip-36nMbVT3.css} +43 -1
  68. package/dist/{Tooltip-89FIvMG0.js → Tooltip-BEo0IRDf.js} +2 -2
  69. package/dist/{Tooltip-89FIvMG0.js.map → Tooltip-BEo0IRDf.js.map} +1 -1
  70. package/dist/Tooltip.js +1 -1
  71. package/dist/components/Page/Page.d.ts +4 -1
  72. package/dist/floating-ui.react-4AwURJA3.js +5989 -0
  73. package/dist/floating-ui.react-4AwURJA3.js.map +1 -0
  74. package/dist/{useKeyboardFocusables-CwVMAe5C-CIHqixNA.js → index.esm-CunAFnrh.js} +11 -59
  75. package/dist/index.esm-CunAFnrh.js.map +1 -0
  76. package/dist/index.js +16 -16
  77. package/dist/supportsPopover-8aJR37cf-8aJR37cf.js +6 -0
  78. package/dist/supportsPopover-8aJR37cf-8aJR37cf.js.map +1 -0
  79. package/dist/{toast-CHld8RKY.js → toast-DkO9HWpH.js} +2 -2
  80. package/dist/{toast-CHld8RKY.js.map → toast-DkO9HWpH.js.map} +1 -1
  81. package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js +61 -0
  82. package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js.map +1 -0
  83. package/package.json +2 -2
  84. package/dist/AnvilProvider-DNJk1Ait.js.map +0 -1
  85. package/dist/Combobox-DnTI2I3L.js.map +0 -1
  86. package/dist/DateField-DocC46Mw.js.map +0 -1
  87. package/dist/Dialog-Kh2tcVWz-DqcNnouf.js.map +0 -1
  88. package/dist/Drawer-C6fpnRDX.js.map +0 -1
  89. package/dist/Menu-D8SDm9s9.js +0 -706
  90. package/dist/Menu-D8SDm9s9.js.map +0 -1
  91. package/dist/Page-BGkLs3bR.js.map +0 -1
  92. package/dist/Popover-QKZtjN4_-CETYlWwq.js.map +0 -1
  93. package/dist/Textarea-B61wNIFr.js.map +0 -1
  94. package/dist/Tooltip-DgM8NSPm-CRIQbuTm.js.map +0 -1
  95. package/dist/floating-ui.react-P5949bpO.js +0 -28
  96. package/dist/floating-ui.react-P5949bpO.js.map +0 -1
  97. package/dist/floating-ui.react-dom-D912oS4K.js +0 -1841
  98. package/dist/floating-ui.react-dom-D912oS4K.js.map +0 -1
  99. package/dist/useKeyboardFocusables-CwVMAe5C-CIHqixNA.js.map +0 -1
  100. /package/dist/{Dialog-Kh2tcVWz.css → Dialog-CUK5YvVY.css} +0 -0
  101. /package/dist/{Drawer.css → Drawer-CrXiK2w0.css} +0 -0
  102. /package/dist/{Label-DWF2pXeG.css → Label-CbYy5kwu.css} +0 -0
  103. /package/dist/{ProgressBar-cKtBso7j.css → ProgressBar-BLg29adn.css} +0 -0
@@ -0,0 +1,61 @@
1
+ import { useState, useRef, useEffect } from 'react';
2
+ import { t as tabbable } from './index.esm-CunAFnrh.js';
3
+
4
+ const useKeyboardFocusables = (element, options = {
5
+ observeChange: true,
6
+ attributes: true,
7
+ characterData: true,
8
+ childList: true,
9
+ subtree: true
10
+ }) => {
11
+ const [focusables, setFocusables] = useState(null);
12
+ const observerRef = useRef();
13
+ useEffect(() => {
14
+ const target = element instanceof HTMLElement ? element : element?.current;
15
+ if (!target) return;
16
+ if (observerRef.current) return;
17
+ if (!options.observeChange && !focusables) {
18
+ setFocusables(tabbable(target));
19
+ return;
20
+ }
21
+ let timeoutId = null;
22
+ const debounceDelay = 100;
23
+ const mutationCallback = () => {
24
+ const targetArr = tabbable(target);
25
+ if (targetArr.length === 0) return;
26
+ if (timeoutId) {
27
+ clearTimeout(timeoutId);
28
+ }
29
+ timeoutId = setTimeout(() => {
30
+ setFocusables(targetArr);
31
+ }, debounceDelay);
32
+ };
33
+ const observer = new MutationObserver(mutationCallback);
34
+ observerRef.current = observer;
35
+ observer.observe(target, {
36
+ childList: true,
37
+ // Observe changes to child elements
38
+ subtree: true,
39
+ // Observe changes to descendants of the target
40
+ attributes: true,
41
+ // Observe changes to attributes
42
+ characterData: true
43
+ // Observe changes to text content
44
+ });
45
+ }, [element, options]);
46
+ useEffect(() => {
47
+ return () => {
48
+ if (!observerRef.current) return;
49
+ observerRef.current.disconnect();
50
+ };
51
+ }, []);
52
+ const updateFocusables = () => {
53
+ const target = element instanceof HTMLElement ? element : element?.current;
54
+ if (!target) return;
55
+ setFocusables(tabbable(target));
56
+ };
57
+ return { focusables, updateFocusables };
58
+ };
59
+
60
+ export { useKeyboardFocusables as u };
61
+ //# sourceMappingURL=useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js","sources":["../../hammer-react/dist/useKeyboardFocusables-CwVMAe5C.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport { tabbable } from 'tabbable';\n\nconst useKeyboardFocusables = (element, options = {\n observeChange: true,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true\n}) => {\n const [focusables, setFocusables] = useState(null);\n const observerRef = useRef();\n useEffect(() => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n if (observerRef.current) return;\n if (!options.observeChange && !focusables) {\n setFocusables(tabbable(target));\n return;\n }\n let timeoutId = null;\n const debounceDelay = 100;\n const mutationCallback = () => {\n const targetArr = tabbable(target);\n if (targetArr.length === 0) return;\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n setFocusables(targetArr);\n }, debounceDelay);\n };\n const observer = new MutationObserver(mutationCallback);\n observerRef.current = observer;\n observer.observe(target, {\n childList: true,\n // Observe changes to child elements\n subtree: true,\n // Observe changes to descendants of the target\n attributes: true,\n // Observe changes to attributes\n characterData: true\n // Observe changes to text content\n });\n }, [element, options]);\n useEffect(() => {\n return () => {\n if (!observerRef.current) return;\n observerRef.current.disconnect();\n };\n }, []);\n const updateFocusables = () => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n setFocusables(tabbable(target));\n };\n return { focusables, updateFocusables };\n};\n\nexport { useKeyboardFocusables as u };\n//# sourceMappingURL=useKeyboardFocusables-CwVMAe5C.js.map\n"],"names":[],"mappings":";;;AAGK,MAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG;AAClD,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,OAAO,EAAE;AACX,CAAC,KAAK;AACN,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AACpD,EAAE,MAAM,WAAW,GAAG,MAAM,EAAE;AAC9B,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,MAAM,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO;AAC9E,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE;AAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE;AAC/C,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM;AACN;AACA,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,MAAM,aAAa,GAAG,GAAG;AAC7B,IAAI,MAAM,gBAAgB,GAAG,MAAM;AACnC,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;AACxC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,YAAY,CAAC,SAAS,CAAC;AAC/B;AACA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;AACnC,QAAQ,aAAa,CAAC,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;AAC3D,IAAI,WAAW,CAAC,OAAO,GAAG,QAAQ;AAClC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AAC7B,MAAM,SAAS,EAAE,IAAI;AACrB;AACA,MAAM,OAAO,EAAE,IAAI;AACnB;AACA,MAAM,UAAU,EAAE,IAAI;AACtB;AACA,MAAM,aAAa,EAAE;AACrB;AACA,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxB,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,OAAO,MAAM;AACjB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAChC,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE;AACtC,KAAK;AACL,GAAG,EAAE,EAAE,CAAC;AACR,EAAE,MAAM,gBAAgB,GAAG,MAAM;AACjC,IAAI,MAAM,MAAM,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO;AAC9E,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE;AACzC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2",
3
- "version": "1.27.2",
3
+ "version": "1.28.0",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "@react-hook/resize-observer": "^2.0.1",
26
26
  "classnames": "^2.5.1",
27
27
  "@servicetitan/hammer-icon": "1.1.0",
28
- "@servicetitan/hammer-react": "1.29.2",
28
+ "@servicetitan/hammer-react": "1.29.3",
29
29
  "@servicetitan/hammer-token": "2.2.0"
30
30
  },
31
31
  "peerDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnvilProvider-DNJk1Ait.js","sources":["../../hammer-react/dist/HammerProvider-DJagMaR6.js","../src/providers/AnvilProvider/AnvilProvider.tsx"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { t as themeStyles, T as ThemeProvider } from './ThemeProvider-CioBp3gk.js';\nimport { createContext, useMemo } from 'react';\nimport cx from 'classnames';\nimport { u as useBreakpoint } from './useBreakpoint-DucsW-ug.js';\nimport { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C6qizVc6.js';\n\nconst HammerProviderContext = createContext(\n {}\n);\nconst HammerProvider = (props) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { themeData, localizationData, children, className, style, ...rest } = componentProps;\n const {\n locale = \"en\",\n dir = \"ltr\",\n translations = {}\n } = localizationData ?? {};\n const classNameCombined = cx(className, [themeStyles[\"theme-core\"]], {\n [themeStyles[\"mode-dark\"]]: themeData?.mode === \"dark\",\n [themeStyles[\"mode-light\"]]: themeData?.mode === \"light\"\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const breakpoint = useBreakpoint();\n const { translations: t } = useTranslations(translations);\n const localizationContextValue = useMemo(() => ({ locale, t }), [locale, t]);\n return /* @__PURE__ */ jsx(HammerProviderContext.Provider, { value: { breakpoint }, children: /* @__PURE__ */ jsx(\n ThemeProvider,\n {\n className: classNameCombined,\n style: styleCombined,\n theme: themeData?.theme,\n mode: themeData?.mode,\n dir,\n ...rest,\n children: /* @__PURE__ */ jsx(LocalizationContext.Provider, { value: localizationContextValue, children })\n }\n ) });\n};\n\nexport { HammerProvider as H, HammerProviderContext as a };\n//# sourceMappingURL=HammerProvider-DJagMaR6.js.map\n","import {\n HammerProvider,\n HammerProviderContext,\n type HammerProviderProps,\n type HammerProviderContextProps,\n} from \"@servicetitan/hammer-react\";\nimport TrackingProvider from \"../TrackingProvider\";\n\nexport interface AnvilProviderProps extends HammerProviderProps {\n trackingIdData?: {\n scope?: string;\n optOut?: boolean;\n };\n}\n\nexport { HammerProviderContextProps as AnvilProviderContextProps };\nexport const AnvilProviderContext = HammerProviderContext;\n\nexport const AnvilProvider = ({\n children,\n trackingIdData,\n ...props\n}: AnvilProviderProps) => {\n const { scope = \"ST\", optOut } = trackingIdData ?? {};\n\n return (\n <HammerProvider {...props}>\n <TrackingProvider scope={scope} optOut={optOut}>\n {children}\n </TrackingProvider>\n </HammerProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAQA,MAAM,qBAAqB,GAAG,aAAa;AAC3C,EAAE;AACF,CAAC;AACD,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK;AAClC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AAC7F,EAAE,MAAM;AACR,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,GAAG,GAAG,KAAK;AACf,IAAI,YAAY,GAAG;AACnB,GAAG,GAAG,gBAAgB,IAAI,EAAE;AAC5B,EAAE,MAAM,iBAAiB,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE;AACvE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,IAAI,KAAK,MAAM;AAC1D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,IAAI,KAAK;AACrD,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG;AACxB,IAAI,GAAG,KAAK;AACZ,IAAI,GAAG;AACP,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,aAAa,EAAE;AACpC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;AAC3D,EAAE,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9E,EAAE,uBAAuB,GAAG,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,kBAAkB,GAAG;AACnH,IAAI,aAAa;AACjB,IAAI;AACJ,MAAM,SAAS,EAAE,iBAAiB;AAClC,MAAM,KAAK,EAAE,aAAa;AAC1B,MAAM,KAAK,EAAE,SAAS,EAAE,KAAK;AAC7B,MAAM,IAAI,EAAE,SAAS,EAAE,IAAI;AAC3B,MAAM,GAAG;AACT,MAAM,GAAG,IAAI;AACb,MAAM,QAAQ,kBAAkB,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE;AAC/G;AACA,GAAG,EAAE,CAAC;AACN,CAAC;;AC1BM,MAAM,oBAAuB,GAAA;AAE7B,MAAM,gBAAgB,CAAC;AAAA,EAC5B,QAAA;AAAA,EACA,cAAA;AAAA,EACA,GAAG;AACL,CAA0B,KAAA;AACxB,EAAA,MAAM,EAAE,KAAQ,GAAA,IAAA,EAAM,MAAO,EAAA,GAAI,kBAAkB,EAAC;AAEpD,EACE,uBAAA,GAAA,CAAC,kBAAgB,GAAG,KAAA,EAClB,8BAAC,gBAAiB,EAAA,EAAA,KAAA,EAAc,MAC7B,EAAA,QAAA,EACH,CACF,EAAA,CAAA;AAEJ;;;;"}