@navikt/ds-react 6.10.0 → 6.11.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 (143) hide show
  1. package/cjs/collapsible/parts/Collapsible.Content.js +1 -1
  2. package/cjs/collapsible/parts/Collapsible.Trigger.js +1 -1
  3. package/cjs/date/datepicker/types.d.ts +1 -1
  4. package/cjs/date/monthpicker/types.d.ts +1 -1
  5. package/cjs/form/file-upload/parts/Trigger.js +1 -1
  6. package/cjs/form/file-upload/parts/item/Item.d.ts +5 -0
  7. package/cjs/form/file-upload/parts/item/Item.js +2 -2
  8. package/cjs/form/file-upload/parts/item/Item.js.map +1 -1
  9. package/cjs/layout/base/BasePrimitive.d.ts +135 -0
  10. package/cjs/layout/base/BasePrimitive.js +40 -0
  11. package/cjs/layout/base/BasePrimitive.js.map +1 -0
  12. package/cjs/layout/bleed/Bleed.js +1 -1
  13. package/cjs/layout/box/Box.d.ts +10 -4
  14. package/cjs/layout/box/Box.js.map +1 -1
  15. package/cjs/layout/page/Page.d.ts +4 -3
  16. package/cjs/layout/page/Page.js.map +1 -1
  17. package/cjs/layout/responsive/Responsive.js +1 -1
  18. package/cjs/layout/utilities/types.d.ts +2 -1
  19. package/cjs/list/ListItem.js +2 -2
  20. package/cjs/list/ListItem.js.map +1 -1
  21. package/cjs/modal/dialog-polyfill.js +0 -3
  22. package/cjs/modal/dialog-polyfill.js.map +1 -1
  23. package/cjs/overlays/dismissablelayer/DismissableLayer.js +1 -1
  24. package/cjs/overlays/dismissablelayer/util/useFocusOutside.d.ts +2 -2
  25. package/cjs/overlays/dismissablelayer/util/useFocusOutside.js +6 -2
  26. package/cjs/overlays/dismissablelayer/util/useFocusOutside.js.map +1 -1
  27. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.d.ts +1 -1
  28. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js +3 -1
  29. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
  30. package/cjs/overlays/floating/Floating.js +1 -1
  31. package/cjs/pagination/Pagination.d.ts +12 -5
  32. package/cjs/pagination/Pagination.js +5 -2
  33. package/cjs/pagination/Pagination.js.map +1 -1
  34. package/cjs/pagination/PaginationItem.js +4 -2
  35. package/cjs/pagination/PaginationItem.js.map +1 -1
  36. package/cjs/portal/Portal.js +1 -1
  37. package/cjs/slot/Slot.d.ts +6 -0
  38. package/cjs/{util → slot}/Slot.js +6 -37
  39. package/cjs/slot/Slot.js.map +1 -0
  40. package/cjs/slot/merge-props.d.ts +4 -0
  41. package/cjs/slot/merge-props.js +37 -0
  42. package/cjs/slot/merge-props.js.map +1 -0
  43. package/cjs/toggle-group/ToggleGroup.d.ts +3 -3
  44. package/cjs/toggle-group/ToggleGroup.js +3 -3
  45. package/cjs/toggle-group/parts/ToggleItem.d.ts +32 -5
  46. package/cjs/toggle-group/parts/ToggleItem.js +4 -2
  47. package/cjs/toggle-group/parts/ToggleItem.js.map +1 -1
  48. package/cjs/util/hooks/descendants/useDescendant.js +1 -1
  49. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  50. package/cjs/util/hooks/descendants/utils.js +1 -1
  51. package/cjs/util/hooks/descendants/utils.js.map +1 -1
  52. package/cjs/util/i18n/get.js +3 -2
  53. package/cjs/util/i18n/get.js.map +1 -1
  54. package/esm/collapsible/parts/Collapsible.Content.js +1 -1
  55. package/esm/collapsible/parts/Collapsible.Trigger.js +1 -1
  56. package/esm/date/datepicker/types.d.ts +1 -1
  57. package/esm/date/monthpicker/types.d.ts +1 -1
  58. package/esm/form/file-upload/parts/Trigger.js +1 -1
  59. package/esm/form/file-upload/parts/item/Item.d.ts +5 -0
  60. package/esm/form/file-upload/parts/item/Item.js +2 -2
  61. package/esm/form/file-upload/parts/item/Item.js.map +1 -1
  62. package/esm/layout/base/BasePrimitive.d.ts +135 -0
  63. package/esm/layout/base/BasePrimitive.js +33 -0
  64. package/esm/layout/base/BasePrimitive.js.map +1 -0
  65. package/esm/layout/bleed/Bleed.js +1 -1
  66. package/esm/layout/box/Box.d.ts +10 -4
  67. package/esm/layout/box/Box.js.map +1 -1
  68. package/esm/layout/page/Page.d.ts +4 -3
  69. package/esm/layout/page/Page.js.map +1 -1
  70. package/esm/layout/responsive/Responsive.js +1 -1
  71. package/esm/layout/utilities/types.d.ts +2 -1
  72. package/esm/list/ListItem.js +3 -3
  73. package/esm/list/ListItem.js.map +1 -1
  74. package/esm/modal/dialog-polyfill.js +0 -3
  75. package/esm/modal/dialog-polyfill.js.map +1 -1
  76. package/esm/overlays/dismissablelayer/DismissableLayer.js +1 -1
  77. package/esm/overlays/dismissablelayer/util/useFocusOutside.d.ts +2 -2
  78. package/esm/overlays/dismissablelayer/util/useFocusOutside.js +6 -2
  79. package/esm/overlays/dismissablelayer/util/useFocusOutside.js.map +1 -1
  80. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.d.ts +1 -1
  81. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js +3 -1
  82. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
  83. package/esm/overlays/floating/Floating.js +1 -1
  84. package/esm/pagination/Pagination.d.ts +12 -5
  85. package/esm/pagination/Pagination.js +6 -3
  86. package/esm/pagination/Pagination.js.map +1 -1
  87. package/esm/pagination/PaginationItem.js +4 -2
  88. package/esm/pagination/PaginationItem.js.map +1 -1
  89. package/esm/portal/Portal.js +1 -1
  90. package/esm/slot/Slot.d.ts +6 -0
  91. package/esm/slot/Slot.js +32 -0
  92. package/esm/slot/Slot.js.map +1 -0
  93. package/esm/slot/merge-props.d.ts +4 -0
  94. package/esm/slot/merge-props.js +34 -0
  95. package/esm/slot/merge-props.js.map +1 -0
  96. package/esm/toggle-group/ToggleGroup.d.ts +3 -3
  97. package/esm/toggle-group/ToggleGroup.js +3 -3
  98. package/esm/toggle-group/parts/ToggleItem.d.ts +32 -5
  99. package/esm/toggle-group/parts/ToggleItem.js +4 -2
  100. package/esm/toggle-group/parts/ToggleItem.js.map +1 -1
  101. package/esm/util/hooks/descendants/useDescendant.js +1 -1
  102. package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
  103. package/esm/util/hooks/descendants/utils.js +1 -1
  104. package/esm/util/hooks/descendants/utils.js.map +1 -1
  105. package/esm/util/i18n/get.js +3 -2
  106. package/esm/util/i18n/get.js.map +1 -1
  107. package/package.json +3 -3
  108. package/src/collapsible/parts/Collapsible.Content.tsx +1 -1
  109. package/src/collapsible/parts/Collapsible.Trigger.tsx +1 -1
  110. package/src/date/datepicker/types.ts +1 -1
  111. package/src/date/monthpicker/types.ts +1 -1
  112. package/src/form/file-upload/parts/Trigger.tsx +1 -1
  113. package/src/form/file-upload/parts/item/Item.tsx +7 -1
  114. package/src/layout/base/BasePrimitive.tsx +232 -0
  115. package/src/layout/bleed/Bleed.tsx +1 -1
  116. package/src/layout/box/Box.tsx +11 -4
  117. package/src/layout/page/Page.tsx +4 -3
  118. package/src/layout/responsive/Responsive.tsx +1 -1
  119. package/src/layout/utilities/types.ts +2 -3
  120. package/src/list/ListItem.tsx +5 -5
  121. package/src/modal/dialog-polyfill.ts +0 -3
  122. package/src/overlays/dismissablelayer/DismissableLayer.tsx +1 -1
  123. package/src/overlays/dismissablelayer/util/useFocusOutside.ts +6 -2
  124. package/src/overlays/dismissablelayer/util/usePointerDownOutside.ts +3 -1
  125. package/src/overlays/floating/Floating.tsx +1 -1
  126. package/src/pagination/Pagination.tsx +31 -6
  127. package/src/pagination/PaginationItem.tsx +4 -0
  128. package/src/portal/Portal.tsx +1 -1
  129. package/src/slot/Slot.tsx +33 -0
  130. package/src/{util/Slot.tsx → slot/merge-props.ts} +2 -34
  131. package/src/slot/tests/merge-props.test.ts +49 -0
  132. package/src/toggle-group/ToggleGroup.test.tsx +3 -9
  133. package/src/toggle-group/ToggleGroup.tsx +3 -3
  134. package/src/toggle-group/parts/ToggleItem.tsx +54 -8
  135. package/src/util/hooks/descendants/useDescendant.tsx +1 -1
  136. package/src/util/hooks/descendants/utils.ts +1 -1
  137. package/src/util/i18n/get.ts +4 -2
  138. package/cjs/util/Slot.d.ts +0 -6
  139. package/cjs/util/Slot.js.map +0 -1
  140. package/esm/util/Slot.d.ts +0 -6
  141. package/esm/util/Slot.js +0 -63
  142. package/esm/util/Slot.js.map +0 -1
  143. /package/src/{util/__tests__ → slot/tests}/Slot.test.tsx +0 -0
@@ -6,15 +6,9 @@ import { ToggleGroup } from "./ToggleGroup";
6
6
 
7
7
  const TestToggleGroup = ({ value, onChange, defaultValue }: any) => (
8
8
  <ToggleGroup value={value} onChange={onChange} defaultValue={defaultValue}>
9
- <ToggleGroup.Item value="toggle1" data-testid="toggle1">
10
- Toggle 1
11
- </ToggleGroup.Item>
12
- <ToggleGroup.Item value="toggle2" data-testid="toggle2">
13
- Toggle 2
14
- </ToggleGroup.Item>
15
- <ToggleGroup.Item value="toggle3" data-testid="toggle3">
16
- Toggle 3
17
- </ToggleGroup.Item>
9
+ <ToggleGroup.Item value="toggle1" data-testid="toggle1" label="Toggle 1" />
10
+ <ToggleGroup.Item value="toggle2" data-testid="toggle2" label="Toggle 2" />
11
+ <ToggleGroup.Item value="toggle3" data-testid="toggle3" label="Toggle 3" />
18
12
  </ToggleGroup>
19
13
  );
20
14
 
@@ -30,9 +30,9 @@ interface ToggleGroupComponent
30
30
  * @example
31
31
  * ```jsx
32
32
  * <ToggleGroup defaultValue="lest" onChange={console.log} size="small">
33
- * <ToggleGroup.Item value="ulest">Ulest</ToggleGroup.Item>
34
- * <ToggleGroup.Item value="lest">Leste</ToggleGroup.Item>
35
- * <ToggleGroup.Item value="sendt">Sendt</ToggleGroup.Item>
33
+ * <ToggleGroup.Item value="ulest" label="Ulest" />
34
+ * <ToggleGroup.Item value="lest" label="Leste" />
35
+ * <ToggleGroup.Item value="sendt" label="Sendt" />
36
36
  * </ToggleGroup>
37
37
  * ```
38
38
  */
@@ -4,21 +4,62 @@ import { BodyShort } from "../../typography/BodyShort";
4
4
  import { useToggleGroupContext } from "../ToggleGroup.context";
5
5
  import { useToggleItem } from "./useToggleItem";
6
6
 
7
- export interface ToggleGroupItemProps
8
- extends React.HTMLAttributes<HTMLButtonElement> {
7
+ type BaseProps = Omit<React.HTMLAttributes<HTMLButtonElement>, "children"> & {
9
8
  /**
10
- * Content.
9
+ * Value for state-handling.
10
+ */
11
+ value: string;
12
+ };
13
+
14
+ type ChildrenProps = {
15
+ /**
16
+ * @deprecated Use `label` and/or `icon` as replacement.
11
17
  */
12
18
  children: React.ReactNode;
19
+ label?: never;
20
+ icon?: never;
21
+ };
22
+
23
+ type LabelProps = {
24
+ children?: never;
13
25
  /**
14
- * Value for state-handling.
26
+ * Item label.
15
27
  */
16
- value: string;
17
- }
28
+ label: React.ReactNode;
29
+ /**
30
+ * Item Icon.
31
+ */
32
+ icon?: React.ReactNode;
33
+ };
34
+
35
+ type IconProps = {
36
+ children?: never;
37
+ /**
38
+ * Item label.
39
+ */
40
+ label?: React.ReactNode;
41
+ /**
42
+ * Item Icon.
43
+ */
44
+ icon: React.ReactNode;
45
+ };
46
+
47
+ export type ToggleGroupItemProps = BaseProps &
48
+ (ChildrenProps | LabelProps | IconProps);
18
49
 
19
50
  const ToggleItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(
20
51
  (
21
- { className, children, value, onClick, onFocus, onKeyDown, ...rest },
52
+ {
53
+ className,
54
+ children,
55
+ icon,
56
+ label,
57
+ value,
58
+ onClick,
59
+ onFocus,
60
+ onKeyDown,
61
+ ...rest
62
+ },
22
63
  forwardedRef,
23
64
  ) => {
24
65
  const itemCtx = useToggleItem(
@@ -45,7 +86,12 @@ const ToggleItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(
45
86
  className="navds-toggle-group__button-inner"
46
87
  size={ctx?.size}
47
88
  >
48
- {children}
89
+ {children ?? (
90
+ <>
91
+ {icon}
92
+ {label}
93
+ </>
94
+ )}
49
95
  </BodyShort>
50
96
  </button>
51
97
  );
@@ -53,7 +53,7 @@ export function createDescendantContext<
53
53
  useClientLayoutEffect(() => {
54
54
  if (!ref.current) return;
55
55
  const dataIndex = Number(ref.current.dataset["index"]);
56
- if (index != dataIndex && !Number.isNaN(dataIndex)) {
56
+ if (index !== dataIndex && !Number.isNaN(dataIndex)) {
57
57
  setIndex(dataIndex);
58
58
  }
59
59
  });
@@ -37,7 +37,7 @@ export function sortNodes(nodes: Node[]) {
37
37
  }
38
38
 
39
39
  export const isElement = (el: any): el is HTMLElement =>
40
- typeof el == "object" &&
40
+ typeof el === "object" &&
41
41
  "nodeType" in el &&
42
42
  el.nodeType === Node.ELEMENT_NODE;
43
43
 
@@ -38,10 +38,12 @@ export function get(
38
38
 
39
39
  function getKeypath(str: string) {
40
40
  const path: string[] = [];
41
- let result: RegExpExecArray | null;
42
- while ((result = OBJECT_NOTATION_MATCHER.exec(str))) {
41
+ let result = OBJECT_NOTATION_MATCHER.exec(str);
42
+
43
+ while (result) {
43
44
  const [, first, second] = result;
44
45
  path.push(first || second);
46
+ result = OBJECT_NOTATION_MATCHER.exec(str);
45
47
  }
46
48
 
47
49
  return path;
@@ -1,6 +0,0 @@
1
- import * as React from "react";
2
- interface SlotProps extends React.HTMLAttributes<HTMLElement> {
3
- children?: React.ReactNode;
4
- }
5
- export declare const Slot: React.ForwardRefExoticComponent<SlotProps & React.RefAttributes<HTMLElement>>;
6
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../src/util/Slot.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oFAAoF;AACpF,6CAA+B;AAC/B,uDAAiD;AAMpC,QAAA,IAAI,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;;IACtB,MAAM,EAAE,QAAQ,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAAlC,YAA0B,CAAQ,CAAC;IAEzC,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,YAAY,CAAM,QAAQ,kCAClC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KACxC,GAAG,EAAE,YAAY;gBACf,CAAC,CAAC,IAAA,wBAAS,EAAC,CAAC,YAAY,EAAG,QAAgB,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAE,QAAgB,CAAC,GAAG,IACzB,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,oFAAoF,CACrF,CAAC;QACF,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;QACzB,MAAA,KAAK,CAAC,iBAAiB,sDAAG,KAAK,EAAE,YAAI,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CACjB,SAA8B,EAC9B,UAA+B;IAE/B,kCAAkC;IAClC,MAAM,aAAa,qBAAQ,UAAU,CAAE,CAAC;IAExC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,iDAAiD;YACjD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;oBAC/C,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;oBACxB,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;gBACzB,CAAC,CAAC;YACJ,CAAC;YACD,0DAA0D;iBACrD,IAAI,aAAa,EAAE,CAAC;gBACvB,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,iCAAiC;aAC5B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,mCAAQ,aAAa,GAAK,cAAc,CAAE,CAAC;QACpE,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC;iBACtD,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,uCAAY,SAAS,GAAK,aAAa,EAAG;AAC5C,CAAC"}
@@ -1,6 +0,0 @@
1
- import * as React from "react";
2
- interface SlotProps extends React.HTMLAttributes<HTMLElement> {
3
- children?: React.ReactNode;
4
- }
5
- export declare const Slot: React.ForwardRefExoticComponent<SlotProps & React.RefAttributes<HTMLElement>>;
6
- export {};
package/esm/util/Slot.js DELETED
@@ -1,63 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- // https://github.com/radix-ui/primitives/blob/main/packages/react/slot/src/Slot.tsx
13
- import * as React from "react";
14
- import { mergeRefs } from "./hooks/useMergeRefs.js";
15
- export const Slot = React.forwardRef((props, forwardedRef) => {
16
- var _a;
17
- const { children } = props, slotProps = __rest(props, ["children"]);
18
- if (React.isValidElement(children)) {
19
- return React.cloneElement(children, Object.assign(Object.assign({}, mergeProps(slotProps, children.props)), { ref: forwardedRef
20
- ? mergeRefs([forwardedRef, children.ref])
21
- : children.ref }));
22
- }
23
- if (React.Children.count(children) > 1) {
24
- const error = new Error("Aksel: Components using 'asChild' expects to recieve a single React element child.");
25
- error.name = "SlotError";
26
- (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, error, Slot);
27
- throw error;
28
- }
29
- return null;
30
- });
31
- function mergeProps(slotProps, childProps) {
32
- // all child props should override
33
- const overrideProps = Object.assign({}, childProps);
34
- for (const propName in childProps) {
35
- const slotPropValue = slotProps[propName];
36
- const childPropValue = childProps[propName];
37
- const isHandler = /^on[A-Z]/.test(propName);
38
- if (isHandler) {
39
- // if the handler exists on both, we compose them
40
- if (slotPropValue && childPropValue) {
41
- overrideProps[propName] = (...args) => {
42
- childPropValue(...args);
43
- slotPropValue(...args);
44
- };
45
- }
46
- // but if it exists only on the slot, we use only this one
47
- else if (slotPropValue) {
48
- overrideProps[propName] = slotPropValue;
49
- }
50
- }
51
- // if it's `style`, we merge them
52
- else if (propName === "style") {
53
- overrideProps[propName] = Object.assign(Object.assign({}, slotPropValue), childPropValue);
54
- }
55
- else if (propName === "className") {
56
- overrideProps[propName] = [slotPropValue, childPropValue]
57
- .filter(Boolean)
58
- .join(" ");
59
- }
60
- }
61
- return Object.assign(Object.assign({}, slotProps), overrideProps);
62
- }
63
- //# sourceMappingURL=Slot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../src/util/Slot.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,oFAAoF;AACpF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;;IACtB,MAAM,EAAE,QAAQ,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAAlC,YAA0B,CAAQ,CAAC;IAEzC,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,YAAY,CAAM,QAAQ,kCAClC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KACxC,GAAG,EAAE,YAAY;gBACf,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAG,QAAgB,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAE,QAAgB,CAAC,GAAG,IACzB,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,oFAAoF,CACrF,CAAC;QACF,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;QACzB,MAAA,KAAK,CAAC,iBAAiB,sDAAG,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CACjB,SAA8B,EAC9B,UAA+B;IAE/B,kCAAkC;IAClC,MAAM,aAAa,qBAAQ,UAAU,CAAE,CAAC;IAExC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,iDAAiD;YACjD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;oBAC/C,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;oBACxB,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;gBACzB,CAAC,CAAC;YACJ,CAAC;YACD,0DAA0D;iBACrD,IAAI,aAAa,EAAE,CAAC;gBACvB,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,iCAAiC;aAC5B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,mCAAQ,aAAa,GAAK,cAAc,CAAE,CAAC;QACpE,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC;iBACtD,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,uCAAY,SAAS,GAAK,aAAa,EAAG;AAC5C,CAAC"}