@fairgarden/design 0.1.0-alpha.1 → 0.1.0-alpha.2

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 (517) hide show
  1. package/LICENSE +21 -0
  2. package/Readme.md +51 -27
  3. package/actions/button/Button.d.ts.map +1 -1
  4. package/actions/button/Button.js +13 -1
  5. package/actions/button/Button.js.map +1 -1
  6. package/actions/button/button.module.css +85 -25
  7. package/actions/chip/Chip.d.ts +2 -2
  8. package/actions/chip/Chip.js +2 -2
  9. package/actions/chip/chip.module.css +12 -18
  10. package/actions/link/Link.d.ts +1 -1
  11. package/actions/link/link.module.css +22 -19
  12. package/actions/toggle/Toggle.js +1 -1
  13. package/actions/toggle/toggle.module.css +27 -23
  14. package/content/card/card.module.css +27 -27
  15. package/content/card-grid/CardGrid.js +1 -1
  16. package/content/card-grid/card-grid.module.css +3 -3
  17. package/content/carousel/Carousel.d.ts.map +1 -1
  18. package/content/carousel/Carousel.js +1 -4
  19. package/content/carousel/Carousel.js.map +1 -1
  20. package/content/carousel/carousel.module.css +19 -9
  21. package/content/code-block/CodeActionsMenu.d.ts +34 -0
  22. package/content/code-block/CodeActionsMenu.d.ts.map +1 -0
  23. package/content/code-block/CodeActionsMenu.js +102 -0
  24. package/content/code-block/CodeActionsMenu.js.map +1 -0
  25. package/content/code-block/CodeBlock.d.ts +37 -0
  26. package/content/code-block/CodeBlock.d.ts.map +1 -0
  27. package/content/code-block/CodeBlock.js +30 -0
  28. package/content/code-block/CodeBlock.js.map +1 -0
  29. package/content/code-block/CodeBlockFrame.d.ts +54 -0
  30. package/content/code-block/CodeBlockFrame.d.ts.map +1 -0
  31. package/content/code-block/CodeBlockFrame.js +80 -0
  32. package/content/code-block/CodeBlockFrame.js.map +1 -0
  33. package/content/code-block/CodeBlockHeader.d.ts +26 -0
  34. package/content/code-block/CodeBlockHeader.d.ts.map +1 -0
  35. package/content/code-block/CodeBlockHeader.js +16 -0
  36. package/content/code-block/CodeBlockHeader.js.map +1 -0
  37. package/content/code-block/CodeBlockLazy.d.ts +11 -0
  38. package/content/code-block/CodeBlockLazy.d.ts.map +1 -0
  39. package/content/code-block/CodeBlockLazy.js +14 -0
  40. package/content/code-block/CodeBlockLazy.js.map +1 -0
  41. package/content/code-block/CodeBlockLoading.d.ts +31 -0
  42. package/content/code-block/CodeBlockLoading.d.ts.map +1 -0
  43. package/content/code-block/CodeBlockLoading.js +90 -0
  44. package/content/code-block/CodeBlockLoading.js.map +1 -0
  45. package/content/code-block/CodeBlockSection.d.ts +40 -0
  46. package/content/code-block/CodeBlockSection.d.ts.map +1 -0
  47. package/content/code-block/CodeBlockSection.js +105 -0
  48. package/content/code-block/CodeBlockSection.js.map +1 -0
  49. package/content/code-block/CodeBlockToasts.d.ts +26 -0
  50. package/content/code-block/CodeBlockToasts.d.ts.map +1 -0
  51. package/content/code-block/CodeBlockToasts.js +88 -0
  52. package/content/code-block/CodeBlockToasts.js.map +1 -0
  53. package/content/code-block/code-block.module.css +949 -0
  54. package/content/code-block/index.d.ts +4 -0
  55. package/content/code-block/index.d.ts.map +1 -0
  56. package/content/code-block/index.js +4 -0
  57. package/content/code-block/index.js.map +1 -0
  58. package/content/demo/DemoContent.d.ts +32 -0
  59. package/content/demo/DemoContent.d.ts.map +1 -0
  60. package/content/demo/DemoContent.js +87 -0
  61. package/content/demo/DemoContent.js.map +1 -0
  62. package/content/demo/DemoFrame.d.ts +6 -0
  63. package/content/demo/DemoFrame.d.ts.map +1 -0
  64. package/content/demo/DemoFrame.js +17 -0
  65. package/content/demo/DemoFrame.js.map +1 -0
  66. package/content/demo/DemoLazy.d.ts +11 -0
  67. package/content/demo/DemoLazy.d.ts.map +1 -0
  68. package/content/demo/DemoLazy.js +14 -0
  69. package/content/demo/DemoLazy.js.map +1 -0
  70. package/content/demo/DemoLoading.d.ts +23 -0
  71. package/content/demo/DemoLoading.d.ts.map +1 -0
  72. package/content/demo/DemoLoading.js +26 -0
  73. package/content/demo/DemoLoading.js.map +1 -0
  74. package/content/demo/demo.module.css +163 -0
  75. package/content/demo/index.d.ts +4 -0
  76. package/content/demo/index.d.ts.map +1 -0
  77. package/content/demo/index.js +4 -0
  78. package/content/demo/index.js.map +1 -0
  79. package/content/empty-state/EmptyState.d.ts +1 -1
  80. package/content/empty-state/EmptyState.js +1 -1
  81. package/content/empty-state/empty-state.module.css +11 -11
  82. package/content/feature-grid/feature-grid.module.css +22 -22
  83. package/content/index-rows/IndexRows.d.ts +2 -2
  84. package/content/index-rows/IndexRows.d.ts.map +1 -1
  85. package/content/index-rows/IndexRows.js +1 -1
  86. package/content/index-rows/index-rows.module.css +29 -29
  87. package/content/pricing/Pricing.d.ts +4 -4
  88. package/content/pricing/Pricing.d.ts.map +1 -1
  89. package/content/pricing/Pricing.js +4 -4
  90. package/content/pricing/Pricing.js.map +1 -1
  91. package/content/pricing/pricing.module.css +22 -22
  92. package/content/profile/Profile.d.ts +1 -1
  93. package/content/profile/Profile.js +2 -2
  94. package/content/profile/profile.module.css +13 -13
  95. package/content/quote/Quote.d.ts +1 -1
  96. package/content/quote/quote.module.css +9 -9
  97. package/content/timeline/Timeline.d.ts +1 -1
  98. package/content/timeline/Timeline.d.ts.map +1 -1
  99. package/content/timeline/Timeline.js +5 -5
  100. package/content/timeline/Timeline.js.map +1 -1
  101. package/content/timeline/timeline.module.css +12 -12
  102. package/content/types-table/TypePre.d.ts +11 -0
  103. package/content/types-table/TypePre.d.ts.map +1 -0
  104. package/content/types-table/TypePre.js +13 -0
  105. package/content/types-table/TypePre.js.map +1 -0
  106. package/content/types-table/TypesTable.d.ts +22 -0
  107. package/content/types-table/TypesTable.d.ts.map +1 -0
  108. package/content/types-table/TypesTable.js +124 -0
  109. package/content/types-table/TypesTable.js.map +1 -0
  110. package/content/types-table/index.d.ts +3 -0
  111. package/content/types-table/index.d.ts.map +1 -0
  112. package/content/types-table/index.js +3 -0
  113. package/content/types-table/index.js.map +1 -0
  114. package/content/types-table/types-table.module.css +160 -0
  115. package/data/chart/Chart.d.ts +8 -1
  116. package/data/chart/Chart.d.ts.map +1 -1
  117. package/data/chart/Chart.js +28 -15
  118. package/data/chart/Chart.js.map +1 -1
  119. package/data/chart/chart.module.css +20 -6
  120. package/data/figure/Figure.d.ts +1 -1
  121. package/data/figure/Figure.js +1 -1
  122. package/data/figure/figure.module.css +7 -7
  123. package/data/map/Map.d.ts +3 -3
  124. package/data/map/Map.d.ts.map +1 -1
  125. package/data/map/Map.js +10 -8
  126. package/data/map/Map.js.map +1 -1
  127. package/data/map/MapCanvas.d.ts.map +1 -1
  128. package/data/map/MapCanvas.js +5 -9
  129. package/data/map/MapCanvas.js.map +1 -1
  130. package/data/map/map.module.css +39 -14
  131. package/data/map/mapStyle.d.ts +2 -2
  132. package/data/map/mapStyle.d.ts.map +1 -1
  133. package/data/map/mapStyle.js +5 -5
  134. package/data/map/mapStyle.js.map +1 -1
  135. package/data/scroll-area/ScrollArea.d.ts.map +1 -1
  136. package/data/scroll-area/ScrollArea.js +8 -4
  137. package/data/scroll-area/ScrollArea.js.map +1 -1
  138. package/data/scroll-area/scroll-area.module.css +28 -9
  139. package/data/spec-grid/spec-grid.module.css +8 -8
  140. package/data/spec-list/spec-list.module.css +3 -3
  141. package/data/spec-sheet/SpecSheet.d.ts +2 -2
  142. package/data/spec-sheet/SpecSheet.js +1 -1
  143. package/data/spec-sheet/spec-sheet.module.css +9 -9
  144. package/data/stat/Stat.d.ts +1 -1
  145. package/data/stat/Stat.d.ts.map +1 -1
  146. package/data/stat/stat.module.css +4 -4
  147. package/data/table/Table.d.ts +6 -5
  148. package/data/table/Table.d.ts.map +1 -1
  149. package/data/table/Table.js.map +1 -1
  150. package/data/table/table.module.css +43 -46
  151. package/disclosure/accordion/Accordion.d.ts +1 -1
  152. package/disclosure/accordion/Accordion.js +1 -1
  153. package/disclosure/accordion/accordion.module.css +12 -12
  154. package/disclosure/collapsible/Collapsible.d.ts +4 -4
  155. package/disclosure/collapsible/Collapsible.js +4 -4
  156. package/disclosure/collapsible/collapsible.module.css +10 -10
  157. package/disclosure/faq/FAQ.d.ts +3 -3
  158. package/disclosure/faq/FAQ.d.ts.map +1 -1
  159. package/disclosure/faq/FAQ.js +3 -3
  160. package/disclosure/faq/FAQ.js.map +1 -1
  161. package/disclosure/faq/faq.module.css +20 -20
  162. package/feedback/alert/alert.module.css +4 -4
  163. package/feedback/avatar/avatar-group.module.css +2 -2
  164. package/feedback/avatar/avatar.module.css +9 -9
  165. package/feedback/badge/Badge.d.ts +1 -1
  166. package/feedback/badge/badge.module.css +7 -7
  167. package/feedback/meter/Meter.d.ts +2 -2
  168. package/feedback/meter/meter.module.css +14 -14
  169. package/feedback/progress/Progress.d.ts +1 -1
  170. package/feedback/progress/progress.module.css +7 -7
  171. package/feedback/tag/tag.module.css +7 -7
  172. package/feedback/toast/Toast.d.ts +3 -3
  173. package/feedback/toast/Toast.d.ts.map +1 -1
  174. package/feedback/toast/Toast.js +17 -7
  175. package/feedback/toast/Toast.js.map +1 -1
  176. package/feedback/toast/toast.module.css +31 -20
  177. package/forms/autocomplete/Autocomplete.d.ts +11 -0
  178. package/forms/autocomplete/Autocomplete.d.ts.map +1 -1
  179. package/forms/autocomplete/Autocomplete.js +27 -6
  180. package/forms/autocomplete/Autocomplete.js.map +1 -1
  181. package/forms/autocomplete/autocomplete.module.css +35 -41
  182. package/forms/checkbox/Checkbox.js +1 -1
  183. package/forms/checkbox/checkbox.module.css +29 -25
  184. package/forms/checkbox-group/checkbox-group.module.css +4 -4
  185. package/forms/combobox/Combobox.d.ts +10 -0
  186. package/forms/combobox/Combobox.d.ts.map +1 -1
  187. package/forms/combobox/Combobox.js +28 -7
  188. package/forms/combobox/Combobox.js.map +1 -1
  189. package/forms/combobox/combobox.module.css +34 -41
  190. package/forms/field/field.module.css +1 -1
  191. package/forms/fieldset/Fieldset.d.ts +1 -1
  192. package/forms/fieldset/Fieldset.js +2 -2
  193. package/forms/fieldset/fieldset.module.css +14 -14
  194. package/forms/form/form.module.css +2 -2
  195. package/forms/input/Input.d.ts +10 -3
  196. package/forms/input/Input.d.ts.map +1 -1
  197. package/forms/input/Input.js +10 -4
  198. package/forms/input/Input.js.map +1 -1
  199. package/forms/input/input.module.css +38 -21
  200. package/forms/number-field/number-field.module.css +24 -23
  201. package/forms/radio/Radio.d.ts +1 -1
  202. package/forms/radio/Radio.d.ts.map +1 -1
  203. package/forms/radio/Radio.js +5 -3
  204. package/forms/radio/Radio.js.map +1 -1
  205. package/forms/radio/radio.module.css +38 -30
  206. package/forms/radio-group/RadioGroup.d.ts +1 -1
  207. package/forms/radio-group/radio-group.module.css +3 -3
  208. package/forms/search/Search.d.ts +10 -0
  209. package/forms/search/Search.d.ts.map +1 -1
  210. package/forms/search/Search.js +25 -6
  211. package/forms/search/Search.js.map +1 -1
  212. package/forms/search/search.module.css +25 -33
  213. package/forms/select/Select.d.ts +10 -2
  214. package/forms/select/Select.d.ts.map +1 -1
  215. package/forms/select/Select.js +27 -12
  216. package/forms/select/Select.js.map +1 -1
  217. package/forms/select/select.module.css +42 -48
  218. package/forms/slider/Slider.js +2 -2
  219. package/forms/slider/slider.module.css +23 -23
  220. package/forms/switch/Switch.js +1 -1
  221. package/forms/switch/switch.module.css +23 -19
  222. package/foundations/expanding-box/ExpandingBox.d.ts +86 -0
  223. package/foundations/expanding-box/ExpandingBox.d.ts.map +1 -0
  224. package/foundations/expanding-box/ExpandingBox.js +179 -0
  225. package/foundations/expanding-box/ExpandingBox.js.map +1 -0
  226. package/foundations/expanding-box/expanding-box.module.css +415 -0
  227. package/foundations/expanding-box/index.d.ts +3 -0
  228. package/foundations/expanding-box/index.d.ts.map +1 -0
  229. package/foundations/expanding-box/index.js +3 -0
  230. package/foundations/expanding-box/index.js.map +1 -0
  231. package/foundations/expanding-box/startExpandingTransition.d.ts +33 -0
  232. package/foundations/expanding-box/startExpandingTransition.d.ts.map +1 -0
  233. package/foundations/expanding-box/startExpandingTransition.js +82 -0
  234. package/foundations/expanding-box/startExpandingTransition.js.map +1 -0
  235. package/foundations/ground/Ground.d.ts +1 -1
  236. package/foundations/ground/ground.module.css +4 -4
  237. package/foundations/icon/Icon.d.ts +1 -1
  238. package/foundations/icon/Icon.js +1 -1
  239. package/foundations/icon/icon.module.css +1 -1
  240. package/foundations/outline-morph/OutlineMorph.d.ts +112 -0
  241. package/foundations/outline-morph/OutlineMorph.d.ts.map +1 -0
  242. package/foundations/outline-morph/OutlineMorph.js +83 -0
  243. package/foundations/outline-morph/OutlineMorph.js.map +1 -0
  244. package/foundations/outline-morph/index.d.ts +3 -0
  245. package/foundations/outline-morph/index.d.ts.map +1 -0
  246. package/foundations/outline-morph/index.js +3 -0
  247. package/foundations/outline-morph/index.js.map +1 -0
  248. package/foundations/outline-morph/morphEngine.d.ts +219 -0
  249. package/foundations/outline-morph/morphEngine.d.ts.map +1 -0
  250. package/foundations/outline-morph/morphEngine.js +1331 -0
  251. package/foundations/outline-morph/morphEngine.js.map +1 -0
  252. package/foundations/outline-morph/outline-morph.module.css +113 -0
  253. package/foundations/outline-morph/useOutlineMorphRoot.d.ts +50 -0
  254. package/foundations/outline-morph/useOutlineMorphRoot.d.ts.map +1 -0
  255. package/foundations/outline-morph/useOutlineMorphRoot.js +55 -0
  256. package/foundations/outline-morph/useOutlineMorphRoot.js.map +1 -0
  257. package/foundations/separator/separator.module.css +10 -10
  258. package/foundations/sticker/Sticker.d.ts +4 -4
  259. package/foundations/sticker/Sticker.d.ts.map +1 -1
  260. package/foundations/sticker/Sticker.js +3 -3
  261. package/foundations/sticker/sticker.module.css +10 -10
  262. package/icons/paths.d.ts +1 -1
  263. package/icons/paths.d.ts.map +1 -1
  264. package/icons/paths.js +50 -0
  265. package/icons/paths.js.map +1 -1
  266. package/navigation/breadcrumb/Breadcrumb.d.ts +7 -1
  267. package/navigation/breadcrumb/Breadcrumb.d.ts.map +1 -1
  268. package/navigation/breadcrumb/Breadcrumb.js +8 -8
  269. package/navigation/breadcrumb/Breadcrumb.js.map +1 -1
  270. package/navigation/breadcrumb/breadcrumb.module.css +14 -14
  271. package/navigation/file-tabs/FileTabs.d.ts +169 -0
  272. package/navigation/file-tabs/FileTabs.d.ts.map +1 -0
  273. package/navigation/file-tabs/FileTabs.js +253 -0
  274. package/navigation/file-tabs/FileTabs.js.map +1 -0
  275. package/navigation/file-tabs/file-tabs.module.css +868 -0
  276. package/navigation/file-tabs/index.d.ts +2 -0
  277. package/navigation/file-tabs/index.d.ts.map +1 -0
  278. package/navigation/file-tabs/index.js +2 -0
  279. package/navigation/file-tabs/index.js.map +1 -0
  280. package/navigation/nav-drawer/NavDrawer.d.ts +32 -6
  281. package/navigation/nav-drawer/NavDrawer.d.ts.map +1 -1
  282. package/navigation/nav-drawer/NavDrawer.js +94 -28
  283. package/navigation/nav-drawer/NavDrawer.js.map +1 -1
  284. package/navigation/nav-drawer/nav-drawer.module.css +78 -55
  285. package/navigation/navigation-bar/NavigationBar.d.ts +31 -11
  286. package/navigation/navigation-bar/NavigationBar.d.ts.map +1 -1
  287. package/navigation/navigation-bar/NavigationBar.js +40 -17
  288. package/navigation/navigation-bar/NavigationBar.js.map +1 -1
  289. package/navigation/navigation-bar/navigation-bar.module.css +58 -27
  290. package/navigation/navigation-menu/NavigationMenu.d.ts +9 -9
  291. package/navigation/navigation-menu/NavigationMenu.d.ts.map +1 -1
  292. package/navigation/navigation-menu/NavigationMenu.js +15 -15
  293. package/navigation/navigation-menu/navigation-menu.module.css +39 -53
  294. package/navigation/pagination/Pagination.js +1 -1
  295. package/navigation/pagination/pagination.module.css +24 -24
  296. package/navigation/sidebar-nav/SidebarNav.d.ts +71 -0
  297. package/navigation/sidebar-nav/SidebarNav.d.ts.map +1 -0
  298. package/navigation/sidebar-nav/SidebarNav.js +169 -0
  299. package/navigation/sidebar-nav/SidebarNav.js.map +1 -0
  300. package/navigation/sidebar-nav/index.d.ts +2 -0
  301. package/navigation/sidebar-nav/index.d.ts.map +1 -0
  302. package/navigation/sidebar-nav/index.js +2 -0
  303. package/navigation/sidebar-nav/index.js.map +1 -0
  304. package/navigation/sidebar-nav/sidebar-nav.module.css +270 -0
  305. package/navigation/table-of-contents/TableOfContents.d.ts +92 -0
  306. package/navigation/table-of-contents/TableOfContents.d.ts.map +1 -0
  307. package/navigation/table-of-contents/TableOfContents.js +211 -0
  308. package/navigation/table-of-contents/TableOfContents.js.map +1 -0
  309. package/navigation/table-of-contents/index.d.ts +3 -0
  310. package/navigation/table-of-contents/index.d.ts.map +1 -0
  311. package/navigation/table-of-contents/index.js +3 -0
  312. package/navigation/table-of-contents/index.js.map +1 -0
  313. package/navigation/table-of-contents/table-of-contents.module.css +322 -0
  314. package/navigation/table-of-contents/useActiveHeading.d.ts +37 -0
  315. package/navigation/table-of-contents/useActiveHeading.d.ts.map +1 -0
  316. package/navigation/table-of-contents/useActiveHeading.js +111 -0
  317. package/navigation/table-of-contents/useActiveHeading.js.map +1 -0
  318. package/navigation/tabs/Tabs.d.ts +2 -2
  319. package/navigation/tabs/Tabs.js +3 -3
  320. package/navigation/tabs/tabs.module.css +22 -19
  321. package/navigation/toolbar/Toolbar.d.ts +7 -1
  322. package/navigation/toolbar/Toolbar.d.ts.map +1 -1
  323. package/navigation/toolbar/Toolbar.js +3 -3
  324. package/navigation/toolbar/Toolbar.js.map +1 -1
  325. package/navigation/toolbar/toolbar.module.css +6 -6
  326. package/overlays/alert-dialog/AlertDialog.d.ts +14 -4
  327. package/overlays/alert-dialog/AlertDialog.d.ts.map +1 -1
  328. package/overlays/alert-dialog/AlertDialog.js +15 -5
  329. package/overlays/alert-dialog/AlertDialog.js.map +1 -1
  330. package/overlays/alert-dialog/alert-dialog.module.css +4 -4
  331. package/overlays/context-menu/ContextMenu.d.ts +1 -1
  332. package/overlays/context-menu/ContextMenu.js +1 -1
  333. package/overlays/dialog/Dialog.d.ts +26 -11
  334. package/overlays/dialog/Dialog.d.ts.map +1 -1
  335. package/overlays/dialog/Dialog.js +36 -17
  336. package/overlays/dialog/Dialog.js.map +1 -1
  337. package/overlays/dialog/dialog.module.css +32 -31
  338. package/overlays/dialog/morph.d.ts +17 -0
  339. package/overlays/dialog/morph.d.ts.map +1 -0
  340. package/overlays/dialog/morph.js +44 -0
  341. package/overlays/dialog/morph.js.map +1 -0
  342. package/overlays/menu/Menu.d.ts +18 -7
  343. package/overlays/menu/Menu.d.ts.map +1 -1
  344. package/overlays/menu/Menu.js +35 -12
  345. package/overlays/menu/Menu.js.map +1 -1
  346. package/overlays/menu/menu.module.css +26 -50
  347. package/overlays/menu/morph.d.ts +16 -0
  348. package/overlays/menu/morph.d.ts.map +1 -0
  349. package/overlays/menu/morph.js +36 -0
  350. package/overlays/menu/morph.js.map +1 -0
  351. package/overlays/menu/popup.d.ts +2 -0
  352. package/overlays/menu/popup.d.ts.map +1 -1
  353. package/overlays/menu/popup.js +11 -3
  354. package/overlays/menu/popup.js.map +1 -1
  355. package/overlays/menubar/Menubar.d.ts +10 -1
  356. package/overlays/menubar/Menubar.d.ts.map +1 -1
  357. package/overlays/menubar/Menubar.js +22 -12
  358. package/overlays/menubar/Menubar.js.map +1 -1
  359. package/overlays/menubar/menubar.module.css +13 -13
  360. package/overlays/popover/Popover.d.ts +22 -8
  361. package/overlays/popover/Popover.d.ts.map +1 -1
  362. package/overlays/popover/Popover.js +51 -16
  363. package/overlays/popover/Popover.js.map +1 -1
  364. package/overlays/popover/popover.module.css +73 -47
  365. package/overlays/preview-card/PreviewCard.d.ts +3 -3
  366. package/overlays/preview-card/PreviewCard.d.ts.map +1 -1
  367. package/overlays/preview-card/PreviewCard.js +5 -6
  368. package/overlays/preview-card/PreviewCard.js.map +1 -1
  369. package/overlays/preview-card/preview-card.module.css +19 -54
  370. package/overlays/search-dialog/SearchDialog.d.ts +89 -0
  371. package/overlays/search-dialog/SearchDialog.d.ts.map +1 -0
  372. package/overlays/search-dialog/SearchDialog.js +220 -0
  373. package/overlays/search-dialog/SearchDialog.js.map +1 -0
  374. package/overlays/search-dialog/SearchDialogPopup.d.ts +39 -0
  375. package/overlays/search-dialog/SearchDialogPopup.d.ts.map +1 -0
  376. package/overlays/search-dialog/SearchDialogPopup.js +80 -0
  377. package/overlays/search-dialog/SearchDialogPopup.js.map +1 -0
  378. package/overlays/search-dialog/SearchDialogTrigger.d.ts +24 -0
  379. package/overlays/search-dialog/SearchDialogTrigger.d.ts.map +1 -0
  380. package/overlays/search-dialog/SearchDialogTrigger.js +32 -0
  381. package/overlays/search-dialog/SearchDialogTrigger.js.map +1 -0
  382. package/overlays/search-dialog/index.d.ts +3 -0
  383. package/overlays/search-dialog/index.d.ts.map +1 -0
  384. package/overlays/search-dialog/index.js +3 -0
  385. package/overlays/search-dialog/index.js.map +1 -0
  386. package/overlays/search-dialog/search-dialog.module.css +492 -0
  387. package/overlays/search-dialog/useShortcutLabel.d.ts +13 -0
  388. package/overlays/search-dialog/useShortcutLabel.d.ts.map +1 -0
  389. package/overlays/search-dialog/useShortcutLabel.js +19 -0
  390. package/overlays/search-dialog/useShortcutLabel.js.map +1 -0
  391. package/overlays/search-dialog/variants.d.ts +25 -0
  392. package/overlays/search-dialog/variants.d.ts.map +1 -0
  393. package/overlays/search-dialog/variants.js +31 -0
  394. package/overlays/search-dialog/variants.js.map +1 -0
  395. package/overlays/tooltip/Tooltip.d.ts +3 -3
  396. package/overlays/tooltip/Tooltip.d.ts.map +1 -1
  397. package/overlays/tooltip/Tooltip.js +3 -3
  398. package/overlays/tooltip/Tooltip.js.map +1 -1
  399. package/overlays/tooltip/tooltip.module.css +2 -2
  400. package/package.json +27 -19
  401. package/page/announcement-bar/AnnouncementBar.d.ts +1 -1
  402. package/page/announcement-bar/AnnouncementBar.js +4 -4
  403. package/page/announcement-bar/AnnouncementBar.js.map +1 -1
  404. package/page/announcement-bar/announcement-bar.module.css +11 -17
  405. package/page/cta-block/CTABlock.d.ts +5 -5
  406. package/page/cta-block/CTABlock.d.ts.map +1 -1
  407. package/page/cta-block/CTABlock.js +2 -2
  408. package/page/cta-block/cta-block.module.css +26 -26
  409. package/page/docs-layout/DocsLayout.d.ts +83 -0
  410. package/page/docs-layout/DocsLayout.d.ts.map +1 -0
  411. package/page/docs-layout/DocsLayout.js +108 -0
  412. package/page/docs-layout/DocsLayout.js.map +1 -0
  413. package/page/docs-layout/docs-layout.module.css +266 -0
  414. package/page/docs-layout/index.d.ts +2 -0
  415. package/page/docs-layout/index.d.ts.map +1 -0
  416. package/page/docs-layout/index.js +2 -0
  417. package/page/docs-layout/index.js.map +1 -0
  418. package/page/footer/Footer.d.ts +1 -1
  419. package/page/footer/Footer.js +1 -1
  420. package/page/footer/footer.module.css +31 -31
  421. package/page/hero/Hero.d.ts +3 -3
  422. package/page/hero/Hero.d.ts.map +1 -1
  423. package/page/hero/Hero.js +1 -1
  424. package/page/hero/hero.module.css +36 -36
  425. package/page/marquee/Marquee.d.ts +2 -2
  426. package/page/marquee/Marquee.js +1 -1
  427. package/page/marquee/marquee.module.css +11 -11
  428. package/page/newsletter/Newsletter.d.ts.map +1 -1
  429. package/page/newsletter/Newsletter.js +4 -59
  430. package/page/newsletter/Newsletter.js.map +1 -1
  431. package/page/newsletter/newsletter.module.css +44 -22
  432. package/page/section-bar/SectionBar.d.ts +10 -3
  433. package/page/section-bar/SectionBar.d.ts.map +1 -1
  434. package/page/section-bar/SectionBar.js +21 -11
  435. package/page/section-bar/SectionBar.js.map +1 -1
  436. package/page/section-bar/section-bar.module.css +43 -46
  437. package/page/section-divider/SectionDivider.d.ts +2 -2
  438. package/page/section-divider/SectionDivider.js +4 -4
  439. package/page/section-divider/SectionDivider.js.map +1 -1
  440. package/page/section-divider/section-divider.module.css +18 -18
  441. package/page/section-header/SectionHeader.d.ts +7 -7
  442. package/page/section-header/SectionHeader.d.ts.map +1 -1
  443. package/page/section-header/SectionHeader.js +3 -3
  444. package/page/section-header/SectionHeader.js.map +1 -1
  445. package/page/section-header/section-header.module.css +16 -16
  446. package/utils/Ornament.d.ts +1 -1
  447. package/utils/Ornament.js +2 -2
  448. package/utils/assignRef.d.ts +7 -1
  449. package/utils/assignRef.d.ts.map +1 -1
  450. package/utils/assignRef.js +18 -0
  451. package/utils/assignRef.js.map +1 -1
  452. package/utils/docs/DemoTitle.d.ts +12 -0
  453. package/utils/docs/DemoTitle.d.ts.map +1 -0
  454. package/utils/docs/DemoTitle.js +11 -0
  455. package/utils/docs/DemoTitle.js.map +1 -0
  456. package/utils/docs/Pre.d.ts +39 -0
  457. package/utils/docs/Pre.d.ts.map +1 -0
  458. package/utils/docs/Pre.js +26 -0
  459. package/utils/docs/Pre.js.map +1 -0
  460. package/utils/docs/createDemo.d.ts +89 -0
  461. package/utils/docs/createDemo.d.ts.map +1 -0
  462. package/utils/docs/createDemo.js +51 -0
  463. package/utils/docs/createDemo.js.map +1 -0
  464. package/utils/docs/createMdxComponents.d.ts +52 -0
  465. package/utils/docs/createMdxComponents.d.ts.map +1 -0
  466. package/utils/docs/createMdxComponents.js +59 -0
  467. package/utils/docs/createMdxComponents.js.map +1 -0
  468. package/utils/docs/createTypes.d.ts +23 -0
  469. package/utils/docs/createTypes.d.ts.map +1 -0
  470. package/utils/docs/createTypes.js +27 -0
  471. package/utils/docs/createTypes.js.map +1 -0
  472. package/utils/docs/index.d.ts +8 -0
  473. package/utils/docs/index.d.ts.map +1 -0
  474. package/utils/docs/index.js +16 -0
  475. package/utils/docs/index.js.map +1 -0
  476. package/utils/docs/mdx.module.css +201 -0
  477. package/utils/docs/serverSourceEnhancers.d.ts +26 -0
  478. package/utils/docs/serverSourceEnhancers.d.ts.map +1 -0
  479. package/utils/docs/serverSourceEnhancers.js +32 -0
  480. package/utils/docs/serverSourceEnhancers.js.map +1 -0
  481. package/utils/docs/toSidebarItems.d.ts +23 -0
  482. package/utils/docs/toSidebarItems.d.ts.map +1 -0
  483. package/utils/docs/toSidebarItems.js +36 -0
  484. package/utils/docs/toSidebarItems.js.map +1 -0
  485. package/utils/font-fallbacks.css +176 -0
  486. package/utils/fonts.d.ts +1 -0
  487. package/utils/fonts.d.ts.map +1 -1
  488. package/utils/fonts.js +12 -0
  489. package/utils/fonts.js.map +1 -1
  490. package/utils/frame.d.ts +4 -0
  491. package/utils/frame.d.ts.map +1 -0
  492. package/utils/frame.js +11 -0
  493. package/utils/frame.js.map +1 -0
  494. package/utils/global.css +480 -266
  495. package/utils/line.module.css +17 -17
  496. package/utils/media.css +1 -1
  497. package/utils/ornament.module.css +19 -19
  498. package/utils/overlay.d.ts +4 -4
  499. package/utils/overlay.js +4 -4
  500. package/utils/pattern.module.css +45 -45
  501. package/utils/print.css +48 -34
  502. package/utils/reset.css +9 -2
  503. package/utils/roles.css +29 -29
  504. package/utils/seriesPatterns.js +3 -3
  505. package/utils/syntax.module.css +92 -0
  506. package/utils/theme.css +6 -6
  507. package/utils/tokens.css +262 -192
  508. package/utils/tokens.d.ts +51 -8
  509. package/utils/tokens.d.ts.map +1 -1
  510. package/utils/tokens.js +46 -9
  511. package/utils/tokens.js.map +1 -1
  512. package/utils/type.module.css +87 -87
  513. package/utils/useReleaseMark.d.ts +13 -0
  514. package/utils/useReleaseMark.d.ts.map +1 -0
  515. package/utils/useReleaseMark.js +44 -0
  516. package/utils/useReleaseMark.js.map +1 -0
  517. package/utils/view-transitions.css +122 -0
@@ -0,0 +1,169 @@
1
+ import * as React from 'react';
2
+ import { Tabs as BaseTabs } from '@base-ui/react/tabs';
3
+ import { useRender } from '@base-ui/react/use-render';
4
+ import { type PrimaryScale, type RadixScale } from '../../utils/scales';
5
+ export declare const fileTabs: (props?: ({
6
+ primary?: "ruby" | "brown" | "crimson" | "gold" | "gray" | "indigo" | "olive" | "pink" | "plum" | "purple" | "red" | "tomato" | "violet" | "bronze" | "iris" | "mauve" | "sage" | "sand" | "slate" | null | undefined;
7
+ secondary?: "ruby" | "blue" | "brown" | "crimson" | "cyan" | "gold" | "gray" | "green" | "indigo" | "lime" | "olive" | "orange" | "pink" | "plum" | "purple" | "red" | "teal" | "tomato" | "violet" | "yellow" | "amber" | "bronze" | "grass" | "iris" | "jade" | "mauve" | "mint" | "sage" | "sand" | "sky" | "slate" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ /** Where the header sits on its host: see `FileTabsProps['frame']`. */
10
+ export type FileTabsFrame = 'top' | 'joined' | 'none';
11
+ /** One tab: a document in the package. */
12
+ export type FileTab = {
13
+ /** The tab's value, unique within `tabs`. A code block passes the file name. */
14
+ id: string;
15
+ /** The label: the document's short title (a file name in a code block). UI face at the caption size, not caps; mono with `mono`. */
16
+ name: string;
17
+ /**
18
+ * Deep-link slug. The tab renders as `<a href="#slug">` (`nativeButton={false}`).
19
+ * A plain click selects the tab and `preventDefault()`s the anchor, so the page
20
+ * doesn't jump and the hash isn't written. A modifier click (Ctrl, Cmd, Alt or
21
+ * Shift) opens the link and leaves the selection alone.
22
+ */
23
+ slug?: string;
24
+ };
25
+ /** Props for FileTabs: Base UI Tabs Root props (without its value props and `orientation`) plus the documents, the header's frame, controls, status and label face, and the color axes. */
26
+ export type FileTabsProps = Omit<BaseTabs.Root.Props, 'value' | 'defaultValue' | 'onValueChange' | 'orientation'> & {
27
+ tabs: readonly FileTab[];
28
+ /** Controlled: the selected tab's `id`. `undefined`, or an id not in `tabs`, selects the first tab. */
29
+ value?: string;
30
+ /** Uncontrolled initial `id`. Default: the first tab. */
31
+ defaultValue?: string;
32
+ /**
33
+ * Called on user selection only. Not called for a modifier activation, which
34
+ * `eventDetails.cancel()`s. The modifiers are read from `eventDetails.event`
35
+ * (Base UI 1.8), so this covers the keyboard as well as the pointer.
36
+ */
37
+ onValueChange?: (id: string) => void;
38
+ /** Disables every tab: `--role-muted` label plus a `line-dotted-fine` underline, no opacity. Default `false`. */
39
+ disabled?: boolean;
40
+ /**
41
+ * Labels in mono (`type-data`, §3.11) instead of the UI face: for file
42
+ * names, e.g. code. Mono labels are left to right (`dir="ltr"`) on any
43
+ * page, since file names are, while the tabs and header still mirror in
44
+ * RTL. Code Block and Demo set it. Default `false`.
45
+ */
46
+ mono?: boolean;
47
+ /**
48
+ * Where the header sits. Its host is the bordered box it opens: a
49
+ * `--border-size-1` edge, no padding, a `--primary1` face and no clip,
50
+ * such as Code Block's frame, or the Root itself given a frame class.
51
+ * `'top'`: at the top of the host, whose top corners take
52
+ * `--radius-2-25` (a host with another radius sets `--file-tabs-host-radius`
53
+ * on the Root). The tab strip runs out over the host's side edges by
54
+ * their width, so an end tab's edge is the host's edge, its paper-tab
55
+ * corner leaving that line below the host's corner; the side edges are
56
+ * drawn again over the header from below the host's corner radius, so
57
+ * scrolled tabs and the ends of the strip's native scrollbar pass under
58
+ * them; a `FileTabsControl` hangs outside.
59
+ * `'joined'`: the same, in a part of the host below another (Demo's
60
+ * code); the header draws the `--role-rule` that joins the part above,
61
+ * and the side edges run from it. `'none'`: no host frame (tabs over
62
+ * their panel on the page); the strip stays inside the header, the end
63
+ * tabs show their own edges, and a `FileTabsControl` hangs past the
64
+ * header's own end. Default `'top'`.
65
+ */
66
+ frame?: FileTabsFrame;
67
+ /**
68
+ * Controls at the header's end: a `FileTabsControl` (a Menu's ⋮ trigger)
69
+ * or a few small icon Buttons.
70
+ * - A `FileTabsControl` always hangs just outside the host's inline-end
71
+ * edge (past the header's own end with `frame="none"`) with zero layout
72
+ * width, whatever the tab count, so the tabs keep the whole header. Its
73
+ * hit area, `--fgd-size-hit`, extends outward into the gutter, never
74
+ * over the tabs. **The host must leave `--fgd-size-file-tabs-control`
75
+ * (24 px) free past its edge, unclipped** (or inside an
76
+ * `overflow-clip-margin`); where the page ends sooner, clip it sideways
77
+ * (`overflow-x: clip`) so the rest of the hit area can't scroll it.
78
+ * With no document (`tabs` empty) there is no header row at all: the ⋮
79
+ * hangs from the host's top-end corner.
80
+ * - Small icon Buttons (`variant="text"` icon-only `sm` Buttons) sit in
81
+ * the header, quiet at rest: their edge is drawn only while pointed at
82
+ * or focused. They sit beside the one document's label, which truncates
83
+ * to leave them room (the header never wraps); with several documents,
84
+ * in a `--fgd-size-hit` cell at the header's end with a `--role-rule`
85
+ * start edge, where the tabs end. The row is end-aligned: a control
86
+ * that joins after the first paint goes before the others (earlier in
87
+ * `controls`), so the ones already painted don't move.
88
+ * Hidden in print.
89
+ */
90
+ controls?: React.ReactNode;
91
+ /**
92
+ * The busy "-ing…" label while something the header started is under way
93
+ * ("Switching to JS…", "Formatting…") [D84], laid over the header's end
94
+ * beside the controls: mono, `--role-muted`, on the `--primary1` face with
95
+ * a `--role-rule` start edge, so it never moves or narrows the tabs. Its
96
+ * element is a `role="status"` live region, rendered whenever `status`
97
+ * isn't `undefined`: pass `''` while idle, so it stays mounted and its
98
+ * changes are announced. Not for confirmations such as a copy: those are
99
+ * toasts (§10.17). Hidden in print.
100
+ */
101
+ status?: React.ReactNode;
102
+ /** Primary scale: labels, rules, the tabs' faces (the recessed --primary3, the front --primary1), focus ring. Never defaulted [D133]. */
103
+ primary?: PrimaryScale;
104
+ /** Secondary scale: the hover underline (`--role-accent`). Never defaulted. */
105
+ secondary?: RadixScale;
106
+ };
107
+ /**
108
+ * The root of a set of file tabs: it holds the selection and the header's
109
+ * `frame`, `controls`, `status` and `mono`, and wraps both the header
110
+ * (`FileTabsList`) and `FileTabsPanel`. Tabs with a `slug` are deep links:
111
+ * a plain click selects the document, a modifier click opens the link and
112
+ * leaves the selection.
113
+ */
114
+ export declare function FileTabs(props: FileTabsProps): React.JSX.Element;
115
+ /** Props for FileTabsList: Base UI Tabs List props; the tabs, controls and status come from the Root. */
116
+ export type FileTabsListProps = Omit<BaseTabs.List.Props, 'children'> & {
117
+ /** The tablist's accessible name. Default `"Documents"` (Code Block passes `"Files"`). */
118
+ 'aria-label'?: string;
119
+ };
120
+ /**
121
+ * The header: one fixed 56 px row with its `--role-rule`, the folder tabs
122
+ * across its full width under 12 px of room, standing on the rule, and the
123
+ * Root's `status` and `controls` at its end. The labels take the UI face
124
+ * (mono with `mono`); the selected tab takes its panel's face and opens
125
+ * into it, the others recessed behind it with its neighbours tucked
126
+ * under it. When they overflow, their row scrolls sideways with its native
127
+ * scrollbar, which hangs just below the header (or overlays the strip's
128
+ * foot, where scrollbars overlay), so the tabs never lift off the rule.
129
+ * With one tab it shows that name as a label (no tablist), truncated with
130
+ * an ellipsis where the controls need its room; with none, the controls
131
+ * and status (a `FileTabsControl` alone hangs, with no header row), or
132
+ * nothing. Its own props (`aria-label`, `className` …) go to the tablist,
133
+ * or to the one document's label.
134
+ */
135
+ export declare function FileTabsList(props: FileTabsListProps): React.JSX.Element | null;
136
+ /** Props for FileTabsControl: button props plus `render`. Name it with `aria-label`. */
137
+ export type FileTabsControlProps = Omit<useRender.ComponentProps<'button'>, 'className'> & {
138
+ className?: string;
139
+ };
140
+ /**
141
+ * One header control for the Root's `controls`: a `<button>` holding an
142
+ * icon (an `Icon` with `weight="interactive"` takes its hover weight here;
143
+ * the ⋮ is `more_vert` at the tag tier, `size="tag"`, 20 px).
144
+ * It always hangs outside the host's inline-end edge: an ear `--size-px-4`
145
+ * wide from the host's edge line, from the host's top edge to the header
146
+ * rule's foot, with its `--fgd-size-hit` hit area past that edge and none
147
+ * over the tabs; the host leaves `--fgd-size-file-tabs-control` free there.
148
+ * Hovered or focused, the ear shows at once, drawn in `--primary12` on the
149
+ * `--role-soft-hover` fill (at the top of a rounded host, wrapping the
150
+ * host's top-end corner, so the outline runs unbroken round both); while its popup is open (`aria-expanded="true"`;
151
+ * a tooltip's `data-popup-open` changes nothing), on the `--primary1` face.
152
+ * As a Menu's trigger:
153
+ * `<Menu.Trigger render={<FileTabsControl />} aria-label="More actions">`.
154
+ * Or as a lone action, where it is the only one (Code Block's nameless
155
+ * snippet hangs its copy, `content_copy` at the tag tier): name it with
156
+ * `aria-label`, pair it with a Tooltip, and give it an `onClick`.
157
+ */
158
+ export declare function FileTabsControl(props: FileTabsControlProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
159
+ /** Props for FileTabsPanel: Base UI Tabs Panel props; its value is the selected tab's. */
160
+ export type FileTabsPanelProps = Omit<BaseTabs.Panel.Props, 'value'>;
161
+ /**
162
+ * The panel for the selected tab: `role="tabpanel"`, labelled by the selected
163
+ * tab, which `aria-controls` it. Its element stays the same across selections,
164
+ * so the content inside is never remounted; empty hidden panels stand in for
165
+ * the other tabs, so every tab's `aria-controls` resolves. With fewer than
166
+ * two tabs it renders a plain `div` (there is no tablist to pair with).
167
+ */
168
+ export declare function FileTabsPanel(props: FileTabsPanelProps): React.JSX.Element;
169
+ //# sourceMappingURL=FileTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTabs.d.ts","sourceRoot":"","sources":["../../src/navigation/file-tabs/FileTabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAIrD,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AA4D3B,eAAO,MAAM,QAAQ;;;8EAMnB,CAAA;AAgBF,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAErD,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG;IACpB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,oIAAoI;IACpI,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,2LAA2L;AAC3L,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,EACnB,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,CAC3D,GAAG;IACF,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;IACxB,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,iHAAiH;IACjH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,yIAAyI;IACzI,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,UAAU,CAAA;CACvB,CAAA;AAwCD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAsD5C;AAED,yGAAyG;AACzG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG;IACtE,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,4BAoEpD;AAyCD,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,GAAG;IACzF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,0EAU1D;AAED,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AASpE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAiCtD"}
@@ -0,0 +1,253 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import { mergeProps } from '@base-ui/react/merge-props';
4
+ import { Tabs as BaseTabs } from '@base-ui/react/tabs';
5
+ import { useRender } from '@base-ui/react/use-render';
6
+ import { cva } from 'class-variance-authority';
7
+ import { cx, resolveClassName } from '../../utils/className';
8
+ import { primaryScaleVariants, secondaryScaleVariants, } from '../../utils/scales';
9
+ import { useScopeAttributes } from '../../utils/scope';
10
+ import styles from './file-tabs.module.css';
11
+ /*
12
+ * File tabs: paper-style folder tabs over a package of static documents
13
+ * kept together (a grant packet, a lease, a year of minutes), each tab a
14
+ * standalone document sharing one panel, with optional controls and a busy
15
+ * status at the header's end. Tabs (§9.5) switch views or sections of one
16
+ * thing; these take any number of documents, can be deep links, and label
17
+ * them in the UI face (`mono` for file names). Code Block and Demo render
18
+ * their headers through it for code files, with `mono`. It is
19
+ * presentational and needs no docs engine.
20
+ *
21
+ * Implementation (CSS Modules + CVA)
22
+ * - Module: file-tabs.module.css; CVA functions `fileTabs` (the Root) and
23
+ * `fileTabsHeader` (the header FileTabsList renders, internal).
24
+ * - Axes: `primary`, `secondary` → scales module classes (Root); `frame`
25
+ * (`top` | `joined` | `none`) → frameTop, frameJoined, frameNone (header).
26
+ * - Compound variants: none.
27
+ * - Defaults: frame `top`; color axes are never defaulted [D133].
28
+ * - Color fallback: inherits the scope.
29
+ * - States: at rest a tab is recessed paper, --primary3 in a --role-rule
30
+ * edge, standing on the header's rule; the selected tab (`data-active`)
31
+ * → the front sheet: its panel's own face (the host's --primary1; the
32
+ * ground with `frame="none"`) in the same edge with --radius-2-75 top
33
+ * radii (the paper-tab radius, as the first and last tabs' outer
34
+ * corners), open at its foot into the panel with no rule between, a
35
+ * --primary12 label at --font-weight-7 (weight and the joined edge carry
36
+ * the state, not color alone), its neighbours tucked under it; `:active`
37
+ * on it → the radii grow (motion OK only); `:hover` on the others → the
38
+ * bare-text underline (--role-accent at --border-size-2, offset
39
+ * --size-px-1) [D181]; `:active` on the others → a --border-size-2
40
+ * --primary12 line under the label; `:focus-visible` → the ring inside
41
+ * the hit area; `data-disabled` → --role-muted label and a
42
+ * `line-dotted-fine` underline, the selected tab keeping its face and
43
+ * shape [D16, D85]. The header: one fixed 56 px row that never wraps (a
44
+ * lone label truncates); `data-tablist` (two or more documents) → the
45
+ * bar leaves the flow and the tablist becomes the tabs' native scroll
46
+ * row (and small controls' cell takes a --role-rule start edge);
47
+ * `data-labelless` (no document) with a FileTabsControl → no header row.
48
+ * A FileTabsControl in `controls` → the header's end always hangs outside
49
+ * the host's inline-end edge (CSS `:has()`, nothing measured).
50
+ * FileTabsControl: `:hover` / `:focus-visible` → at once, the ear drawn
51
+ * in --primary12 on the --role-soft-hover fill [D181];
52
+ * `aria-expanded="true"` (its menu open; never its tooltip's
53
+ * `data-popup-open`) → the ear on the --primary1 face; disabled →
54
+ * --role-muted. Small icon Buttons in `controls` (`text` icon-only) →
55
+ * quiet at rest; `:hover` / `:focus-visible` → at once, their circle
56
+ * drawn in --primary12 at --border-size-1 on the --role-soft-hover fill.
57
+ * - Parts: base, header, bar (the row inside it, which draws the host's
58
+ * side edges), lead (the tabs or the one document's label), list (the
59
+ * tabs' native scroll row), tab, label, edge / edgeLine (the disabled
60
+ * underline), single (the lone document's label), side (the header's end),
61
+ * status, controls (their cell), control (FileTabsControl), panel.
62
+ * - Scope: none.
63
+ * - Container: none; the tabs scroll sideways in their native scroll row
64
+ * when they overflow. The host leaves --fgd-size-file-tabs-control free
65
+ * past its inline-end edge, unclipped, for the hanging ⋮.
66
+ */
67
+ export const fileTabs = cva(styles.base, {
68
+ variants: {
69
+ // Color axes: never defaulted, so an omitted prop inherits the scope [D133].
70
+ primary: primaryScaleVariants,
71
+ secondary: secondaryScaleVariants,
72
+ },
73
+ });
74
+ /** The header's CVA function (FileTabsList): where it sits on its host. */
75
+ const fileTabsHeader = cva(styles.header, {
76
+ variants: {
77
+ frame: {
78
+ top: styles.frameTop,
79
+ joined: styles.frameJoined,
80
+ none: styles.frameNone,
81
+ },
82
+ },
83
+ defaultVariants: {
84
+ frame: 'top',
85
+ },
86
+ });
87
+ const FileTabsContext = React.createContext(null);
88
+ FileTabsContext.displayName = 'FileTabsContext';
89
+ function useFileTabsContext(part) {
90
+ const context = React.useContext(FileTabsContext);
91
+ if (context === null) {
92
+ throw new Error(`${part} must be placed inside FileTabs.`);
93
+ }
94
+ return context;
95
+ }
96
+ /** The modifiers that make an anchor open elsewhere (new tab, window or split) instead of selecting. */
97
+ function hasModifier(event) {
98
+ if (typeof event !== 'object' || event === null)
99
+ return false;
100
+ const keys = event;
101
+ return Boolean(keys.ctrlKey || keys.metaKey || keys.altKey || keys.shiftKey);
102
+ }
103
+ /**
104
+ * A link tab's click: a plain click only selects, so the page doesn't jump
105
+ * and the hash isn't written; a modifier click keeps the browser's own
106
+ * handling (the selection change is canceled in the Root).
107
+ */
108
+ function handleLinkClick(event) {
109
+ if (!hasModifier(event))
110
+ event.preventDefault();
111
+ }
112
+ /**
113
+ * The root of a set of file tabs: it holds the selection and the header's
114
+ * `frame`, `controls`, `status` and `mono`, and wraps both the header
115
+ * (`FileTabsList`) and `FileTabsPanel`. Tabs with a `slug` are deep links:
116
+ * a plain click selects the document, a modifier click opens the link and
117
+ * leaves the selection.
118
+ */
119
+ export function FileTabs(props) {
120
+ const { tabs, value, defaultValue, onValueChange, disabled = false, mono = false, frame = 'top', controls, status, primary, secondary, className, ...rest } = props;
121
+ const scope = useScopeAttributes();
122
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
123
+ const requested = value !== undefined ? value : uncontrolled;
124
+ const selected = tabs.some((tab) => tab.id === requested) ? requested : tabs[0]?.id;
125
+ const handleValueChange = (next, details) => {
126
+ // Only user activations; Base UI's automatic fallbacks never reach a controlled root.
127
+ if (details.reason !== 'none')
128
+ return;
129
+ const tab = tabs.find((candidate) => candidate.id === next);
130
+ if (tab === undefined)
131
+ return;
132
+ // A modifier activation of a link (click, Enter or Space) opens the link instead.
133
+ if (tab.slug && hasModifier(details.event)) {
134
+ details.cancel();
135
+ return;
136
+ }
137
+ setUncontrolled(tab.id);
138
+ onValueChange?.(tab.id);
139
+ };
140
+ const context = React.useMemo(() => ({ tabs, selected, disabled, mono, frame, controls, status }), [tabs, selected, disabled, mono, frame, controls, status]);
141
+ return (React.createElement(FileTabsContext.Provider, { value: context },
142
+ React.createElement(BaseTabs.Root, { ...rest, ...scope, value: selected ?? null, onValueChange: handleValueChange, className: resolveClassName(className, (extra) => fileTabs({ primary, secondary, className: extra })) })));
143
+ }
144
+ const staticListState = { orientation: 'horizontal', tabActivationDirection: 'none' };
145
+ /**
146
+ * The header: one fixed 56 px row with its `--role-rule`, the folder tabs
147
+ * across its full width under 12 px of room, standing on the rule, and the
148
+ * Root's `status` and `controls` at its end. The labels take the UI face
149
+ * (mono with `mono`); the selected tab takes its panel's face and opens
150
+ * into it, the others recessed behind it with its neighbours tucked
151
+ * under it. When they overflow, their row scrolls sideways with its native
152
+ * scrollbar, which hangs just below the header (or overlays the strip's
153
+ * foot, where scrollbars overlay), so the tabs never lift off the rule.
154
+ * With one tab it shows that name as a label (no tablist), truncated with
155
+ * an ellipsis where the controls need its room; with none, the controls
156
+ * and status (a `FileTabsControl` alone hangs, with no header row), or
157
+ * nothing. Its own props (`aria-label`, `className` …) go to the tablist,
158
+ * or to the one document's label.
159
+ */
160
+ export function FileTabsList(props) {
161
+ const { 'aria-label': ariaLabel = 'Documents', className, style, ...rest } = props;
162
+ const { tabs, disabled, mono, frame, controls, status } = useFileTabsContext('FileTabsList');
163
+ const hasControls = controls != null && typeof controls !== 'boolean';
164
+ const hasStatus = status !== undefined;
165
+ const tablist = tabs.length > 1;
166
+ if (tabs.length === 0 && !hasControls && !hasStatus)
167
+ return null;
168
+ let lead = null;
169
+ if (tabs.length === 1) {
170
+ const labelClass = typeof className === 'function' ? className(staticListState) : className;
171
+ const labelStyle = typeof style === 'function' ? style(staticListState) : style;
172
+ lead = (React.createElement("span", { className: cx(styles.single, mono ? styles.singleMono : styles.singleUi, labelClass), style: labelStyle, dir: mono ? 'ltr' : undefined }, tabs[0].name));
173
+ }
174
+ else if (tablist) {
175
+ // The tablist is the tabs' native scroll row (the header's
176
+ // `data-tablist` styles it): Base UI scrolls it to bring each tab into
177
+ // view as arrow keys move focus.
178
+ lead = (React.createElement(BaseTabs.List, { ...rest, "aria-label": ariaLabel, style: style, className: resolveClassName(className, (extra) => cx(styles.list, extra)) }, tabs.map((tab) => (React.createElement(FileTabsTab, { key: tab.id, tab: tab, disabled: disabled, mono: mono })))));
179
+ }
180
+ return (React.createElement("div", { className: fileTabsHeader({ frame }), "data-tablist": tablist ? '' : undefined, "data-labelless": tabs.length === 0 ? '' : undefined },
181
+ React.createElement("div", { className: styles.bar },
182
+ React.createElement("div", { className: styles.lead }, lead),
183
+ hasControls || hasStatus ? (React.createElement("div", { className: styles.side },
184
+ hasStatus ? (React.createElement("span", { role: "status", className: styles.status }, status)) : null,
185
+ hasControls ? (React.createElement("div", { className: styles.controls }, controls)) : null)) : null)));
186
+ }
187
+ /** One folder tab: a link when the document has a slug, else a button. */
188
+ function FileTabsTab(props) {
189
+ const { tab, disabled, mono } = props;
190
+ const content = (React.createElement("span", { className: cx(styles.label, mono ? styles.labelMono : styles.labelUi), "data-label": tab.name, dir: mono ? 'ltr' : undefined },
191
+ tab.name,
192
+ disabled ? (React.createElement("svg", { className: styles.edge, "aria-hidden": "true", focusable: "false" },
193
+ React.createElement("line", { className: styles.edgeLine, x1: "0", y1: "50%", x2: "100%", y2: "50%" }))) : null));
194
+ if (tab.slug) {
195
+ return (React.createElement(BaseTabs.Tab, { value: tab.id, disabled: disabled, className: styles.tab, nativeButton: false, render: React.createElement("a", { href: `#${tab.slug}`, onClick: handleLinkClick }) }, content));
196
+ }
197
+ return (React.createElement(BaseTabs.Tab, { value: tab.id, disabled: disabled, className: styles.tab }, content));
198
+ }
199
+ /**
200
+ * One header control for the Root's `controls`: a `<button>` holding an
201
+ * icon (an `Icon` with `weight="interactive"` takes its hover weight here;
202
+ * the ⋮ is `more_vert` at the tag tier, `size="tag"`, 20 px).
203
+ * It always hangs outside the host's inline-end edge: an ear `--size-px-4`
204
+ * wide from the host's edge line, from the host's top edge to the header
205
+ * rule's foot, with its `--fgd-size-hit` hit area past that edge and none
206
+ * over the tabs; the host leaves `--fgd-size-file-tabs-control` free there.
207
+ * Hovered or focused, the ear shows at once, drawn in `--primary12` on the
208
+ * `--role-soft-hover` fill (at the top of a rounded host, wrapping the
209
+ * host's top-end corner, so the outline runs unbroken round both); while its popup is open (`aria-expanded="true"`;
210
+ * a tooltip's `data-popup-open` changes nothing), on the `--primary1` face.
211
+ * As a Menu's trigger:
212
+ * `<Menu.Trigger render={<FileTabsControl />} aria-label="More actions">`.
213
+ * Or as a lone action, where it is the only one (Code Block's nameless
214
+ * snippet hangs its copy, `content_copy` at the tag tier): name it with
215
+ * `aria-label`, pair it with a Tooltip, and give it an `onClick`.
216
+ */
217
+ export function FileTabsControl(props) {
218
+ const { render, ref, className, ...elementProps } = props;
219
+ return useRender({
220
+ defaultTagName: 'button',
221
+ render,
222
+ ref,
223
+ props: mergeProps({ type: 'button' }, elementProps, {
224
+ className: cx(styles.control, className),
225
+ }),
226
+ });
227
+ }
228
+ const staticPanelState = {
229
+ hidden: false,
230
+ orientation: 'horizontal',
231
+ tabActivationDirection: 'none',
232
+ transitionStatus: undefined,
233
+ };
234
+ /**
235
+ * The panel for the selected tab: `role="tabpanel"`, labelled by the selected
236
+ * tab, which `aria-controls` it. Its element stays the same across selections,
237
+ * so the content inside is never remounted; empty hidden panels stand in for
238
+ * the other tabs, so every tab's `aria-controls` resolves. With fewer than
239
+ * two tabs it renders a plain `div` (there is no tablist to pair with).
240
+ */
241
+ export function FileTabsPanel(props) {
242
+ const { className, style, render, keepMounted, children, ...rest } = props;
243
+ const { tabs, selected } = useFileTabsContext('FileTabsPanel');
244
+ if (tabs.length < 2 || selected === undefined) {
245
+ const plainClass = typeof className === 'function' ? className(staticPanelState) : className;
246
+ const plainStyle = typeof style === 'function' ? style(staticPanelState) : style;
247
+ return (React.createElement("div", { ...rest, className: cx(styles.panel, plainClass), style: plainStyle }, children));
248
+ }
249
+ return (React.createElement(React.Fragment, null,
250
+ React.createElement(BaseTabs.Panel, { ...rest, render: render, keepMounted: keepMounted, value: selected, style: style, className: resolveClassName(className, (extra) => cx(styles.panel, extra)) }, children),
251
+ tabs.map((tab) => tab.id === selected ? null : (React.createElement(BaseTabs.Panel, { key: tab.id, value: tab.id, keepMounted: true, className: styles.panel })))));
252
+ }
253
+ //# sourceMappingURL=FileTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTabs.js","sourceRoot":"","sources":["../../src/navigation/file-tabs/FileTabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAE9C,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE;QACR,6EAA6E;QAC7E,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,sBAAsB;KAClC;CACF,CAAC,CAAA;AAEF,2EAA2E;AAC3E,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACxC,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,QAAQ;YACpB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,IAAI,EAAE,MAAM,CAAC,SAAS;SACvB;KACF;IACD,eAAe,EAAE;QACf,KAAK,EAAE,KAAK;KACb;CACF,CAAC,CAAA;AAqHF,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAA8B,IAAI,CAAC,CAAA;AAC9E,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IACjD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,wGAAwG;AACxG,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,IAAI,GAAG,KAAiF,CAAA;IAC9F,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC9E,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAA0C;IACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,cAAc,EAAE,CAAA;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IACT,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;IAClC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAEpE,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAA;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEnF,MAAM,iBAAiB,GAAG,CAAC,IAAwB,EAAE,OAAyC,EAAE,EAAE;QAChG,sFAAsF;QACtF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAM;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;QAC3D,IAAI,GAAG,KAAK,SAAS;YAAE,OAAM;QAC7B,kFAAkF;QAClF,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,MAAM,EAAE,CAAA;YAChB,OAAM;QACR,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EACnE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAC1D,CAAA;IAED,OAAO,CACL,oBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO;QACtC,oBAAC,QAAQ,CAAC,IAAI,OACR,IAAI,KACJ,KAAK,EACT,KAAK,EAAE,QAAQ,IAAI,IAAI,EACvB,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAC/C,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CACnD,GACD,CACuB,CAC5B,CAAA;AACH,CAAC;AAQD,MAAM,eAAe,GAAwB,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAA;AAE1G;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,YAAY,EAAE,SAAS,GAAG,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAClF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;IAE5F,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,SAAS,CAAA;IACrE,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAA;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAE/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAEhE,IAAI,IAAI,GAAoB,IAAI,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3F,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAC/E,IAAI,GAAG,CACL,8BACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EACpF,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAE5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACR,CACR,CAAA;IACH,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,2DAA2D;QAC3D,uEAAuE;QACvE,iCAAiC;QACjC,IAAI,GAAG,CACL,oBAAC,QAAQ,CAAC,IAAI,OACR,IAAI,gBACI,SAAS,EACrB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAExE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,oBAAC,WAAW,IAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,CACvE,CAAC,CACY,CACjB,CAAA;IACH,CAAC;IAED,OAAO,CACL,6BACE,SAAS,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,kBACtB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,oBACtB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAElD,6BAAK,SAAS,EAAE,MAAM,CAAC,GAAG;YACxB,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IAAG,IAAI,CAAO;YACxC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,CAC1B,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;gBAGxB,SAAS,CAAC,CAAC,CAAC,CACX,8BAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,MAAM,CAAC,MAAM,IACzC,MAAM,CACF,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,WAAW,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,IAC5B,QAAQ,CACL,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACF,CACP,CAAA;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,KAAyD;IAC5E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACrC,MAAM,OAAO,GAAG,CACd,8BACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBACzD,GAAG,CAAC,IAAI,EACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAE5B,GAAG,CAAC,IAAI;QACR,QAAQ,CAAC,CAAC,CAAC,CACV,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBAAc,MAAM,EAAC,SAAS,EAAC,OAAO;YAC/D,8BAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,KAAK,GAAG,CACnE,CACP,CAAC,CAAC,CAAC,IAAI,CACH,CACR,CAAA;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CACL,oBAAC,QAAQ,CAAC,GAAG,IACX,KAAK,EAAE,GAAG,CAAC,EAAE,EACb,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,CAAC,GAAG,EACrB,YAAY,EAAE,KAAK,EACnB,MAAM,EAAE,2BAAG,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,GAAI,IAE5D,OAAO,CACK,CAChB,CAAA;IACH,CAAC;IAED,OAAO,CACL,oBAAC,QAAQ,CAAC,GAAG,IAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,IACnE,OAAO,CACK,CAChB,CAAA;AACH,CAAC;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAA;IACzD,OAAO,SAAS,CAAC;QACf,cAAc,EAAE,QAAQ;QACxB,MAAM;QACN,GAAG;QACH,KAAK,EAAE,UAAU,CAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE;YAC5D,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;SACzC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;AAKD,MAAM,gBAAgB,GAAyB;IAC7C,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,YAAY;IACzB,sBAAsB,EAAE,MAAM;IAC9B,gBAAgB,EAAE,SAAS;CAC5B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAC1E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAE9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5F,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAChF,OAAO,CACL,gCAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,IACtE,QAAQ,CACL,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL;QACE,oBAAC,QAAQ,CAAC,KAAK,OACT,IAAI,EACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAEzE,QAAQ,CACM;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChB,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,oBAAC,QAAQ,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,QAAC,SAAS,EAAE,MAAM,CAAC,KAAK,GAAI,CACpF,CACF,CACA,CACJ,CAAA;AACH,CAAC"}