@sectile/vue 0.6.0 → 0.8.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 (325) hide show
  1. package/README.md +4 -2
  2. package/dist/accordion.d.ts +0 -1
  3. package/dist/alert-dialog.d.ts +0 -2
  4. package/dist/alert-dialog.js.map +1 -1
  5. package/dist/calendar.d.ts +14 -268
  6. package/dist/calendar.js +15 -15
  7. package/dist/calendar.js.map +1 -1
  8. package/dist/carousel.d.ts +22 -1
  9. package/dist/carousel.js +7 -1
  10. package/dist/carousel.js.map +1 -1
  11. package/dist/cascade-list.d.ts +339 -0
  12. package/dist/cascade-list.js +240 -0
  13. package/dist/cascade-list.js.map +1 -0
  14. package/dist/cascade-select.d.ts +11 -42
  15. package/dist/cascade-select.js +19 -27
  16. package/dist/cascade-select.js.map +1 -1
  17. package/dist/checkbox-group.d.ts +9 -1
  18. package/dist/checkbox-group.js +57 -13
  19. package/dist/checkbox-group.js.map +1 -1
  20. package/dist/checkbox.d.ts +0 -1
  21. package/dist/checkbox.js +15 -8
  22. package/dist/checkbox.js.map +1 -1
  23. package/dist/color-picker.d.ts +0 -1
  24. package/dist/combobox.d.ts +0 -1
  25. package/dist/combobox.js +46 -6
  26. package/dist/combobox.js.map +1 -1
  27. package/dist/data-grid.d.ts +214 -0
  28. package/dist/data-grid.js +107 -0
  29. package/dist/data-grid.js.map +1 -0
  30. package/dist/data-table.d.ts +232 -0
  31. package/dist/data-table.js +116 -0
  32. package/dist/data-table.js.map +1 -0
  33. package/dist/data-tree-grid.d.ts +225 -0
  34. package/dist/data-tree-grid.js +98 -0
  35. package/dist/data-tree-grid.js.map +1 -0
  36. package/dist/date-field.d.ts +2 -3
  37. package/dist/date-field.js +1 -1
  38. package/dist/date-field.js.map +1 -1
  39. package/dist/date-picker.d.ts +35 -427
  40. package/dist/date-picker.js +15 -13
  41. package/dist/date-picker.js.map +1 -1
  42. package/dist/date-range-field.d.ts +2 -3
  43. package/dist/date-range-field.js +24 -6
  44. package/dist/date-range-field.js.map +1 -1
  45. package/dist/date-range-picker.d.ts +35 -427
  46. package/dist/date-range-picker.js +15 -13
  47. package/dist/date-range-picker.js.map +1 -1
  48. package/dist/date-time-field.d.ts +2 -3
  49. package/dist/date-time-field.js +1 -1
  50. package/dist/date-time-field.js.map +1 -1
  51. package/dist/date-time-picker.d.ts +36 -428
  52. package/dist/date-time-picker.js +15 -13
  53. package/dist/date-time-picker.js.map +1 -1
  54. package/dist/date-time-range-picker.d.ts +36 -428
  55. package/dist/date-time-range-picker.js +15 -13
  56. package/dist/date-time-range-picker.js.map +1 -1
  57. package/dist/dialog.d.ts +0 -2
  58. package/dist/dialog.js.map +1 -1
  59. package/dist/disclosure.d.ts +0 -1
  60. package/dist/drawer.d.ts +1 -2
  61. package/dist/editable.d.ts +0 -1
  62. package/dist/editable.js +25 -6
  63. package/dist/editable.js.map +1 -1
  64. package/dist/feed.d.ts +0 -1
  65. package/dist/form.d.ts +88 -115
  66. package/dist/form.js +461 -233
  67. package/dist/form.js.map +1 -1
  68. package/dist/grid.d.ts +0 -1
  69. package/dist/grid.js +51 -6
  70. package/dist/grid.js.map +1 -1
  71. package/dist/host-provider.d.ts +0 -13
  72. package/dist/host-provider.js +0 -16
  73. package/dist/host-provider.js.map +1 -1
  74. package/dist/index.d.ts +14 -39
  75. package/dist/index.js +6 -19
  76. package/dist/index.js.map +1 -1
  77. package/dist/internal/cascade-choice.d.ts +204 -0
  78. package/dist/internal/cascade-choice.js +161 -0
  79. package/dist/internal/cascade-choice.js.map +1 -0
  80. package/dist/internal/collection.d.ts +3 -8
  81. package/dist/internal/collection.js +14 -20
  82. package/dist/internal/collection.js.map +1 -1
  83. package/dist/internal/controlled-state.d.ts +0 -1
  84. package/dist/internal/date-picker.d.ts +91 -141
  85. package/dist/internal/date-picker.js +146 -52
  86. package/dist/internal/date-picker.js.map +1 -1
  87. package/dist/internal/decimal-input.d.ts +1 -0
  88. package/dist/internal/decimal-input.js +24 -0
  89. package/dist/internal/decimal-input.js.map +1 -0
  90. package/dist/internal/form-control-inventory.d.ts +4 -1
  91. package/dist/internal/form-control-inventory.js +1 -0
  92. package/dist/internal/form-control-inventory.js.map +1 -1
  93. package/dist/internal/form-control.d.ts +100 -2
  94. package/dist/internal/form-control.js +103 -1
  95. package/dist/internal/form-control.js.map +1 -1
  96. package/dist/internal/native-field.d.ts +7 -8
  97. package/dist/internal/native-field.js +11 -2
  98. package/dist/internal/native-field.js.map +1 -1
  99. package/dist/internal/native-input.d.ts +0 -1
  100. package/dist/internal/part-contract.d.ts +0 -1
  101. package/dist/internal/popup.d.ts +5 -27
  102. package/dist/internal/popup.js +14 -20
  103. package/dist/internal/popup.js.map +1 -1
  104. package/dist/internal/presence.d.ts +0 -1
  105. package/dist/internal/scheduled-task.d.ts +5 -0
  106. package/dist/internal/scheduled-task.js +28 -0
  107. package/dist/internal/scheduled-task.js.map +1 -0
  108. package/dist/internal/tabs-context.d.ts +2 -3
  109. package/dist/internal/tabular-components.d.ts +27 -0
  110. package/dist/internal/tabular-components.js +26 -0
  111. package/dist/internal/tabular-components.js.map +1 -0
  112. package/dist/internal/tabular-parts.d.ts +57 -0
  113. package/dist/internal/tabular-parts.js +239 -0
  114. package/dist/internal/tabular-parts.js.map +1 -0
  115. package/dist/internal/tabular-profile.d.ts +75 -0
  116. package/dist/internal/tabular-profile.js +209 -0
  117. package/dist/internal/tabular-profile.js.map +1 -0
  118. package/dist/internal/virtual-collection-model.d.ts +42 -0
  119. package/dist/internal/virtual-collection-model.js +241 -0
  120. package/dist/internal/virtual-collection-model.js.map +1 -0
  121. package/dist/internal/virtual-collection.d.ts +38 -0
  122. package/dist/internal/virtual-collection.js +87 -0
  123. package/dist/internal/virtual-collection.js.map +1 -0
  124. package/dist/{virtual.d.ts → internal/virtual-core.d.ts} +14 -9
  125. package/dist/{virtual.js → internal/virtual-core.js} +18 -13
  126. package/dist/internal/virtual-core.js.map +1 -0
  127. package/dist/internal/virtual-list.d.ts +214 -0
  128. package/dist/internal/virtual-list.js +401 -0
  129. package/dist/internal/virtual-list.js.map +1 -0
  130. package/dist/listbox.d.ts +0 -1
  131. package/dist/listbox.js +52 -6
  132. package/dist/listbox.js.map +1 -1
  133. package/dist/menu-button.d.ts +0 -1
  134. package/dist/menu.d.ts +262 -317
  135. package/dist/menu.js +29 -23
  136. package/dist/menu.js.map +1 -1
  137. package/dist/menubar.d.ts +0 -1
  138. package/dist/meter-group.d.ts +369 -0
  139. package/dist/meter-group.js +271 -0
  140. package/dist/meter-group.js.map +1 -0
  141. package/dist/meter.d.ts +191 -0
  142. package/dist/meter.js +133 -0
  143. package/dist/meter.js.map +1 -0
  144. package/dist/month-picker.d.ts +29 -259
  145. package/dist/month-picker.js +8 -6
  146. package/dist/month-picker.js.map +1 -1
  147. package/dist/month-range-picker.d.ts +29 -259
  148. package/dist/month-range-picker.js +8 -6
  149. package/dist/month-range-picker.js.map +1 -1
  150. package/dist/multi-thumb-slider.d.ts +0 -1
  151. package/dist/navigation-menu.d.ts +0 -1
  152. package/dist/number-field.d.ts +2 -2
  153. package/dist/number-field.js +1 -1
  154. package/dist/number-field.js.map +1 -1
  155. package/dist/pagination.d.ts +23 -2
  156. package/dist/pagination.js +6 -1
  157. package/dist/pagination.js.map +1 -1
  158. package/dist/pin-input.d.ts +0 -1
  159. package/dist/pin-input.js +1 -1
  160. package/dist/pin-input.js.map +1 -1
  161. package/dist/popover.d.ts +0 -2
  162. package/dist/popover.js.map +1 -1
  163. package/dist/primitive.d.ts +0 -1
  164. package/dist/primitive.js +8 -4
  165. package/dist/primitive.js.map +1 -1
  166. package/dist/progress.d.ts +148 -0
  167. package/dist/progress.js +110 -0
  168. package/dist/progress.js.map +1 -0
  169. package/dist/quantity-field.d.ts +0 -1
  170. package/dist/radio-group.d.ts +0 -1
  171. package/dist/radio-group.js +1 -1
  172. package/dist/radio-group.js.map +1 -1
  173. package/dist/range-calendar.d.ts +14 -298
  174. package/dist/range-calendar.js +7 -7
  175. package/dist/range-calendar.js.map +1 -1
  176. package/dist/rating.d.ts +0 -1
  177. package/dist/rating.js +10 -1
  178. package/dist/rating.js.map +1 -1
  179. package/dist/reorder.d.ts +1 -2
  180. package/dist/select.d.ts +24 -50
  181. package/dist/select.js +11 -13
  182. package/dist/select.js.map +1 -1
  183. package/dist/slider.d.ts +0 -1
  184. package/dist/spin-button.d.ts +9 -7
  185. package/dist/spin-button.js +17 -4
  186. package/dist/spin-button.js.map +1 -1
  187. package/dist/stepper.d.ts +0 -1
  188. package/dist/stepper.js +19 -2
  189. package/dist/stepper.js.map +1 -1
  190. package/dist/switch.d.ts +0 -1
  191. package/dist/tabs.d.ts +0 -1
  192. package/dist/tabs.js +4 -22
  193. package/dist/tabs.js.map +1 -1
  194. package/dist/tags-input.d.ts +0 -1
  195. package/dist/tags-input.js +18 -5
  196. package/dist/tags-input.js.map +1 -1
  197. package/dist/temporal-provider.d.ts +21 -0
  198. package/dist/temporal-provider.js +30 -0
  199. package/dist/temporal-provider.js.map +1 -0
  200. package/dist/text.d.ts +0 -1
  201. package/dist/text.js +18 -4
  202. package/dist/text.js.map +1 -1
  203. package/dist/time-field.d.ts +2 -3
  204. package/dist/time-field.js +1 -1
  205. package/dist/time-field.js.map +1 -1
  206. package/dist/time-range-field.d.ts +2 -2
  207. package/dist/time-range-field.js +6 -4
  208. package/dist/time-range-field.js.map +1 -1
  209. package/dist/timer.d.ts +0 -1
  210. package/dist/toast.d.ts +11 -2
  211. package/dist/toast.js +22 -9
  212. package/dist/toast.js.map +1 -1
  213. package/dist/toggle-button.d.ts +0 -1
  214. package/dist/toggle-group.d.ts +0 -1
  215. package/dist/toggle-group.js +1 -1
  216. package/dist/toggle-group.js.map +1 -1
  217. package/dist/toolbar.d.ts +0 -1
  218. package/dist/tooltip.d.ts +1 -3
  219. package/dist/tooltip.js.map +1 -1
  220. package/dist/tree-grid.d.ts +0 -1
  221. package/dist/tree-grid.js +62 -8
  222. package/dist/tree-grid.js.map +1 -1
  223. package/dist/tree-view.d.ts +0 -1
  224. package/dist/tree-view.js +51 -10
  225. package/dist/tree-view.js.map +1 -1
  226. package/dist/virtual-core.d.ts +1 -0
  227. package/dist/virtual-core.js +2 -0
  228. package/dist/virtual-core.js.map +1 -0
  229. package/dist/virtual-grid.d.ts +188 -0
  230. package/dist/virtual-grid.js +306 -0
  231. package/dist/virtual-grid.js.map +1 -0
  232. package/dist/virtual-list.d.ts +1 -0
  233. package/dist/virtual-list.js +2 -0
  234. package/dist/virtual-list.js.map +1 -0
  235. package/dist/virtual-masonry.d.ts +198 -0
  236. package/dist/virtual-masonry.js +221 -0
  237. package/dist/virtual-masonry.js.map +1 -0
  238. package/dist/virtual-spatial.d.ts +157 -0
  239. package/dist/virtual-spatial.js +159 -0
  240. package/dist/virtual-spatial.js.map +1 -0
  241. package/dist/window-splitter.d.ts +0 -1
  242. package/dist/year-picker.d.ts +29 -259
  243. package/dist/year-picker.js +8 -6
  244. package/dist/year-picker.js.map +1 -1
  245. package/dist/year-range-picker.d.ts +29 -259
  246. package/dist/year-range-picker.js +8 -6
  247. package/dist/year-range-picker.js.map +1 -1
  248. package/package.json +174 -87
  249. package/dist/accordion.d.ts.map +0 -1
  250. package/dist/alert-dialog.d.ts.map +0 -1
  251. package/dist/calendar.d.ts.map +0 -1
  252. package/dist/carousel.d.ts.map +0 -1
  253. package/dist/cascade-select.d.ts.map +0 -1
  254. package/dist/checkbox-group.d.ts.map +0 -1
  255. package/dist/checkbox.d.ts.map +0 -1
  256. package/dist/color-picker.d.ts.map +0 -1
  257. package/dist/combobox.d.ts.map +0 -1
  258. package/dist/date-field.d.ts.map +0 -1
  259. package/dist/date-picker.d.ts.map +0 -1
  260. package/dist/date-range-field.d.ts.map +0 -1
  261. package/dist/date-range-picker.d.ts.map +0 -1
  262. package/dist/date-time-field.d.ts.map +0 -1
  263. package/dist/date-time-picker.d.ts.map +0 -1
  264. package/dist/date-time-range-picker.d.ts.map +0 -1
  265. package/dist/dialog.d.ts.map +0 -1
  266. package/dist/disclosure.d.ts.map +0 -1
  267. package/dist/drawer.d.ts.map +0 -1
  268. package/dist/editable.d.ts.map +0 -1
  269. package/dist/feed.d.ts.map +0 -1
  270. package/dist/form.d.ts.map +0 -1
  271. package/dist/grid.d.ts.map +0 -1
  272. package/dist/host-provider.d.ts.map +0 -1
  273. package/dist/index.d.ts.map +0 -1
  274. package/dist/internal/collection.d.ts.map +0 -1
  275. package/dist/internal/controlled-state.d.ts.map +0 -1
  276. package/dist/internal/date-picker.d.ts.map +0 -1
  277. package/dist/internal/form-control-inventory.d.ts.map +0 -1
  278. package/dist/internal/form-control.d.ts.map +0 -1
  279. package/dist/internal/native-field.d.ts.map +0 -1
  280. package/dist/internal/native-input.d.ts.map +0 -1
  281. package/dist/internal/part-contract.d.ts.map +0 -1
  282. package/dist/internal/popup.d.ts.map +0 -1
  283. package/dist/internal/presence.d.ts.map +0 -1
  284. package/dist/internal/tabs-context.d.ts.map +0 -1
  285. package/dist/listbox.d.ts.map +0 -1
  286. package/dist/menu-button.d.ts.map +0 -1
  287. package/dist/menu.d.ts.map +0 -1
  288. package/dist/menubar.d.ts.map +0 -1
  289. package/dist/month-picker.d.ts.map +0 -1
  290. package/dist/month-range-picker.d.ts.map +0 -1
  291. package/dist/multi-thumb-slider.d.ts.map +0 -1
  292. package/dist/navigation-menu.d.ts.map +0 -1
  293. package/dist/number-field.d.ts.map +0 -1
  294. package/dist/pagination.d.ts.map +0 -1
  295. package/dist/pin-input.d.ts.map +0 -1
  296. package/dist/popover.d.ts.map +0 -1
  297. package/dist/primitive.d.ts.map +0 -1
  298. package/dist/quantity-field.d.ts.map +0 -1
  299. package/dist/radio-group.d.ts.map +0 -1
  300. package/dist/range-calendar.d.ts.map +0 -1
  301. package/dist/rating.d.ts.map +0 -1
  302. package/dist/reorder.d.ts.map +0 -1
  303. package/dist/select.d.ts.map +0 -1
  304. package/dist/slider.d.ts.map +0 -1
  305. package/dist/spin-button.d.ts.map +0 -1
  306. package/dist/stepper.d.ts.map +0 -1
  307. package/dist/switch.d.ts.map +0 -1
  308. package/dist/tabs.d.ts.map +0 -1
  309. package/dist/tags-input.d.ts.map +0 -1
  310. package/dist/text.d.ts.map +0 -1
  311. package/dist/time-field.d.ts.map +0 -1
  312. package/dist/time-range-field.d.ts.map +0 -1
  313. package/dist/timer.d.ts.map +0 -1
  314. package/dist/toast.d.ts.map +0 -1
  315. package/dist/toggle-button.d.ts.map +0 -1
  316. package/dist/toggle-group.d.ts.map +0 -1
  317. package/dist/toolbar.d.ts.map +0 -1
  318. package/dist/tooltip.d.ts.map +0 -1
  319. package/dist/tree-grid.d.ts.map +0 -1
  320. package/dist/tree-view.d.ts.map +0 -1
  321. package/dist/virtual.d.ts.map +0 -1
  322. package/dist/virtual.js.map +0 -1
  323. package/dist/window-splitter.d.ts.map +0 -1
  324. package/dist/year-picker.d.ts.map +0 -1
  325. package/dist/year-range-picker.d.ts.map +0 -1
@@ -0,0 +1,339 @@
1
+ import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
+ import { type CascadeListItemDefinition, type CascadeListPolicies } from '@sectile/dom/cascade-list';
3
+ import { type PrimitiveAs } from './primitive.js';
4
+ import { type CascadeChoiceColumnProps, type CascadeChoiceColumnSlotProps, type CascadeChoiceItemProps, type CascadeChoiceItemSlotProps, type CascadeChoicePartProps, type CascadeChoiceRootState } from './internal/cascade-choice.js';
5
+ export interface CascadeListRootProps {
6
+ readonly nodes: readonly CascadeListItemDefinition<string>[];
7
+ readonly modelValue?: string | null;
8
+ readonly defaultValue?: string | null;
9
+ readonly disabledItems?: readonly string[];
10
+ readonly disabled?: boolean;
11
+ readonly?: boolean;
12
+ readonly label?: string;
13
+ readonly name?: string;
14
+ readonly form?: string;
15
+ readonly required?: boolean;
16
+ readonly textValue?: (id: string) => string;
17
+ readonly policies?: CascadeListPolicies<string>;
18
+ readonly as?: PrimitiveAs;
19
+ readonly asChild?: boolean;
20
+ }
21
+ export type CascadeListTextValueResolver = NonNullable<CascadeListRootProps['textValue']>;
22
+ export interface CascadeListRootSlotProps extends CascadeChoiceRootState {
23
+ }
24
+ export type CascadeListColumnProps = CascadeChoiceColumnProps;
25
+ export type CascadeListColumnSlotProps = CascadeChoiceColumnSlotProps;
26
+ export type CascadeListItemProps = CascadeChoiceItemProps;
27
+ export type CascadeListItemSlotProps = CascadeChoiceItemSlotProps;
28
+ export type CascadeListPartProps = CascadeChoicePartProps;
29
+ export declare const CascadeListRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
30
+ nodes: {
31
+ type: PropType<readonly CascadeListItemDefinition<string>[]>;
32
+ required: true;
33
+ };
34
+ modelValue: {
35
+ type: PropType<string | null>;
36
+ default: undefined;
37
+ };
38
+ defaultValue: {
39
+ type: PropType<string | null>;
40
+ default: null;
41
+ };
42
+ disabledItems: {
43
+ type: PropType<readonly string[]>;
44
+ default: () => never[];
45
+ };
46
+ disabled: {
47
+ type: BooleanConstructor;
48
+ default: boolean;
49
+ };
50
+ readonly: {
51
+ type: BooleanConstructor;
52
+ default: boolean;
53
+ };
54
+ label: {
55
+ type: StringConstructor;
56
+ default: undefined;
57
+ };
58
+ name: {
59
+ type: StringConstructor;
60
+ default: undefined;
61
+ };
62
+ form: {
63
+ type: StringConstructor;
64
+ default: undefined;
65
+ };
66
+ required: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
70
+ textValue: {
71
+ type: PropType<CascadeListTextValueResolver>;
72
+ default: undefined;
73
+ };
74
+ policies: {
75
+ type: PropType<CascadeListPolicies<string>>;
76
+ default: undefined;
77
+ };
78
+ as: {
79
+ type: PropType<PrimitiveAs>;
80
+ default: string;
81
+ };
82
+ asChild: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
87
+ 'update:modelValue': (_value: string | null) => boolean;
88
+ highlight: (_value: string | null) => boolean;
89
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
90
+ nodes: {
91
+ type: PropType<readonly CascadeListItemDefinition<string>[]>;
92
+ required: true;
93
+ };
94
+ modelValue: {
95
+ type: PropType<string | null>;
96
+ default: undefined;
97
+ };
98
+ defaultValue: {
99
+ type: PropType<string | null>;
100
+ default: null;
101
+ };
102
+ disabledItems: {
103
+ type: PropType<readonly string[]>;
104
+ default: () => never[];
105
+ };
106
+ disabled: {
107
+ type: BooleanConstructor;
108
+ default: boolean;
109
+ };
110
+ readonly: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ label: {
115
+ type: StringConstructor;
116
+ default: undefined;
117
+ };
118
+ name: {
119
+ type: StringConstructor;
120
+ default: undefined;
121
+ };
122
+ form: {
123
+ type: StringConstructor;
124
+ default: undefined;
125
+ };
126
+ required: {
127
+ type: BooleanConstructor;
128
+ default: boolean;
129
+ };
130
+ textValue: {
131
+ type: PropType<CascadeListTextValueResolver>;
132
+ default: undefined;
133
+ };
134
+ policies: {
135
+ type: PropType<CascadeListPolicies<string>>;
136
+ default: undefined;
137
+ };
138
+ as: {
139
+ type: PropType<PrimitiveAs>;
140
+ default: string;
141
+ };
142
+ asChild: {
143
+ type: BooleanConstructor;
144
+ default: boolean;
145
+ };
146
+ }>> & Readonly<{
147
+ onHighlight?: (_value: string | null) => any;
148
+ "onUpdate:modelValue"?: (_value: string | null) => any;
149
+ }>, {
150
+ modelValue: string | null;
151
+ defaultValue: string | null;
152
+ disabledItems: readonly string[];
153
+ disabled: boolean;
154
+ readonly: boolean;
155
+ label: string;
156
+ name: string;
157
+ form: string;
158
+ required: boolean;
159
+ textValue: (id: string) => string;
160
+ policies: CascadeListPolicies<string>;
161
+ as: PrimitiveAs;
162
+ asChild: boolean;
163
+ }, SlotsType<{
164
+ default: (props: CascadeListRootSlotProps) => VNodeChild;
165
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
166
+ export type CascadeListValueChangeHandler = (value: string | null) => void;
167
+ export type CascadeListHighlightHandler = (value: string | null) => void;
168
+ export declare const CascadeListValue: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
169
+ as: {
170
+ type: PropType<PrimitiveAs>;
171
+ default: string;
172
+ };
173
+ asChild: {
174
+ type: BooleanConstructor;
175
+ default: boolean;
176
+ };
177
+ placeholder: {
178
+ type: StringConstructor;
179
+ default: string;
180
+ };
181
+ separator: {
182
+ type: StringConstructor;
183
+ default: string;
184
+ };
185
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
186
+ as: {
187
+ type: PropType<PrimitiveAs>;
188
+ default: string;
189
+ };
190
+ asChild: {
191
+ type: BooleanConstructor;
192
+ default: boolean;
193
+ };
194
+ placeholder: {
195
+ type: StringConstructor;
196
+ default: string;
197
+ };
198
+ separator: {
199
+ type: StringConstructor;
200
+ default: string;
201
+ };
202
+ }>> & Readonly<{}>, {
203
+ as: PrimitiveAs;
204
+ asChild: boolean;
205
+ placeholder: string;
206
+ separator: string;
207
+ }, SlotsType<{
208
+ default: (props: CascadeListRootSlotProps) => VNodeChild;
209
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
210
+ export declare const CascadeListColumn: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
211
+ depth: {
212
+ type: NumberConstructor;
213
+ required: true;
214
+ };
215
+ label: {
216
+ type: StringConstructor;
217
+ default: undefined;
218
+ };
219
+ as: {
220
+ type: PropType<PrimitiveAs>;
221
+ default: string;
222
+ };
223
+ asChild: {
224
+ type: BooleanConstructor;
225
+ default: boolean;
226
+ };
227
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
228
+ depth: {
229
+ type: NumberConstructor;
230
+ required: true;
231
+ };
232
+ label: {
233
+ type: StringConstructor;
234
+ default: undefined;
235
+ };
236
+ as: {
237
+ type: PropType<PrimitiveAs>;
238
+ default: string;
239
+ };
240
+ asChild: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ }>> & Readonly<{}>, {
245
+ label: string;
246
+ as: PrimitiveAs;
247
+ asChild: boolean;
248
+ }, SlotsType<{
249
+ default: (props: CascadeChoiceColumnSlotProps) => VNodeChild;
250
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
251
+ export declare const CascadeListItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
252
+ value: {
253
+ type: StringConstructor;
254
+ required: true;
255
+ };
256
+ disabled: {
257
+ type: BooleanConstructor;
258
+ default: boolean;
259
+ };
260
+ as: {
261
+ type: PropType<PrimitiveAs>;
262
+ default: string;
263
+ };
264
+ asChild: {
265
+ type: BooleanConstructor;
266
+ default: boolean;
267
+ };
268
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
269
+ value: {
270
+ type: StringConstructor;
271
+ required: true;
272
+ };
273
+ disabled: {
274
+ type: BooleanConstructor;
275
+ default: boolean;
276
+ };
277
+ as: {
278
+ type: PropType<PrimitiveAs>;
279
+ default: string;
280
+ };
281
+ asChild: {
282
+ type: BooleanConstructor;
283
+ default: boolean;
284
+ };
285
+ }>> & Readonly<{}>, {
286
+ disabled: boolean;
287
+ as: PrimitiveAs;
288
+ asChild: boolean;
289
+ }, SlotsType<{
290
+ default: (props: CascadeChoiceItemSlotProps) => VNodeChild;
291
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
292
+ export declare const CascadeListItemIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
293
+ as: {
294
+ type: PropType<PrimitiveAs>;
295
+ default: string;
296
+ };
297
+ asChild: {
298
+ type: BooleanConstructor;
299
+ default: boolean;
300
+ };
301
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
302
+ as: {
303
+ type: PropType<PrimitiveAs>;
304
+ default: string;
305
+ };
306
+ asChild: {
307
+ type: BooleanConstructor;
308
+ default: boolean;
309
+ };
310
+ }>> & Readonly<{}>, {
311
+ as: PrimitiveAs;
312
+ asChild: boolean;
313
+ }, SlotsType<{
314
+ default: (props: CascadeChoiceItemSlotProps) => VNodeChild;
315
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
316
+ export declare const CascadeListItemChevron: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
317
+ as: {
318
+ type: PropType<PrimitiveAs>;
319
+ default: string;
320
+ };
321
+ asChild: {
322
+ type: BooleanConstructor;
323
+ default: boolean;
324
+ };
325
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
326
+ as: {
327
+ type: PropType<PrimitiveAs>;
328
+ default: string;
329
+ };
330
+ asChild: {
331
+ type: BooleanConstructor;
332
+ default: boolean;
333
+ };
334
+ }>> & Readonly<{}>, {
335
+ as: PrimitiveAs;
336
+ asChild: boolean;
337
+ }, SlotsType<{
338
+ default: (props: CascadeChoiceItemSlotProps) => VNodeChild;
339
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,240 @@
1
+ import { computed, defineComponent, h, inject, mergeProps, onBeforeUnmount, onMounted, provide, shallowRef, watch, } from 'vue';
2
+ import { createCascadeList, } from '@sectile/dom/cascade-list';
3
+ import { Primitive } from './primitive.js';
4
+ import { visuallyHiddenInputStyle } from './internal/native-input.js';
5
+ import { provideFormControlOwner } from './internal/form-control.js';
6
+ import { hiddenSelectSubmissionCapabilities, useCompositeFormControl, } from './internal/form-control.js';
7
+ import { useControlledStateInvariant } from './internal/controlled-state.js';
8
+ import { cascadeBranchItems, cascadeChoicePartProps, cascadeItemPath, createCascadeChoiceParts, initialCascadeColumns, } from './internal/cascade-choice.js';
9
+ const rootKey = Symbol('SectileCascadeListRoot');
10
+ const itemKey = Symbol('SectileCascadeListItem');
11
+ const partProps = cascadeChoicePartProps;
12
+ export const CascadeListRoot = defineComponent({
13
+ name: 'SectileCascadeListRoot',
14
+ inheritAttrs: false,
15
+ props: {
16
+ nodes: { type: Array, required: true },
17
+ modelValue: { type: String, default: undefined },
18
+ defaultValue: { type: String, default: null },
19
+ disabledItems: { type: Array, default: () => [] },
20
+ disabled: { type: Boolean, default: false },
21
+ readonly: { type: Boolean, default: false },
22
+ label: { type: String, default: undefined },
23
+ name: { type: String, default: undefined },
24
+ form: { type: String, default: undefined },
25
+ required: { type: Boolean, default: false },
26
+ textValue: { type: Function, default: undefined },
27
+ policies: { type: Object, default: undefined },
28
+ as: { type: [String, Object, Function], default: 'div' },
29
+ asChild: { type: Boolean, default: false },
30
+ },
31
+ emits: {
32
+ 'update:modelValue': (_value) => true,
33
+ highlight: (_value) => true,
34
+ },
35
+ slots: Object,
36
+ setup(props, { attrs, emit, slots }) {
37
+ const root = shallowRef(null);
38
+ const submission = shallowRef(null);
39
+ const connection = shallowRef();
40
+ const participation = useCompositeFormControl({
41
+ root,
42
+ focusTarget: root,
43
+ submissions: [{
44
+ element: submission,
45
+ capabilities: hiddenSelectSubmissionCapabilities,
46
+ }],
47
+ });
48
+ provideFormControlOwner();
49
+ const localValue = shallowRef(props.modelValue !== undefined ? props.modelValue : props.defaultValue);
50
+ const initialValuePath = cascadeItemPath(props.nodes, localValue.value);
51
+ const initialBranchPath = initialValuePath.slice(0, -1);
52
+ const highlighted = shallowRef(localValue.value ?? firstAvailableRoot(props.nodes, props.disabledItems));
53
+ const path = shallowRef(initialBranchPath);
54
+ const columns = shallowRef(initialCascadeColumns(props.nodes, initialBranchPath));
55
+ const valuePath = shallowRef(initialValuePath);
56
+ const valueControlled = useControlledStateInvariant('CascadeListRoot', 'modelValue', () => props.modelValue);
57
+ const state = computed(() => Object.freeze({
58
+ value: props.modelValue !== undefined ? props.modelValue : localValue.value,
59
+ valuePath: valuePath.value,
60
+ highlightedValue: highlighted.value,
61
+ path: path.value,
62
+ columns: columns.value,
63
+ disabled: props.disabled,
64
+ readonly: props.readonly,
65
+ }));
66
+ const refreshItems = () => {
67
+ if (root.value === null || connection.value === undefined)
68
+ return;
69
+ root.value.querySelectorAll('[data-sectile-cascade-list-id]').forEach((element) => {
70
+ const id = element.dataset['sectileCascadeListId'];
71
+ if (id !== undefined)
72
+ connection.value?.setItemAttributes(element, id, props.disabledItems.includes(id));
73
+ });
74
+ };
75
+ const refresh = () => {
76
+ const current = connection.value?.getSnapshot().state;
77
+ if (current === undefined)
78
+ return;
79
+ localValue.value = current.value;
80
+ highlighted.value = current.highlighted;
81
+ path.value = current.path;
82
+ columns.value = connection.value?.getColumns() ?? [];
83
+ valuePath.value = connection.value?.getValuePath() ?? [];
84
+ refreshItems();
85
+ };
86
+ const connect = () => {
87
+ connection.value?.disconnect();
88
+ if (root.value === null)
89
+ return;
90
+ const branches = cascadeBranchItems(props.nodes);
91
+ const leaves = new Set(props.nodes.filter((node) => !branches.has(node.id)).map((node) => node.id));
92
+ const requestedValue = valueControlled ? props.modelValue : localValue.value;
93
+ const value = requestedValue !== null && leaves.has(requestedValue) ? requestedValue : null;
94
+ const ids = new Set(props.nodes.map((node) => node.id));
95
+ const requestedHighlight = highlighted.value;
96
+ const defaultHighlightedValue = requestedHighlight !== null
97
+ && ids.has(requestedHighlight)
98
+ && !props.disabledItems.includes(requestedHighlight)
99
+ ? requestedHighlight
100
+ : value ?? firstAvailableRoot(props.nodes, props.disabledItems);
101
+ localValue.value = value;
102
+ if (valueControlled && requestedValue !== value)
103
+ emit('update:modelValue', value);
104
+ connection.value = createCascadeList({
105
+ root: root.value,
106
+ nodes: props.nodes,
107
+ disabledItems: props.disabledItems,
108
+ ...(props.policies === undefined ? {} : { policies: props.policies }),
109
+ ...(valueControlled ? { value } : { defaultValue: value }),
110
+ defaultHighlightedValue,
111
+ disabled: props.disabled,
112
+ readOnly: props.readonly,
113
+ ...(props.label === undefined ? {} : { label: props.label }),
114
+ onValueChange: (next) => {
115
+ localValue.value = next;
116
+ emit('update:modelValue', next);
117
+ },
118
+ onHighlightedValueChange: (next) => {
119
+ highlighted.value = next;
120
+ emit('highlight', next);
121
+ },
122
+ onUpdate: refresh,
123
+ });
124
+ refresh();
125
+ };
126
+ const branches = computed(() => cascadeBranchItems(props.nodes));
127
+ provide(rootKey, {
128
+ state,
129
+ label: computed(() => props.label),
130
+ textValue: computed(() => props.textValue ?? ((id) => id)),
131
+ disabledItems: computed(() => new Set(props.disabledItems)),
132
+ branchItems: branches,
133
+ registerColumn: (element, depth, label) => connection.value?.setColumnAttributes(element, depth === 0 ? null : state.value.path[depth - 1] ?? null, label),
134
+ registerItem: (element, id, disabled) => connection.value?.setItemAttributes(element, id, disabled),
135
+ });
136
+ onMounted(connect);
137
+ onBeforeUnmount(() => connection.value?.disconnect());
138
+ watch([
139
+ () => props.nodes,
140
+ () => props.disabledItems,
141
+ () => props.disabled,
142
+ () => props.readonly,
143
+ () => props.label,
144
+ () => props.policies,
145
+ ], connect);
146
+ watch(() => props.modelValue, () => {
147
+ if (connection.value === undefined || !valueControlled)
148
+ return;
149
+ const result = connection.value.syncControlledValues({ value: props.modelValue });
150
+ if (!result.ok)
151
+ throw new TypeError(result.error.message);
152
+ refresh();
153
+ });
154
+ return () => {
155
+ const visual = h(Primitive, mergeProps(attrs, {
156
+ as: props.as,
157
+ asChild: props.asChild,
158
+ elementRef: (node) => { root.value = node instanceof HTMLElement ? node : null; },
159
+ role: 'group',
160
+ tabindex: -1,
161
+ 'aria-label': props.label,
162
+ 'aria-disabled': props.disabled ? 'true' : undefined,
163
+ 'aria-readonly': props.readonly ? 'true' : undefined,
164
+ 'data-scope': 'cascade-list',
165
+ 'data-part': 'root',
166
+ 'data-disabled': props.disabled ? '' : undefined,
167
+ 'data-readonly': props.readonly ? '' : undefined,
168
+ }, participation.controlProps.value), { default: () => slots['default']?.(state.value) });
169
+ if (!participation.participating && props.name === undefined && props.form === undefined && !props.required)
170
+ return visual;
171
+ return [visual, h('select', {
172
+ ref: (element) => { submission.value = element instanceof HTMLSelectElement ? element : null; },
173
+ name: props.name,
174
+ form: props.form,
175
+ required: props.required,
176
+ disabled: props.disabled,
177
+ value: state.value.value ?? '',
178
+ tabindex: -1,
179
+ 'aria-hidden': 'true',
180
+ style: visuallyHiddenInputStyle,
181
+ }, [
182
+ h('option', { value: '', selected: state.value.value === null }),
183
+ ...props.nodes
184
+ .filter((node) => !branches.value.has(node.id))
185
+ .map((node) => h('option', {
186
+ value: node.id,
187
+ selected: state.value.value === node.id,
188
+ disabled: props.disabledItems.includes(node.id),
189
+ }, props.textValue?.(node.id) ?? node.id)),
190
+ ])];
191
+ };
192
+ },
193
+ });
194
+ export const CascadeListValue = defineComponent({
195
+ name: 'SectileCascadeListValue',
196
+ inheritAttrs: false,
197
+ props: {
198
+ placeholder: { type: String, default: '' },
199
+ separator: { type: String, default: ' / ' },
200
+ ...partProps,
201
+ },
202
+ slots: Object,
203
+ setup(props, { attrs, slots }) {
204
+ const root = useRoot('CascadeListValue');
205
+ return () => h(Primitive, mergeProps(attrs, {
206
+ as: props.as,
207
+ asChild: props.asChild,
208
+ 'data-scope': 'cascade-list',
209
+ 'data-part': 'value',
210
+ 'data-placeholder': root.state.value.value === null ? '' : undefined,
211
+ }), {
212
+ default: () => slots['default']?.(root.state.value)
213
+ ?? (root.state.value.value === null
214
+ ? props.placeholder
215
+ : root.state.value.valuePath.map(root.textValue.value).join(props.separator)),
216
+ });
217
+ },
218
+ });
219
+ const cascadeListParts = createCascadeChoiceParts({
220
+ scope: 'cascade-list',
221
+ componentName: 'CascadeList',
222
+ itemAttribute: 'data-sectile-cascade-list-id',
223
+ rootKey,
224
+ itemKey,
225
+ });
226
+ export const CascadeListColumn = cascadeListParts.Column;
227
+ export const CascadeListItem = cascadeListParts.Item;
228
+ export const CascadeListItemIndicator = cascadeListParts.ItemIndicator;
229
+ export const CascadeListItemChevron = cascadeListParts.ItemChevron;
230
+ function useRoot(part) {
231
+ const root = inject(rootKey);
232
+ if (root === undefined)
233
+ throw new TypeError(`${part} must be used inside CascadeListRoot.`);
234
+ return root;
235
+ }
236
+ function firstAvailableRoot(nodes, disabledItems) {
237
+ const disabled = new Set(disabledItems);
238
+ return nodes.find((node) => node.parentID === null && !disabled.has(node.id))?.id ?? null;
239
+ }
240
+ //# sourceMappingURL=cascade-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-list.js","sourceRoot":"","sources":["../src/cascade-list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,CAAC,EACD,MAAM,EACN,UAAU,EACV,eAAe,EACf,SAAS,EACT,OAAO,EACP,UAAU,EACV,KAAK,GAKN,MAAM,KAAK,CAAC;AACb,OAAO,EACL,iBAAiB,GAIlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,kCAAkC,EAClC,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,wBAAwB,EACxB,qBAAqB,GAStB,MAAM,8BAA8B,CAAC;AA6BtC,MAAM,OAAO,GAA8B,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,OAAO,GAA2C,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACzF,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;IAC7C,IAAI,EAAE,wBAAwB;IAC9B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAA+D,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChG,UAAU,EAAE,EAAE,IAAI,EAAE,MAAiC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,YAAY,EAAE,EAAE,IAAI,EAAE,MAAiC,EAAE,OAAO,EAAE,IAAI,EAAE;QACxE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAoC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAChF,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAkD,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3F,QAAQ,EAAE,EAAE,IAAI,EAAE,MAA+C,EAAE,OAAO,EAAE,SAAS,EAAE;QACvF,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAA0B,EAAE,OAAO,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;KAC3C;IACD,KAAK,EAAE;QACL,mBAAmB,EAAE,CAAC,MAAqB,EAAW,EAAE,CAAC,IAAI;QAC7D,SAAS,EAAE,CAAC,MAAqB,EAAW,EAAE,CAAC,IAAI;KACpD;IACD,KAAK,EAAE,MAAiF;IACxF,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QACjC,MAAM,IAAI,GAAG,UAAU,CAAqB,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,UAAU,CAA2B,IAAI,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,EAAiC,CAAC;QAC/D,MAAM,aAAa,GAAG,uBAAuB,CAAC;YAC5C,IAAI;YACJ,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,CAAC;oBACZ,OAAO,EAAE,UAAU;oBACnB,YAAY,EAAE,kCAAkC;iBACjD,CAAC;SACH,CAAC,CAAC;QACH,uBAAuB,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,UAAU,CAAgB,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrH,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,UAAU,CAAgB,UAAU,CAAC,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACxH,MAAM,IAAI,GAAG,UAAU,CAAoB,iBAAiB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,UAAU,CAAiC,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAClH,MAAM,SAAS,GAAG,UAAU,CAAoB,gBAAgB,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,2BAA2B,CAAC,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7G,MAAM,KAAK,GAAG,QAAQ,CAA2B,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACnE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;YAC3E,SAAS,EAAE,SAAS,CAAC,KAAK;YAC1B,gBAAgB,EAAE,WAAW,CAAC,KAAK;YACnC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC,CAAC;QACJ,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YAClE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAc,gCAAgC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7F,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACnD,IAAI,EAAE,KAAK,SAAS;oBAAE,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3G,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC;YACtD,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YACjC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACrD,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACzD,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAE,OAAO;YAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,UAA2B,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9F,MAAM,KAAK,GAAG,cAAc,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC;YAC7C,MAAM,uBAAuB,GAAG,kBAAkB,KAAK,IAAI;mBACtD,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;mBAC3B,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACpD,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAClE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,IAAI,eAAe,IAAI,cAAc,KAAK,KAAK;gBAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAClF,UAAU,CAAC,KAAK,GAAG,iBAAiB,CAAC;gBACnC,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBAC1D,uBAAuB;gBACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACjC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBACD,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,CAAc,OAAO,EAAE;YAC5B,KAAK;YACL,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAClC,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,aAAa,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3D,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAC9E,OAAO,EACP,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,EACxD,KAAK,CACN;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC;SACpG,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,CAAC;QACnB,eAAe,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACtD,KAAK,CAAC;YACJ,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK;YACjB,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa;YACzB,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpB,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK;YACjB,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;SACrB,EAAE,OAAO,CAAC,CAAC;QACZ,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;YACjC,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe;gBAAE,OAAO;YAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAA2B,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,GAAe,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,EAAE;gBAC5C,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1F,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,CAAC,CAAC;gBACZ,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACpD,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACpD,YAAY,EAAE,cAAc;gBAC5B,WAAW,EAAE,MAAM;gBACnB,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBAChD,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;aACjD,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAC3H,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;oBAC1B,GAAG,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,GAAG,OAAO,YAAY,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxG,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;oBAC9B,QAAQ,EAAE,CAAC,CAAC;oBACZ,aAAa,EAAE,MAAM;oBACrB,KAAK,EAAE,wBAAwB;iBAChC,EAAE;oBACD,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBAChE,GAAG,KAAK,CAAC,KAAK;yBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;wBACzB,KAAK,EAAE,IAAI,CAAC,EAAE;wBACd,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;wBACvC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;qBAChD,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7C,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;IAC9C,IAAI,EAAE,yBAAyB;IAC/B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,GAAG,SAAS;KACb;IACD,KAAK,EAAE,MAAiF;IACxF,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,GAAe,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,EAAE;YACtD,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,OAAO;YACpB,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;SACrE,CAAC,EAAE;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;mBAC9C,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;oBACjC,CAAC,CAAC,KAAK,CAAC,WAAW;oBACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,wBAAwB,CAA2B;IAC1E,KAAK,EAAE,cAAc;IACrB,aAAa,EAAE,aAAa;IAC5B,aAAa,EAAE,8BAA8B;IAC7C,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,aAAa,CAAC;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAEnE,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAmD,EACnD,aAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5F,CAAC"}