@awesome-markdown/board-ui 1.6.0 → 2.0.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 (67) hide show
  1. package/dist/board/Board.d.ts.map +1 -1
  2. package/dist/board/Board.js +79 -66
  3. package/dist/board/Board.js.map +1 -1
  4. package/dist/board/Cell.d.ts.map +1 -1
  5. package/dist/board/Cell.js +11 -6
  6. package/dist/board/Cell.js.map +1 -1
  7. package/dist/board/HomelessItemCard.d.ts.map +1 -1
  8. package/dist/board/HomelessItemCard.js +2 -1
  9. package/dist/board/HomelessItemCard.js.map +1 -1
  10. package/dist/board/ItemCard.d.ts.map +1 -1
  11. package/dist/board/ItemCard.js +9 -16
  12. package/dist/board/ItemCard.js.map +1 -1
  13. package/dist/board/dnd/mutateDragDrop.d.ts +3 -5
  14. package/dist/board/dnd/mutateDragDrop.d.ts.map +1 -1
  15. package/dist/board/dnd/mutateDragDrop.js +36 -55
  16. package/dist/board/dnd/mutateDragDrop.js.map +1 -1
  17. package/dist/board/layout/AxisBehavior.d.ts +2 -1
  18. package/dist/board/layout/AxisBehavior.d.ts.map +1 -1
  19. package/dist/board/layout/AxisBehavior.js +9 -5
  20. package/dist/board/layout/AxisBehavior.js.map +1 -1
  21. package/dist/board/layout/AxisDrawer.d.ts.map +1 -1
  22. package/dist/board/layout/AxisDrawer.js +1 -1
  23. package/dist/board/layout/AxisDrawer.js.map +1 -1
  24. package/dist/board/layout/filter-draft.d.ts.map +1 -1
  25. package/dist/board/layout/filter-draft.js +3 -1
  26. package/dist/board/layout/filter-draft.js.map +1 -1
  27. package/dist/components/ItemRecovery.d.ts +9 -0
  28. package/dist/components/ItemRecovery.d.ts.map +1 -0
  29. package/dist/components/ItemRecovery.js +48 -0
  30. package/dist/components/ItemRecovery.js.map +1 -0
  31. package/dist/components/PropertyTree.d.ts +18 -0
  32. package/dist/components/PropertyTree.d.ts.map +1 -0
  33. package/dist/components/PropertyTree.js +109 -0
  34. package/dist/components/PropertyTree.js.map +1 -0
  35. package/dist/lib/item-board.d.ts +0 -3
  36. package/dist/lib/item-board.d.ts.map +1 -1
  37. package/dist/lib/item-board.js +0 -7
  38. package/dist/lib/item-board.js.map +1 -1
  39. package/dist/lib/patch-visible-item.d.ts +4 -0
  40. package/dist/lib/patch-visible-item.d.ts.map +1 -0
  41. package/dist/lib/patch-visible-item.js +10 -0
  42. package/dist/lib/patch-visible-item.js.map +1 -0
  43. package/dist/lib/property-display.d.ts +2 -3
  44. package/dist/lib/property-display.d.ts.map +1 -1
  45. package/dist/lib/property-display.js +15 -10
  46. package/dist/lib/property-display.js.map +1 -1
  47. package/dist/lib/property-tree.d.ts +23 -0
  48. package/dist/lib/property-tree.d.ts.map +1 -0
  49. package/dist/lib/property-tree.js +109 -0
  50. package/dist/lib/property-tree.js.map +1 -0
  51. package/dist/pages/ItemEditorPage.d.ts.map +1 -1
  52. package/dist/pages/ItemEditorPage.js +185 -204
  53. package/dist/pages/ItemEditorPage.js.map +1 -1
  54. package/package.json +6 -5
  55. package/styles.css +766 -146
  56. package/dist/components/BoardAssigneeField.d.ts +0 -10
  57. package/dist/components/BoardAssigneeField.d.ts.map +0 -1
  58. package/dist/components/BoardAssigneeField.js +0 -37
  59. package/dist/components/BoardAssigneeField.js.map +0 -1
  60. package/dist/components/DeleteItemConfirmDialog.d.ts +0 -14
  61. package/dist/components/DeleteItemConfirmDialog.d.ts.map +0 -1
  62. package/dist/components/DeleteItemConfirmDialog.js +0 -46
  63. package/dist/components/DeleteItemConfirmDialog.js.map +0 -1
  64. package/dist/components/ItemEditorActions.d.ts +0 -15
  65. package/dist/components/ItemEditorActions.d.ts.map +0 -1
  66. package/dist/components/ItemEditorActions.js +0 -48
  67. package/dist/components/ItemEditorActions.js.map +0 -1
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- interface BoardAssigneeFieldProps {
3
- boardSlug: string;
4
- value: string;
5
- disabled?: boolean;
6
- onChange: (value: string) => void;
7
- }
8
- export declare function BoardAssigneeField({ boardSlug, value, disabled, onChange, }: BoardAssigneeFieldProps): React.ReactElement;
9
- export {};
10
- //# sourceMappingURL=BoardAssigneeField.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BoardAssigneeField.d.ts","sourceRoot":"","sources":["../../src/components/BoardAssigneeField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,uBAAuB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,KAAK,EACL,QAAgB,EAChB,QAAQ,GACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAgE9C"}
@@ -1,37 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- export function BoardAssigneeField({ boardSlug, value, disabled = false, onChange, }) {
4
- return (_jsxs("div", { style: {
5
- display: 'flex',
6
- flexDirection: 'column',
7
- gap: '8px',
8
- borderTop: '1px solid var(--border)',
9
- paddingTop: '16px',
10
- }, "data-testid": "item-editor-assignee-section", children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [_jsx("label", { htmlFor: "item-editor-assignee", style: {
11
- fontFamily: 'var(--font-mono)',
12
- fontSize: '11px',
13
- color: 'var(--ink-muted)',
14
- textTransform: 'uppercase',
15
- letterSpacing: '0.08em',
16
- }, children: "Board assignee" }), _jsxs("span", { style: {
17
- fontFamily: 'var(--font-mono)',
18
- fontSize: '11px',
19
- color: 'var(--ink-muted)',
20
- }, children: ["Saved to boards.", boardSlug, ".assignee for this board."] })] }), _jsx("input", { id: "item-editor-assignee", type: "text", value: value, onChange: (event) => onChange(event.target.value), placeholder: "Unassigned", disabled: disabled, style: {
21
- fontFamily: 'var(--font-sans)',
22
- fontSize: '15px',
23
- fontWeight: 400,
24
- color: 'var(--ink)',
25
- background: 'transparent',
26
- border: '1px solid var(--border)',
27
- borderRadius: 0,
28
- padding: '10px 12px',
29
- width: '100%',
30
- outline: 'none',
31
- }, onFocus: (event) => {
32
- event.currentTarget.style.borderColor = 'var(--accent)';
33
- }, onBlur: (event) => {
34
- event.currentTarget.style.borderColor = 'var(--border)';
35
- }, "data-testid": "item-editor-assignee" })] }));
36
- }
37
- //# sourceMappingURL=BoardAssigneeField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BoardAssigneeField.js","sourceRoot":"","sources":["../../src/components/BoardAssigneeField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,UAAU,kBAAkB,CAAC,EACjC,SAAS,EACT,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACgB;IACxB,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,yBAAyB;YACpC,UAAU,EAAE,MAAM;SACnB,iBACW,8BAA8B,aAE1C,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAClE,gBACE,OAAO,EAAC,sBAAsB,EAC9B,KAAK,EAAE;4BACL,UAAU,EAAE,kBAAkB;4BAC9B,QAAQ,EAAE,MAAM;4BAChB,KAAK,EAAE,kBAAkB;4BACzB,aAAa,EAAE,WAAW;4BAC1B,aAAa,EAAE,QAAQ;yBACxB,+BAGK,EACR,gBACE,KAAK,EAAE;4BACL,UAAU,EAAE,kBAAkB;4BAC9B,QAAQ,EAAE,MAAM;4BAChB,KAAK,EAAE,kBAAkB;yBAC1B,iCAEgB,SAAS,iCACrB,IACH,EACN,gBACE,EAAE,EAAC,sBAAsB,EACzB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,WAAW,EAAC,YAAY,EACxB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE,YAAY;oBACnB,UAAU,EAAE,aAAa;oBACzB,MAAM,EAAE,yBAAyB;oBACjC,YAAY,EAAE,CAAC;oBACf,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,MAAM;iBAChB,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC;gBAC1D,CAAC,EACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC;gBAC1D,CAAC,iBACW,sBAAsB,GAClC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- interface DeleteItemConfirmDialogProps {
3
- deleting: boolean;
4
- error: string | null;
5
- onCancel: () => void;
6
- onConfirm: () => void;
7
- }
8
- /**
9
- * Modal confirmation dialog shown before permanently deleting an item from
10
- * the item detail page (ItemEditorPage).
11
- */
12
- export declare function DeleteItemConfirmDialog({ deleting, error, onCancel, onConfirm, }: DeleteItemConfirmDialogProps): React.ReactElement;
13
- export {};
14
- //# sourceMappingURL=DeleteItemConfirmDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeleteItemConfirmDialog.d.ts","sourceRoot":"","sources":["../../src/components/DeleteItemConfirmDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,4BAA4B;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,4BAA4B,GAAG,KAAK,CAAC,YAAY,CAwEnD"}
@@ -1,46 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- /**
4
- * Modal confirmation dialog shown before permanently deleting an item from
5
- * the item detail page (ItemEditorPage).
6
- */
7
- export function DeleteItemConfirmDialog({ deleting, error, onCancel, onConfirm, }) {
8
- return (_jsx("div", { style: {
9
- position: 'fixed',
10
- inset: 0,
11
- background: 'rgba(0, 0, 0, 0.4)',
12
- display: 'flex',
13
- alignItems: 'center',
14
- justifyContent: 'center',
15
- zIndex: 100,
16
- }, "data-testid": "item-editor-delete-confirm", children: _jsxs("div", { style: {
17
- background: 'var(--bg)',
18
- border: '1px solid var(--border)',
19
- borderRadius: 0,
20
- padding: '24px',
21
- maxWidth: '360px',
22
- display: 'flex',
23
- flexDirection: 'column',
24
- gap: '16px',
25
- fontFamily: 'var(--font-mono)',
26
- }, children: [_jsx("div", { style: { fontSize: '13px', color: 'var(--ink)' }, children: "Delete this item? This cannot be undone." }), error && _jsx("div", { style: { fontSize: '12px', color: 'var(--ink)' }, children: error }), _jsxs("div", { style: { display: 'flex', gap: '12px', justifyContent: 'flex-end' }, children: [_jsx("button", { type: "button", onClick: onCancel, disabled: deleting, style: {
27
- fontFamily: 'var(--font-mono)',
28
- fontSize: '12px',
29
- color: 'var(--ink-muted)',
30
- background: 'none',
31
- border: 'none',
32
- borderRadius: 0,
33
- padding: '6px 8px',
34
- cursor: deleting ? 'not-allowed' : 'pointer',
35
- }, "data-testid": "item-editor-delete-cancel", children: "cancel" }), _jsx("button", { type: "button", onClick: onConfirm, disabled: deleting, style: {
36
- fontFamily: 'var(--font-mono)',
37
- fontSize: '12px',
38
- background: 'var(--ink)',
39
- color: 'var(--bg)',
40
- border: 'none',
41
- borderRadius: 0,
42
- padding: '6px 16px',
43
- cursor: deleting ? 'not-allowed' : 'pointer',
44
- }, "data-testid": "item-editor-delete-confirm-button", children: deleting ? 'deleting…' : 'delete' })] })] }) }));
45
- }
46
- //# sourceMappingURL=DeleteItemConfirmDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeleteItemConfirmDialog.js","sourceRoot":"","sources":["../../src/components/DeleteItemConfirmDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GACoB;IAC7B,OAAO,CACL,cACE,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE,GAAG;SACZ,iBACW,4BAA4B,YAExC,eACE,KAAK,EAAE;gBACL,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,yBAAyB;gBACjC,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,kBAAkB;aAC/B,aAED,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,yDAE/C,EACL,KAAK,IAAI,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAG,KAAK,GAAO,EAC9E,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,aACtE,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;gCACL,UAAU,EAAE,kBAAkB;gCAC9B,QAAQ,EAAE,MAAM;gCAChB,KAAK,EAAE,kBAAkB;gCACzB,UAAU,EAAE,MAAM;gCAClB,MAAM,EAAE,MAAM;gCACd,YAAY,EAAE,CAAC;gCACf,OAAO,EAAE,SAAS;gCAClB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;6BAC7C,iBACW,2BAA2B,uBAGhC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;gCACL,UAAU,EAAE,kBAAkB;gCAC9B,QAAQ,EAAE,MAAM;gCAChB,UAAU,EAAE,YAAY;gCACxB,KAAK,EAAE,WAAW;gCAClB,MAAM,EAAE,MAAM;gCACd,YAAY,EAAE,CAAC;gCACf,OAAO,EAAE,UAAU;gCACnB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;6BAC7C,iBACW,mCAAmC,YAE9C,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,GAC3B,IACL,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- interface ItemEditorActionsProps {
3
- saving: boolean;
4
- deleting: boolean;
5
- dirty: boolean;
6
- onSave: () => void;
7
- onCancel: () => void;
8
- onDeleteRequest: () => void;
9
- }
10
- /**
11
- * Save / cancel / delete action bar for the item detail page (ItemEditorPage).
12
- */
13
- export declare function ItemEditorActions({ saving, deleting, dirty, onSave, onCancel, onDeleteRequest, }: ItemEditorActionsProps): React.ReactElement;
14
- export {};
15
- //# sourceMappingURL=ItemEditorActions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItemEditorActions.d.ts","sourceRoot":"","sources":["../../src/components/ItemEditorActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,eAAe,GAChB,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CA8E7C"}
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- /**
4
- * Save / cancel / delete action bar for the item detail page (ItemEditorPage).
5
- */
6
- export function ItemEditorActions({ saving, deleting, dirty, onSave, onCancel, onDeleteRequest, }) {
7
- return (_jsxs("div", { style: {
8
- display: 'flex',
9
- gap: '12px',
10
- alignItems: 'center',
11
- borderTop: '1px solid var(--border)',
12
- paddingTop: '16px',
13
- }, children: [_jsx("button", { type: "button", onClick: onSave, disabled: saving || !dirty, style: {
14
- fontFamily: 'var(--font-mono)',
15
- fontSize: '12px',
16
- background: dirty && !saving ? 'var(--ink)' : 'var(--border)',
17
- color: dirty && !saving ? 'var(--bg)' : 'var(--ink-muted)',
18
- border: 'none',
19
- borderRadius: 0,
20
- padding: '6px 16px',
21
- cursor: saving || !dirty ? 'not-allowed' : 'pointer',
22
- transition: 'opacity 0.1s',
23
- }, "data-testid": "item-editor-save", children: saving ? 'saving…' : 'save' }), _jsx("button", { type: "button", onClick: onCancel, disabled: saving, style: {
24
- fontFamily: 'var(--font-mono)',
25
- fontSize: '12px',
26
- color: 'var(--ink-muted)',
27
- background: 'none',
28
- border: 'none',
29
- borderRadius: 0,
30
- padding: '6px 8px',
31
- cursor: saving ? 'not-allowed' : 'pointer',
32
- }, "data-testid": "item-editor-cancel", children: "cancel" }), _jsx("button", { type: "button", onClick: onDeleteRequest, disabled: saving || deleting, style: {
33
- fontFamily: 'var(--font-mono)',
34
- fontSize: '12px',
35
- color: 'var(--ink-muted)',
36
- background: 'none',
37
- border: 'none',
38
- borderRadius: 0,
39
- padding: '6px 8px',
40
- cursor: saving || deleting ? 'not-allowed' : 'pointer',
41
- }, "data-testid": "item-editor-delete", children: "delete" }), _jsx("span", { style: {
42
- fontFamily: 'var(--font-mono)',
43
- fontSize: '11px',
44
- color: 'var(--ink-muted)',
45
- marginLeft: 'auto',
46
- }, children: saving ? '' : '⌘S to save · Esc to cancel' })] }));
47
- }
48
- //# sourceMappingURL=ItemEditorActions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItemEditorActions.js","sourceRoot":"","sources":["../../src/components/ItemEditorActions.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,eAAe,GACQ;IACvB,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,MAAM;YACX,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,yBAAyB;YACpC,UAAU,EAAE,MAAM;SACnB,aAED,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,EAC1B,KAAK,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe;oBAC7D,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB;oBAC1D,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,CAAC;oBACf,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBACpD,UAAU,EAAE,cAAc;iBAC3B,iBACW,kBAAkB,YAE7B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GACrB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,kBAAkB;oBACzB,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,CAAC;oBACf,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBAC3C,iBACW,oBAAoB,uBAGzB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,IAAI,QAAQ,EAC5B,KAAK,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,kBAAkB;oBACzB,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,CAAC;oBACf,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBACvD,iBACW,oBAAoB,uBAGzB,EACT,eACE,KAAK,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,kBAAkB;oBACzB,UAAU,EAAE,MAAM;iBACnB,YAEA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,GACtC,IACH,CACP,CAAC;AACJ,CAAC"}