@vkzstudio/muza-ui 1.0.43 → 1.0.45

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 (116) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +42 -6
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Button/Button.d.ts +71 -17
  4. package/dist/components/Button/Button.d.ts.map +1 -1
  5. package/dist/components/DataTable/DataTable.d.ts +66 -20
  6. package/dist/components/DataTable/DataTable.d.ts.map +1 -1
  7. package/dist/components/DataTable/DataTable.js +39 -39
  8. package/dist/components/DataTable/DataTable.stories.d.ts.map +1 -1
  9. package/dist/components/DatePicker/DatePicker.d.ts +69 -36
  10. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  11. package/dist/components/DatePicker/DatePicker.stories.d.ts.map +1 -1
  12. package/dist/components/DropdownMenu/DropdownMenu.d.ts +38 -7
  13. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  14. package/dist/components/DropdownMenu/DropdownMenu.js +165 -163
  15. package/dist/components/DropdownMenu/DropdownMenu.stories.d.ts +3 -17
  16. package/dist/components/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -1
  17. package/dist/components/EdgeButton/EdgeButton.d.ts +10 -11
  18. package/dist/components/EdgeButton/EdgeButton.d.ts.map +1 -1
  19. package/dist/components/ExpandableTable/ExpandableTable.d.ts +103 -19
  20. package/dist/components/ExpandableTable/ExpandableTable.d.ts.map +1 -1
  21. package/dist/components/ExpandableTable/ExpandableTable.js +100 -111
  22. package/dist/components/ExpandableTable/ExpandableTable.stories.d.ts +6 -1
  23. package/dist/components/ExpandableTable/ExpandableTable.stories.d.ts.map +1 -1
  24. package/dist/components/ExpandableTable/index.d.ts +1 -1
  25. package/dist/components/ExpandableTable/index.d.ts.map +1 -1
  26. package/dist/components/FileUpload/FileItem.d.ts +22 -0
  27. package/dist/components/FileUpload/FileItem.d.ts.map +1 -1
  28. package/dist/components/FileUpload/FileItem.js +38 -41
  29. package/dist/components/FileUpload/FileUpload.d.ts +137 -42
  30. package/dist/components/FileUpload/FileUpload.d.ts.map +1 -1
  31. package/dist/components/FileUpload/FileUpload.js +87 -83
  32. package/dist/components/FileUpload/FileUpload.stories.d.ts +1 -0
  33. package/dist/components/FileUpload/FileUpload.stories.d.ts.map +1 -1
  34. package/dist/components/FileUpload/index.d.ts +1 -1
  35. package/dist/components/FileUpload/index.d.ts.map +1 -1
  36. package/dist/components/Flex/Flex.d.ts +1 -1
  37. package/dist/components/Icons/CustomBadges.d.ts +14 -0
  38. package/dist/components/Icons/CustomBadges.d.ts.map +1 -0
  39. package/dist/components/Icons/CustomBadges.js +334 -0
  40. package/dist/components/Icons/CustomIcons.d.ts +24 -0
  41. package/dist/components/Icons/CustomIcons.d.ts.map +1 -1
  42. package/dist/components/Icons/CustomIcons.js +88 -42
  43. package/dist/components/Icons/CustomLogos.d.ts +29 -0
  44. package/dist/components/Icons/CustomLogos.d.ts.map +1 -0
  45. package/dist/components/Icons/CustomLogos.js +593 -0
  46. package/dist/components/Icons/LogosAndBadges.stories.d.ts +7 -0
  47. package/dist/components/Icons/LogosAndBadges.stories.d.ts.map +1 -0
  48. package/dist/components/Icons/index.d.ts +2 -0
  49. package/dist/components/Icons/index.d.ts.map +1 -1
  50. package/dist/components/Input/Input.d.ts +33 -34
  51. package/dist/components/Input/Input.d.ts.map +1 -1
  52. package/dist/components/Input/Input.stories.d.ts.map +1 -1
  53. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts +24 -1
  54. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
  55. package/dist/components/LanguageSwitcher/LanguageSwitcher.js +71 -52
  56. package/dist/components/LanguageSwitcher/LanguageSwitcher.stories.d.ts +2 -0
  57. package/dist/components/LanguageSwitcher/LanguageSwitcher.stories.d.ts.map +1 -1
  58. package/dist/components/MultiSelect/MultiSelect.d.ts +50 -23
  59. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  60. package/dist/components/MultiSelect/MultiSelect.js +18 -17
  61. package/dist/components/Reorderable/Reorderable.d.ts +48 -1
  62. package/dist/components/Reorderable/Reorderable.d.ts.map +1 -1
  63. package/dist/components/ReorderableTable/ReorderableTable.d.ts +34 -17
  64. package/dist/components/ReorderableTable/ReorderableTable.d.ts.map +1 -1
  65. package/dist/components/ReorderableTable/ReorderableTable.stories.d.ts.map +1 -1
  66. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.d.ts +266 -0
  67. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.d.ts.map +1 -0
  68. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.examples.d.ts +39 -0
  69. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.examples.d.ts.map +1 -0
  70. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.js +134 -0
  71. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.stories.d.ts +14 -0
  72. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.stories.d.ts.map +1 -0
  73. package/dist/components/ResponsiveLayoutTable/index.d.ts +2 -0
  74. package/dist/components/ResponsiveLayoutTable/index.d.ts.map +1 -0
  75. package/dist/components/Select/Select.d.ts +58 -28
  76. package/dist/components/Select/Select.d.ts.map +1 -1
  77. package/dist/components/Select/Select.js +123 -92
  78. package/dist/components/Select/Select.stories.d.ts +1 -0
  79. package/dist/components/Select/Select.stories.d.ts.map +1 -1
  80. package/dist/components/Select/index.d.ts +1 -1
  81. package/dist/components/Select/index.d.ts.map +1 -1
  82. package/dist/components/Select/utils.d.ts +1 -0
  83. package/dist/components/Select/utils.d.ts.map +1 -1
  84. package/dist/components/Select/utils.js +5 -2
  85. package/dist/components/TextEditor/TextEditor.d.ts +82 -46
  86. package/dist/components/TextEditor/TextEditor.d.ts.map +1 -1
  87. package/dist/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  88. package/dist/components/TextEditor/index.d.ts +1 -1
  89. package/dist/components/TextEditor/index.d.ts.map +1 -1
  90. package/dist/components/Textarea/Textarea.d.ts +41 -10
  91. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  92. package/dist/components/Textarea/Textarea.stories.d.ts.map +1 -1
  93. package/dist/components/Toggle/Toggle.js +1 -1
  94. package/dist/components/ToggleCheckButton/ToggleCheckButton.d.ts +69 -0
  95. package/dist/components/ToggleCheckButton/ToggleCheckButton.d.ts.map +1 -0
  96. package/dist/components/ToggleCheckButton/ToggleCheckButton.js +64 -0
  97. package/dist/components/ToggleCheckButton/ToggleCheckButton.stories.d.ts +8 -0
  98. package/dist/components/ToggleCheckButton/ToggleCheckButton.stories.d.ts.map +1 -0
  99. package/dist/components/ToggleCheckButton/index.d.ts +2 -0
  100. package/dist/components/ToggleCheckButton/index.d.ts.map +1 -0
  101. package/dist/components/WebCheckoutNav/WebCheckoutNav.examples.d.ts +19 -0
  102. package/dist/components/WebCheckoutNav/WebCheckoutNav.examples.d.ts.map +1 -0
  103. package/dist/components/WebCheckoutNav/WebCheckoutNav.stories.d.ts +8 -0
  104. package/dist/components/WebCheckoutNav/WebCheckoutNav.stories.d.ts.map +1 -0
  105. package/dist/components/index.d.ts +2 -0
  106. package/dist/components/index.d.ts.map +1 -1
  107. package/dist/hooks/use-is-breakpoint.d.ts +11 -0
  108. package/dist/hooks/use-is-breakpoint.d.ts.map +1 -1
  109. package/dist/hooks/use-is-breakpoint.js +24 -13
  110. package/dist/index.js +236 -215
  111. package/dist/muza-ui.css +1 -1
  112. package/dist/styles/token-colors.css +64 -3
  113. package/dist/styles/token-sizes.css +86 -54
  114. package/dist/utils/cn.d.ts.map +1 -1
  115. package/dist/utils/cn.js +16 -5
  116. package/package.json +1 -1
@@ -32,19 +32,40 @@ export interface ReorderableGroupProps<T> {
32
32
  * Fires when items are reordered with the new array order.
33
33
  * Required unless `onSync` is provided, in which case it becomes an optional
34
34
  * pass-through for immediate local feedback.
35
+ *
36
+ * @example
37
+ * const [items, setItems] = useState(initialItems)
38
+ * <ReorderableGroup values={items} onReorder={setItems}>...</ReorderableGroup>
35
39
  */
36
40
  onReorder?: (newOrder: T[]) => void;
37
41
  /**
38
42
  * Debounced sync callback. Fires once after the user finishes reordering
39
43
  * (`syncDelay` ms after the last reorder event). When provided, the component
40
44
  * manages internal state and blocks external `values` updates while sync is pending.
45
+ *
46
+ * @example
47
+ * // Persist new order to the server after the user finishes dragging
48
+ * <ReorderableGroup
49
+ * values={serverItems}
50
+ * onSync={(order) => api.saveOrder(order)}
51
+ * syncDelay={500}
52
+ * >
53
+ * {(items) => items.map(item => <ReorderableItem key={item.id} value={item}>...</ReorderableItem>)}
54
+ * </ReorderableGroup>
41
55
  */
42
56
  onSync?: (newOrder: T[]) => void;
43
57
  /** Milliseconds to wait after the last reorder event before calling `onSync`. @default 300 */
44
58
  syncDelay?: number;
45
59
  /**
46
- * Called when the internal sync pending state changes.
60
+ * Fires when the internal sync pending state changes.
47
61
  * Useful for showing loading indicators or disabling other interactions during sync.
62
+ *
63
+ * @example
64
+ * <ReorderableGroup
65
+ * values={items}
66
+ * onSync={handleSync}
67
+ * onSyncPendingChange={setIsSyncing}
68
+ * >...</ReorderableGroup>
48
69
  */
49
70
  onSyncPendingChange?: (isPending: boolean) => void;
50
71
  /** Fires when a pointer drag interaction starts (handle grab or direct item drag). */
@@ -64,6 +85,14 @@ export interface ReorderableGroupProps<T> {
64
85
  /**
65
86
  * Wraps children with AnimatePresence to enable exit animations on ReorderableItems.
66
87
  * Pass `true` for defaults (`mode="popLayout"`, `initial={false}`) or an object for custom config.
88
+ *
89
+ * @default false
90
+ * @example
91
+ * // Enable defaults
92
+ * <ReorderableGroup animatePresence values={items} onReorder={setItems}>...</ReorderableGroup>
93
+ *
94
+ * // Custom AnimatePresence config
95
+ * <ReorderableGroup animatePresence={{ mode: 'wait' }} values={items} onReorder={setItems}>...</ReorderableGroup>
67
96
  */
68
97
  animatePresence?: boolean | Omit<AnimatePresenceProps, 'children'>;
69
98
  /** Additional CSS classes. */
@@ -88,6 +117,16 @@ declare const ReorderableGroup: <T>(props: ReorderableGroupProps<T> & {
88
117
  type ReorderableItemElement = 'li' | 'div' | 'tr';
89
118
  /**
90
119
  * Custom animation configuration for enter/exit transitions on a ReorderableItem.
120
+ * Passed to a ReorderableItem via the `animation` prop. Any omitted field falls back
121
+ * to the built-in default (opacity + scale fade).
122
+ *
123
+ * @example
124
+ * const slideIn: ReorderableItemAnimationConfig = {
125
+ * initial: { opacity: 0, x: -20 },
126
+ * animate: { opacity: 1, x: 0 },
127
+ * exit: { opacity: 0, x: 20 },
128
+ * transition: { duration: 0.15, ease: 'easeOut' },
129
+ * }
91
130
  */
92
131
  export interface ReorderableItemAnimationConfig {
93
132
  /** Mount animation state (motion `initial`). Set `false` to skip enter animation. */
@@ -128,6 +167,10 @@ export interface ReorderableItemProps<T> {
128
167
  * - Object: merges with defaults — only override what you need.
129
168
  * - `false` or omitted: no animation unless the parent group has `animatePresence` enabled,
130
169
  * in which case defaults are applied automatically.
170
+ *
171
+ * @see ReorderableItemAnimationConfig
172
+ * @example
173
+ * <ReorderableItem animation={{ initial: { opacity: 0, x: -20 } }} value={item}>...</ReorderableItem>
131
174
  */
132
175
  animation?: boolean | ReorderableItemAnimationConfig;
133
176
  /** Additional CSS classes. */
@@ -139,6 +182,10 @@ export interface ReorderableItemProps<T> {
139
182
  /**
140
183
  * Controls Motion's layout animation mode.
141
184
  * Use `"position"` to animate only position and prevent scale distortion when item height changes.
185
+ *
186
+ * @example
187
+ * // Prevent scale distortion on items with dynamic height
188
+ * <ReorderableItem layout="position" value={item}>...</ReorderableItem>
142
189
  */
143
190
  layout?: true | 'position';
144
191
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Reorderable.d.ts","sourceRoot":"","sources":["../../../src/components/Reorderable/Reorderable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reorderable.d.ts","sourceRoot":"","sources":["../../../src/components/Reorderable/Reorderable.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { ForwardedRef, ReactNode } from 'react';
2
2
  /**
3
- * Column definition for ReorderableTable.
3
+ * Column definition for the ReorderableTable. Describes how a single column's
4
+ * header and body cells are derived from row data.
4
5
  *
5
- * @typeParam T - Row data object type
6
+ * @typeParam T - The type of data objects in each row
6
7
  *
7
8
  * @example
8
9
  * const columns: ReorderableTableColumn<User>[] = [
@@ -13,17 +14,19 @@ import { ForwardedRef, ReactNode } from 'react';
13
14
  export interface ReorderableTableColumn<T> {
14
15
  /** Property key from the row data object to display in this column. */
15
16
  dataKey: keyof T;
16
- /** Column header content. */
17
+ /** Header content rendered in the table head for this column. */
17
18
  title: ReactNode;
18
- /** Applies custom CSS classes to cells in this column. */
19
+ /** Applies custom CSS classes to both header and body cells in this column. */
19
20
  className?: string;
20
21
  /**
21
- * Controls text truncation via line clamping.
22
- * `true` or `1` applies single-line clamp, `2` applies two-line clamp.
22
+ * Controls text truncation via line clamping. `true` or `1` applies a
23
+ * single-line clamp, `2` applies a two-line clamp. Only used when `render`
24
+ * is omitted (the default Typography renderer honors this prop).
23
25
  */
24
26
  lineClamp?: boolean | 1 | 2;
25
27
  /**
26
- * Custom cell renderer. When omitted, the raw data value is rendered as text.
28
+ * Custom cell renderer. When omitted, the raw data value is rendered inside
29
+ * a Typography component.
27
30
  *
28
31
  * @example
29
32
  * render: (value, rowData, rowIndex) => <Tag>{value}</Tag>
@@ -34,7 +37,7 @@ export interface ReorderableTableColumn<T> {
34
37
  * Props for the ReorderableTable component.
35
38
  * Extends standard table attributes except `children` (rows are generated from `data`).
36
39
  *
37
- * @typeParam T - Row data object type; must include an `id` field
40
+ * @typeParam T - The type of data objects in each row; must include an `id` field used as the React key
38
41
  * @see ReorderableTableColumn
39
42
  */
40
43
  export interface ReorderableTableProps<T extends {
@@ -44,27 +47,37 @@ export interface ReorderableTableProps<T extends {
44
47
  data: T[];
45
48
  /**
46
49
  * Fires when rows are reordered. Receives the full array in its new order.
47
- * Optional when `onSync` is provided.
50
+ * Optional when `onSync` is provided — in sync mode `onSync` is the primary
51
+ * handler and `onReorder` becomes a pass-through for immediate local feedback.
52
+ *
53
+ * @example
54
+ * onReorder={(newOrder) => setRows(newOrder)}
48
55
  */
49
56
  onReorder?: (newOrder: T[]) => void;
50
57
  /**
51
58
  * Debounced sync callback. Fires once after the user finishes reordering
52
59
  * (`syncDelay` ms after the last reorder event). When provided, the component
53
60
  * manages internal state and blocks external `data` updates while sync is pending.
61
+ *
62
+ * @example
63
+ * onSync={(newOrder) => api.saveOrder(newOrder)}
54
64
  */
55
65
  onSync?: (newOrder: T[]) => void;
56
66
  /** Milliseconds to wait after the last reorder event before calling `onSync`. @default 300 */
57
67
  syncDelay?: number;
58
68
  /**
59
- * Called when the internal sync pending state changes.
60
- * Useful for showing loading indicators or disabling other interactions during sync.
69
+ * Fires when the internal sync pending state changes. Useful for showing
70
+ * loading indicators or disabling other interactions during sync.
61
71
  */
62
72
  onSyncPendingChange?: (isPending: boolean) => void;
63
73
  /** Fires when a pointer drag interaction starts. */
64
74
  onDragStart?: () => void;
65
75
  /** Fires when a pointer drag interaction ends. */
66
76
  onDragEnd?: () => void;
67
- /** Column definitions describing headers and cell rendering. @see ReorderableTableColumn */
77
+ /**
78
+ * Column definitions describing headers and cell rendering.
79
+ * @see ReorderableTableColumn
80
+ */
68
81
  columns: ReorderableTableColumn<T>[];
69
82
  /** Displays the table header row. @default false */
70
83
  showHeader?: boolean;
@@ -72,7 +85,8 @@ export interface ReorderableTableProps<T extends {
72
85
  disabled?: boolean;
73
86
  /**
74
87
  * Determines whether a specific row is disabled based on its data and index.
75
- * Disabled rows cannot be dragged but may still shift when other rows are reordered.
88
+ * Disabled rows cannot be dragged but may still shift position when other
89
+ * rows are reordered around them.
76
90
  *
77
91
  * @example
78
92
  * isRowDisabled={(row) => row.status === 'inactive'}
@@ -85,14 +99,17 @@ export interface ReorderableTableProps<T extends {
85
99
  /** Enables enter/exit animations when rows are added or removed. @default false */
86
100
  animateItems?: boolean;
87
101
  /**
88
- * Controls Motion's layout animation mode on rows.
89
- * Use `"position"` to animate only position and prevent scale distortion when row height changes.
102
+ * Controls Motion's layout animation mode on rows. Use `"position"` to
103
+ * animate only position and prevent scale distortion when row height changes.
90
104
  */
91
105
  layout?: true | 'position';
92
106
  /**
93
107
  * Fires when a row is clicked. Does not fire when the click originates from
94
- * the drag handle. Clicks inside interactive children (buttons, links) should
95
- * call `event.stopPropagation()` to avoid double-firing.
108
+ * the drag handle column. Clicks inside interactive children (buttons, links,
109
+ * inputs) should call `event.stopPropagation()` to avoid double-firing.
110
+ *
111
+ * @example
112
+ * onRowClick={(rowData, rowIndex) => navigate(`/items/${rowData.id}`)}
96
113
  */
97
114
  onRowClick?: (rowData: T, rowIndex: number) => void;
98
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderableTable.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAWrE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,6BAA6B;IAC7B,KAAK,EAAE,SAAS,CAAA;IAChB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAA;CACxE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CACtE,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAChE,wFAAwF;IACxF,IAAI,EAAE,CAAC,EAAE,CAAA;IACT;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAChC,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,4FAA4F;IAC5F,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;IACzD,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,UAAU,CAAA;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CACpD;AAkQD,QAAA,MAAM,gBAAgB,EAAwC,CAC5D,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAEjC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAA;CAAE,KACvE,KAAK,CAAC,YAAY,CACtB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"ReorderableTable.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAWrE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,iEAAiE;IACjE,KAAK,EAAE,SAAS,CAAA;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAA;CACxE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CACtE,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAChE,wFAAwF;IACxF,IAAI,EAAE,CAAC,EAAE,CAAA;IACT;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACnC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAChC,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;;OAGG;IACH,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;IACzD,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,UAAU,CAAA;IAC1B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CACpD;AAkQD,QAAA,MAAM,gBAAgB,EAAwC,CAC5D,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAEjC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAA;CAAE,KACvE,KAAK,CAAC,YAAY,CACtB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderableTable.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAc3D,OAAO,EACL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC9B;AAyCD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAoEvC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExD,eAAO,MAAM,OAAO,EAAE,KAkHrB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAuL1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAsG3B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA2G7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KA0H1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAkG3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA4FtB,CAAA"}
1
+ {"version":3,"file":"ReorderableTable.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAc3D,OAAO,EACL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC9B;AAyCD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CA0EvC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExD,eAAO,MAAM,OAAO,EAAE,KAkHrB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAuL1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAsG3B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA2G7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KA0H1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAkG3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA4FtB,CAAA"}
@@ -0,0 +1,266 @@
1
+ import { ResponsiveBreakpoint } from '../../hooks/use-is-breakpoint';
2
+ import * as React from 'react';
3
+ /**
4
+ * Column definition for a single layout of the ResponsiveLayoutTable.
5
+ *
6
+ * Each column either renders a raw value from the row via `dataKey` (wrapped in
7
+ * a Typography component) or a fully custom cell via `render`. Use `skeleton` to
8
+ * describe the loading placeholder shape.
9
+ *
10
+ * @typeParam T - The type of data objects in each row
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * const columns: ResponsiveLayoutTableColumn<Transaction>[] = [
15
+ * { title: 'Customer', dataKey: 'customer', className: 'w-[240px]' },
16
+ * {
17
+ * title: 'Amount',
18
+ * render: (row) => <AmountCell row={row} />,
19
+ * skeleton: <Skeleton className="h-4 w-20" />,
20
+ * },
21
+ * ]
22
+ * ```
23
+ */
24
+ export interface ResponsiveLayoutTableColumn<T extends {
25
+ id: string | number;
26
+ }> {
27
+ /** Header label. Accepts ReactNode for multi-line headers (e.g. tablet stacked text). */
28
+ title?: React.ReactNode;
29
+ /**
30
+ * Property key from the data object. Used as default cell content when `render`
31
+ * is omitted — the raw value is rendered inside a Typography component. Ignored
32
+ * when `render` is provided.
33
+ */
34
+ dataKey?: keyof T;
35
+ /** Additional CSS class applied to both the header and body cells. */
36
+ className?: string;
37
+ /**
38
+ * Truncates default cell text to the specified number of lines. Only applies
39
+ * when `render` is omitted. `true` or `1` clamps to one line, `2` clamps to two.
40
+ * @default false
41
+ */
42
+ lineClamp?: boolean | 1 | 2;
43
+ /**
44
+ * Custom render function for cell content. Receives the full row data so that
45
+ * compressed layouts can combine data from multiple fields in a single cell.
46
+ * When omitted, the raw `dataKey` value is displayed inside a Typography component.
47
+ *
48
+ * @param rowData - The data object for the current row
49
+ * @param rowIndex - The zero-based index of the row in `data`
50
+ * @param disabled - Whether the table is in the disabled state (forwarded from
51
+ * `ResponsiveLayoutTableProps.disabled` so cells can mute their own styling)
52
+ */
53
+ render?: (rowData: T, rowIndex: number, disabled?: boolean) => React.ReactNode;
54
+ /**
55
+ * Skeleton placeholder rendered in this cell when the row is in a loading state
56
+ * (see `ResponsiveLayoutTableProps.isRowLoading`). Compose `<Skeleton />` primitives
57
+ * to match the shape of the real cell. Omit to fall back to a generic full-width bar.
58
+ */
59
+ skeleton?: React.ReactNode;
60
+ }
61
+ /**
62
+ * Per-layout className overrides for the header and body rows.
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * classNames: { row: 'border-dashed', header: 'bg-surface-base-tertiary' }
67
+ * ```
68
+ */
69
+ export interface ResponsiveLayoutTableLayoutClassNames {
70
+ /** Additional CSS class applied to each body row. */
71
+ row?: string;
72
+ /** Additional CSS class applied to the header row. */
73
+ header?: string;
74
+ }
75
+ /**
76
+ * A single layout configuration for the ResponsiveLayoutTable. Each layout
77
+ * describes a distinct set of columns that becomes active when its `responsive`
78
+ * predicate matches. Layouts are evaluated in order and the first match wins;
79
+ * the last entry should omit `responsive` so it matches as a fallback.
80
+ *
81
+ * @typeParam T - The type of data objects in each row
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * const layouts: ResponsiveLayoutTableLayout<Transaction>[] = [
86
+ * { responsive: 'lg', columns: desktopColumns },
87
+ * { responsive: 'md', columns: tabletColumns },
88
+ * { showHeader: false, columns: phoneColumns },
89
+ * ]
90
+ * ```
91
+ */
92
+ export interface ResponsiveLayoutTableLayout<T extends {
93
+ id: string | number;
94
+ }> {
95
+ /**
96
+ * Controls when this layout is active.
97
+ * - Named breakpoint (`'xs'..'3xl'`): active at and above that breakpoint, resolved internally via hooks.
98
+ * - Boolean: caller supplies the result directly (e.g. from `useMediaQuery('(min-width: 52rem)')`).
99
+ * `true` activates this layout, `false` skips it. Use this for arbitrary thresholds.
100
+ * - Omitted: treated as fallback (always matches).
101
+ *
102
+ * @see {@link ResponsiveBreakpoint}
103
+ */
104
+ responsive?: ResponsiveBreakpoint | boolean;
105
+ /** Column definitions for this layout. */
106
+ columns: ResponsiveLayoutTableColumn<T>[];
107
+ /**
108
+ * Whether to show the header row.
109
+ * @default true
110
+ */
111
+ showHeader?: boolean;
112
+ /** Per-layout className overrides for the header and body rows. */
113
+ classNames?: ResponsiveLayoutTableLayoutClassNames;
114
+ }
115
+ /**
116
+ * Top-level className overrides for the ResponsiveLayoutTable.
117
+ *
118
+ * @example
119
+ * ```tsx
120
+ * classNames={{
121
+ * root: 'rounded-xl',
122
+ * rowBackgroundInset:
123
+ * 'before:-left-comp-webcheckout-table-cells-p-hor before:-right-comp-webcheckout-table-cells-p-hor',
124
+ * }}
125
+ * ```
126
+ */
127
+ export interface ResponsiveLayoutTableClassNames {
128
+ /** Outer wrapper `<div>`. */
129
+ root?: string;
130
+ /**
131
+ * Classes applied to each row's `::before` pseudo-element when
132
+ * `overflowingRowBackground` is `true`. Default is zero bleed
133
+ * (the background sits flush inside the row). Consumer passes any
134
+ * Tailwind classes with the `before:` prefix and can use `first:` /
135
+ * `last:` variants to extend the tint past the first / last row so it
136
+ * reaches the surrounding card's top / bottom padding.
137
+ *
138
+ * @example
139
+ * ```tsx
140
+ * classNames={{
141
+ * rowBackgroundInset:
142
+ * 'before:-left-comp-webcheckout-table-cells-p-hor ' +
143
+ * 'before:-right-comp-webcheckout-table-cells-p-hor ' +
144
+ * 'first:before:-top-sm last:before:-bottom-sm',
145
+ * }}
146
+ * ```
147
+ */
148
+ rowBackgroundInset?: string;
149
+ }
150
+ /**
151
+ * Props for the ResponsiveLayoutTable component.
152
+ * @typeParam T - The type of data objects in each row. Must include an
153
+ * `id: string | number` field so each row has a stable React key —
154
+ * keying by index corrupts focus / selection / animation state when
155
+ * rows reorder, filter, or paginate.
156
+ */
157
+ export interface ResponsiveLayoutTableProps<T extends {
158
+ id: string | number;
159
+ }> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'> {
160
+ /** Array of data objects where each item represents one table row. */
161
+ data: T[];
162
+ /**
163
+ * Array of layout configurations ordered from largest to smallest breakpoint.
164
+ * The first layout whose `responsive` matches wins. The last layout should
165
+ * omit `responsive` (fallback for smallest viewports).
166
+ *
167
+ * Uses the same pattern as ExpandableTable's column `responsive` prop:
168
+ * - Named breakpoint (`'xs'..'3xl'`): resolved internally via hooks.
169
+ * - Boolean: consumer controls it with their own `useMediaQuery()`.
170
+ *
171
+ * @example
172
+ * ```tsx
173
+ * layouts={[
174
+ * { responsive: 'lg', columns: desktopColumns },
175
+ * { responsive: 'md', columns: tabletColumns },
176
+ * { showHeader: false, columns: phoneColumns },
177
+ * ]}
178
+ * ```
179
+ */
180
+ layouts: ResponsiveLayoutTableLayout<T>[];
181
+ /**
182
+ * Fires when a row is clicked. When provided and not `disabled`, rows become
183
+ * interactive: pointer cursor, keyboard-activatable, and a hover border.
184
+ */
185
+ onRowClick?: (rowData: T, rowIndex: number) => void;
186
+ /** Prevents interaction and applies muted text colors. @default false */
187
+ disabled?: boolean;
188
+ /**
189
+ * Predicate that marks a row as "new", applying the
190
+ * `bg-comp-responsive-layout-table-bg-success` tint. On interactive rows,
191
+ * hover and focus-visible backgrounds visually override the new-state tint.
192
+ */
193
+ isRowNew?: (rowData: T, rowIndex: number) => boolean;
194
+ /**
195
+ * Predicate that marks a row as loading. Each cell renders its column
196
+ * `skeleton` (or a default bar) instead of the normal content, and the row
197
+ * becomes non-interactive regardless of `onRowClick`. The `isRowNew` tint is
198
+ * also suppressed for loading rows.
199
+ *
200
+ * Use for initial load (an array of empty objects with the predicate always
201
+ * returning true) and for pagination (append placeholder rows after real
202
+ * data and detect them in the predicate).
203
+ */
204
+ isRowLoading?: (rowData: T, rowIndex: number) => boolean;
205
+ /**
206
+ * When `true`, row backgrounds (new/hover/focus) render via a `::before`
207
+ * pseudo-element sized to the row (zero bleed by default). The outer
208
+ * wrapper switches to `overflow: visible` in this mode — horizontal
209
+ * scrolling is disabled, so only use when your active layout fits the
210
+ * viewport (typically the phone layout).
211
+ *
212
+ * Pair with `classNames.rowBackgroundInset` to extend the tint past any
213
+ * edge — typically to bleed through the surrounding card's horizontal
214
+ * padding, and (via `first:` / `last:`) its top and bottom padding.
215
+ * @default false
216
+ */
217
+ overflowingRowBackground?: boolean;
218
+ /** className overrides for sub-elements. */
219
+ classNames?: ResponsiveLayoutTableClassNames;
220
+ /**
221
+ * Controls how column widths are calculated, mirroring the CSS
222
+ * `table-layout` property.
223
+ *
224
+ * - `'auto'` (default): Columns size based on their content. This is more
225
+ * flexible. In case of overflow the content is scrollable.
226
+ * - `'fixed'`: Columns use fixed widths (from column definitions or equal
227
+ * distribution). This is more predictable and performs better for large
228
+ * datasets, but content may truncate.
229
+ *
230
+ * @default 'auto'
231
+ */
232
+ tableLayout?: 'auto' | 'fixed';
233
+ }
234
+ /**
235
+ * A responsive table that switches between completely different column layouts
236
+ * at configurable breakpoints. Each layout defines its own set of columns with
237
+ * independent headers and render functions, enabling compressed tablet views
238
+ * (stacked cells) and phone card layouts (single full-width column) — not just
239
+ * hidden columns.
240
+ *
241
+ * Supports named Tailwind breakpoints and arbitrary boolean values for custom
242
+ * thresholds. Rows become interactive when `onRowClick` is provided (pointer
243
+ * cursor, keyboard-activatable, hover border). Loading rows are driven by the
244
+ * `isRowLoading` predicate and render per-column `skeleton` placeholders.
245
+ *
246
+ * @typeParam T - The type of data objects in each row. Must include an
247
+ * `id: string | number` field so rows receive a stable React key.
248
+ *
249
+ * @example
250
+ * ```tsx
251
+ * <ResponsiveLayoutTable
252
+ * data={transactions}
253
+ * layouts={[
254
+ * { responsive: 'lg', columns: desktopColumns },
255
+ * { responsive: 'md', columns: tabletColumns },
256
+ * { showHeader: false, columns: phoneColumns },
257
+ * ]}
258
+ * onRowClick={(row) => navigate(`/transactions/${row.id}`)}
259
+ * />
260
+ * ```
261
+ */
262
+ declare const ResponsiveLayoutTable: <T extends {
263
+ id: string | number;
264
+ }>({ data, layouts, onRowClick, disabled, isRowNew, isRowLoading, overflowingRowBackground, classNames, tableLayout, ...props }: ResponsiveLayoutTableProps<T>) => import("react/jsx-runtime").JSX.Element;
265
+ export { ResponsiveLayoutTable };
266
+ //# sourceMappingURL=ResponsiveLayoutTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveLayoutTable.d.ts","sourceRoot":"","sources":["../../../src/components/ResponsiveLayoutTable/ResponsiveLayoutTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { ResponsiveLayoutTableColumn, ResponsiveLayoutTableLayout } from './ResponsiveLayoutTable';
2
+ export interface Transaction {
3
+ id: string;
4
+ date: string;
5
+ time: string;
6
+ customer: string;
7
+ transactionCode: string;
8
+ status: 'warning' | 'success' | 'info' | 'error';
9
+ statusLabel: string;
10
+ amount: number;
11
+ originalAmount?: number;
12
+ isNew?: boolean;
13
+ }
14
+ export declare const formatKc: (value: number) => string;
15
+ export declare const transactions: Transaction[];
16
+ interface CellProps {
17
+ row: Transaction;
18
+ disabled?: boolean;
19
+ }
20
+ export declare const DateTimeCell: ({ row, disabled }: CellProps) => import("react/jsx-runtime").JSX.Element;
21
+ export declare const DateTimeCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
22
+ export declare const CustomerCell: ({ row, disabled }: CellProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const CustomerCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
24
+ export declare const TransactionCodeCell: ({ row, disabled }: CellProps) => import("react/jsx-runtime").JSX.Element;
25
+ export declare const TransactionCodeCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
26
+ export declare const StatusCell: ({ row, disabled }: CellProps) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const StatusCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
28
+ export declare const AmountCell: ({ row, disabled, hideOriginalAmount, }: CellProps & {
29
+ hideOriginalAmount?: boolean;
30
+ }) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const AmountCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
32
+ export declare const ActionArrowCell: ({ row, disabled }: CellProps) => import("react/jsx-runtime").JSX.Element;
33
+ export declare const ActionArrowCellSkeleton: () => import("react/jsx-runtime").JSX.Element;
34
+ export declare const desktopColumns: ResponsiveLayoutTableColumn<Transaction>[];
35
+ export declare const tabletColumns: ResponsiveLayoutTableColumn<Transaction>[];
36
+ export declare const phoneColumns: ResponsiveLayoutTableColumn<Transaction>[];
37
+ export declare const layouts: ResponsiveLayoutTableLayout<Transaction>[];
38
+ export {};
39
+ //# sourceMappingURL=ResponsiveLayoutTable.examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveLayoutTable.examples.d.ts","sourceRoot":"","sources":["../../../src/components/ResponsiveLayoutTable/ResponsiveLayoutTable.examples.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAA;AAIhC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAID,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,WAC+B,CAAA;AAIrE,eAAO,MAAM,YAAY,EAAE,WAAW,EAkCrC,CAAA;AAID,UAAU,SAAS;IACjB,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,eAAO,MAAM,YAAY,GAAI,mBAAmB,SAAS,4CAyBxD,CAAA;AAED,eAAO,MAAM,oBAAoB,+CAKhC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,mBAAmB,SAAS,4CAaxD,CAAA;AAED,eAAO,MAAM,oBAAoB,+CAEhC,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,mBAAmB,SAAS,4CAwC/D,CAAA;AAED,eAAO,MAAM,2BAA2B,+CAKvC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mBAAmB,SAAS,4CAItD,CAAA;AAED,eAAO,MAAM,kBAAkB,+CAE9B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,wCAIxB,SAAS,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,4CAgC9C,CAAA;AAED,eAAO,MAAM,kBAAkB,+CAE9B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,mBAAmB,SAAS,4CAmC3D,CAAA;AAED,eAAO,MAAM,uBAAuB,+CAKnC,CAAA;AAID,eAAO,MAAM,cAAc,EAAE,2BAA2B,CAAC,WAAW,CAAC,EAsDpE,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,2BAA2B,CAAC,WAAW,CAAC,EAqEnE,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,2BAA2B,CAAC,WAAW,CAAC,EA2BlE,CAAA;AAID,eAAO,MAAM,OAAO,EAAE,2BAA2B,CAAC,WAAW,CAAC,EAI7D,CAAA"}