origam 2.5.0 → 2.6.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 (532) hide show
  1. package/dist/src/assets/css/tokens/dark.css +3788 -3768
  2. package/dist/src/assets/css/tokens/light.css +1894 -1884
  3. package/dist/src/assets/css/tokens/primitive.css +2 -0
  4. package/dist/src/assets/css/tokens/themes-all.css +44226 -0
  5. package/dist/src/assets/locales/en.json +34 -2
  6. package/dist/src/assets/locales/fr.json +34 -2
  7. package/dist/src/assets/scss/tokens/_dark.scss +1894 -1884
  8. package/dist/src/assets/scss/tokens/_light.scss +1894 -1884
  9. package/dist/src/assets/scss/tokens/_primitive.scss +2 -0
  10. package/dist/src/assets/scss/tokens/_themes-all.scss +44241 -0
  11. package/dist/src/components/Alert/OrigamAlert.vue +16 -21
  12. package/dist/src/components/App/OrigamApp.vue +7 -38
  13. package/dist/src/components/App/OrigamAppBar.vue +35 -17
  14. package/dist/src/components/Audio/OrigamAudio.vue +77 -6
  15. package/dist/src/components/Avatar/OrigamAvatar.vue +11 -9
  16. package/dist/src/components/Avatar/OrigamAvatarGroup.vue +26 -8
  17. package/dist/src/components/Badge/OrigamBadge.vue +13 -3
  18. package/dist/src/components/Blockquote/OrigamBlockquote.vue +137 -13
  19. package/dist/src/components/BottomNav/OrigamBottomNav.vue +34 -4
  20. package/dist/src/components/Bracket/OrigamBracket.vue +386 -64
  21. package/dist/src/components/Bracket/OrigamBracketCompetitor.vue +190 -13
  22. package/dist/src/components/Bracket/OrigamBracketMatch.vue +197 -42
  23. package/dist/src/components/Bracket/OrigamBracketRound.vue +11 -3
  24. package/dist/src/components/Breadcrumb/OrigamBreadcrumb.vue +14 -12
  25. package/dist/src/components/Breadcrumb/OrigamBreadcrumbDivider.vue +4 -1
  26. package/dist/src/components/Breadcrumb/OrigamBreadcrumbItem.vue +3 -5
  27. package/dist/src/components/Btn/OrigamBtn.vue +69 -30
  28. package/dist/src/components/Btn/OrigamBtnGroup.vue +33 -7
  29. package/dist/src/components/Btn/OrigamBtnToggle.vue +4 -7
  30. package/dist/src/components/Calendar/OrigamCalendar.vue +785 -658
  31. package/dist/src/components/Card/OrigamCard.vue +24 -3
  32. package/dist/src/components/Card/OrigamCardHeader.vue +17 -3
  33. package/dist/src/components/Card/OrigamCardText.vue +29 -7
  34. package/dist/src/components/Carousel/OrigamCarousel.vue +29 -9
  35. package/dist/src/components/Carousel/OrigamCarouselItem.vue +2 -2
  36. package/dist/src/components/Chart/OrigamChart.vue +3 -1
  37. package/dist/src/components/Chart/OrigamChartAxis.vue +1 -1
  38. package/dist/src/components/Chart/OrigamChartBoxPlot.vue +7 -3
  39. package/dist/src/components/Chart/OrigamChartBullet.vue +7 -3
  40. package/dist/src/components/Chart/OrigamChartCandlestick.vue +7 -3
  41. package/dist/src/components/Chart/OrigamChartCartesian.vue +14 -10
  42. package/dist/src/components/Chart/OrigamChartGauge.vue +7 -3
  43. package/dist/src/components/Chart/OrigamChartHeatmap.vue +7 -3
  44. package/dist/src/components/Chart/OrigamChartHoneycomb.vue +7 -3
  45. package/dist/src/components/Chart/OrigamChartLegend.vue +1 -2
  46. package/dist/src/components/Chart/OrigamChartMap.vue +7 -3
  47. package/dist/src/components/Chart/OrigamChartPareto.vue +7 -3
  48. package/dist/src/components/Chart/OrigamChartPictorial.vue +9 -6
  49. package/dist/src/components/Chart/OrigamChartPolar.vue +13 -6
  50. package/dist/src/components/Chart/OrigamChartPolarBar.vue +7 -3
  51. package/dist/src/components/Chart/OrigamChartPyramid.vue +7 -3
  52. package/dist/src/components/Chart/OrigamChartRadar.vue +7 -5
  53. package/dist/src/components/Chart/OrigamChartRangeSelector.vue +3 -4
  54. package/dist/src/components/Chart/OrigamChartSankey.vue +7 -3
  55. package/dist/src/components/Chart/OrigamChartSparkline.vue +5 -3
  56. package/dist/src/components/Chart/OrigamChartStreamgraph.vue +9 -5
  57. package/dist/src/components/Chart/OrigamChartSunburst.vue +7 -3
  58. package/dist/src/components/Chart/OrigamChartTooltip.vue +1 -1
  59. package/dist/src/components/Chart/OrigamChartTreemap.vue +7 -3
  60. package/dist/src/components/Chart/OrigamChartVariwide.vue +7 -3
  61. package/dist/src/components/Chart/OrigamChartWordCloud.vue +3 -2
  62. package/dist/src/components/Checkbox/OrigamCheckbox.vue +18 -3
  63. package/dist/src/components/Checkbox/OrigamCheckboxBtn.vue +4 -2
  64. package/dist/src/components/Chip/OrigamChip.vue +25 -12
  65. package/dist/src/components/Chip/OrigamChipGroup.vue +5 -5
  66. package/dist/src/components/ClientOnly/OrigamClientOnly.vue +1 -1
  67. package/dist/src/components/Clipboard/OrigamClipboard.vue +12 -4
  68. package/dist/src/components/Code/OrigamCode.vue +144 -39
  69. package/dist/src/components/ColorPicker/OrigamColorPicker.vue +7 -2
  70. package/dist/src/components/ColorPicker/OrigamColorPickerCanvas.vue +3 -2
  71. package/dist/src/components/ColorPicker/OrigamColorPickerEdit.vue +2 -2
  72. package/dist/src/components/ColorPicker/OrigamColorPickerPreview.vue +1 -1
  73. package/dist/src/components/ColorPicker/OrigamColorPickerSwatches.vue +1 -1
  74. package/dist/src/components/ColorPickerField/OrigamColorPickerField.vue +15 -5
  75. package/dist/src/components/CommandPalette/OrigamCommandPalette.vue +13 -3
  76. package/dist/src/components/ConfirmWrapper/OrigamConfirmWrapper.vue +1 -1
  77. package/dist/src/components/ContextualMenu/OrigamContextualMenu.vue +7 -2
  78. package/dist/src/components/Counter/OrigamCounter.vue +2 -1
  79. package/dist/src/components/DataList/OrigamDataList.vue +21 -5
  80. package/dist/src/components/DataList/OrigamDataText.vue +5 -1
  81. package/dist/src/components/DataList/OrigamDataTitle.vue +5 -1
  82. package/dist/src/components/DataTable/OrigamDataTable.vue +15 -7
  83. package/dist/src/components/DataTable/OrigamDataTableColumnCell.vue +1 -1
  84. package/dist/src/components/DataTable/OrigamDataTableFooter.vue +1 -1
  85. package/dist/src/components/DataTable/OrigamDataTableGroupHeaderRow.vue +1 -1
  86. package/dist/src/components/DataTable/OrigamDataTableHeaderCell.vue +3 -2
  87. package/dist/src/components/DataTable/OrigamDataTableHeaders.vue +2 -1
  88. package/dist/src/components/DataTable/OrigamDataTableHeadersCell.vue +1 -1
  89. package/dist/src/components/DataTable/OrigamDataTableHeadersCellMobile.vue +1 -1
  90. package/dist/src/components/DataTable/OrigamDataTableRow.vue +5 -3
  91. package/dist/src/components/DataTable/OrigamDataTableRows.vue +3 -3
  92. package/dist/src/components/DatePicker/OrigamDatePicker.vue +21 -30
  93. package/dist/src/components/DatePicker/OrigamDatePickerControls.vue +2 -2
  94. package/dist/src/components/DatePicker/OrigamDatePickerHeader.vue +1 -1
  95. package/dist/src/components/DatePicker/OrigamDatePickerMonth.vue +16 -28
  96. package/dist/src/components/DatePicker/OrigamDatePickerMonths.vue +3 -3
  97. package/dist/src/components/DatePicker/OrigamDatePickerYears.vue +3 -3
  98. package/dist/src/components/DatePickerField/OrigamDatePickerField.vue +27 -16
  99. package/dist/src/components/DefaultsProvider/OrigamDefaultsProvider.vue +1 -1
  100. package/dist/src/components/Dialog/OrigamDialog.vue +1 -1
  101. package/dist/src/components/Dialog/OrigamDialogConfirmation.vue +1 -1
  102. package/dist/src/components/Divider/OrigamDivider.vue +2 -2
  103. package/dist/src/components/Drawer/OrigamDrawer.vue +5 -11
  104. package/dist/src/components/EmptyState/OrigamEmptyState.vue +14 -4
  105. package/dist/src/components/ExpansionPanel/OrigamExpansionPanel.vue +12 -2
  106. package/dist/src/components/ExpansionPanel/OrigamExpansionPanelContent.vue +4 -2
  107. package/dist/src/components/ExpansionPanel/OrigamExpansionPanelHeader.vue +14 -5
  108. package/dist/src/components/ExpansionPanel/OrigamExpansionPanels.vue +2 -1
  109. package/dist/src/components/Field/OrigamField.vue +26 -9
  110. package/dist/src/components/FileField/OrigamFileField.vue +8 -3
  111. package/dist/src/components/FileField/OrigamFileFieldDragNDropItem.vue +14 -4
  112. package/dist/src/components/FileField/OrigamFileFieldListItem.vue +14 -4
  113. package/dist/src/components/Form/OrigamForm.vue +10 -2
  114. package/dist/src/components/Grid/OrigamGrid.vue +1 -1
  115. package/dist/src/components/Grid/OrigamGridItem.vue +1 -1
  116. package/dist/src/components/Grids/OrigamCol.vue +1 -1
  117. package/dist/src/components/Grids/OrigamContainer.vue +1 -1
  118. package/dist/src/components/Grids/OrigamRow.vue +6 -2
  119. package/dist/src/components/Grids/OrigamSpacer.vue +1 -1
  120. package/dist/src/components/Icon/OrigamClassIcon.vue +1 -1
  121. package/dist/src/components/Icon/OrigamComponentIcon.vue +1 -1
  122. package/dist/src/components/Icon/OrigamIcon.vue +1 -1
  123. package/dist/src/components/Icon/OrigamLigatureIcon.vue +1 -1
  124. package/dist/src/components/Icon/OrigamSvgIcon.vue +2 -2
  125. package/dist/src/components/Img/OrigamImg.vue +10 -9
  126. package/dist/src/components/InfiniteScroll/OrigamInfiniteScroll.vue +14 -7
  127. package/dist/src/components/InfiniteScroll/OrigamInfiniteScrollIntersect.vue +3 -2
  128. package/dist/src/components/InlineEdit/OrigamInlineEdit.vue +13 -4
  129. package/dist/src/components/Input/OrigamInput.vue +17 -3
  130. package/dist/src/components/ItemGroup/OrigamItem.vue +1 -1
  131. package/dist/src/components/ItemGroup/OrigamItemGroup.vue +1 -1
  132. package/dist/src/components/Kbd/OrigamKbd.vue +18 -8
  133. package/dist/src/components/Label/OrigamLabel.vue +14 -3
  134. package/dist/src/components/Layout/OrigamLayout.vue +1 -1
  135. package/dist/src/components/Lazy/OrigamLazy.vue +1 -1
  136. package/dist/src/components/List/OrigamList.vue +1 -1
  137. package/dist/src/components/List/OrigamListChildren.vue +1 -1
  138. package/dist/src/components/List/OrigamListGroup.vue +4 -1
  139. package/dist/src/components/List/OrigamListGroupActivator.vue +1 -1
  140. package/dist/src/components/List/OrigamListItem.vue +14 -4
  141. package/dist/src/components/List/OrigamListSubheader.vue +13 -3
  142. package/dist/src/components/Loader/OrigamLoader.vue +1 -1
  143. package/dist/src/components/Main/OrigamMain.vue +1 -1
  144. package/dist/src/components/Masonry/OrigamMasonry.vue +2 -2
  145. package/dist/src/components/Media/OrigamMediaController.vue +1 -1
  146. package/dist/src/components/Media/OrigamMediaScrubber.vue +3 -2
  147. package/dist/src/components/Media/OrigamMediaVolumeControl.vue +3 -2
  148. package/dist/src/components/Menu/OrigamMenu.vue +9 -2
  149. package/dist/src/components/Messages/OrigamMessages.vue +13 -4
  150. package/dist/src/components/NumberField/OrigamNumberField.vue +80 -40
  151. package/dist/src/components/NumberFormat/OrigamNumberFormat.vue +1 -1
  152. package/dist/src/components/OtpInputField/OrigamOtpInputField.vue +107 -11
  153. package/dist/src/components/Overlay/OrigamOverlay.vue +1 -1
  154. package/dist/src/components/Overlay/OrigamOverlayScrim.vue +1 -1
  155. package/dist/src/components/Pagination/OrigamPagination.vue +16 -4
  156. package/dist/src/components/Parallax/OrigamParallax.vue +9 -2
  157. package/dist/src/components/Parallax/OrigamParallaxElement.vue +1 -1
  158. package/dist/src/components/Parallax/OrigamParallaxLayer.vue +2 -2
  159. package/dist/src/components/PasswordField/OrigamPasswordField.vue +9 -2
  160. package/dist/src/components/Picker/OrigamPicker.vue +8 -3
  161. package/dist/src/components/Picker/OrigamPickerTitle.vue +10 -3
  162. package/dist/src/components/Progress/OrigamProgress.vue +6 -3
  163. package/dist/src/components/Progress/OrigamProgressCircular.vue +3 -1
  164. package/dist/src/components/Progress/OrigamProgressLinear.vue +5 -6
  165. package/dist/src/components/{QRCode → QrCode}/OrigamQrCode.vue +1 -1
  166. package/dist/src/components/QrCode/index.d.ts +1 -0
  167. package/dist/src/components/Radio/OrigamRadio.vue +20 -11
  168. package/dist/src/components/Radio/OrigamRadioBtn.vue +4 -2
  169. package/dist/src/components/Radio/OrigamRadioGroup.vue +48 -41
  170. package/dist/src/components/RatingField/OrigamRatingField.vue +9 -13
  171. package/dist/src/components/RatingField/OrigamRatingFieldItem.vue +3 -6
  172. package/dist/src/components/Responsive/OrigamResponsive.vue +1 -1
  173. package/dist/src/components/Section/OrigamSection.vue +1 -1
  174. package/dist/src/components/Select/OrigamSelect.vue +19 -10
  175. package/dist/src/components/SelectionControl/OrigamSelectionControl.vue +12 -6
  176. package/dist/src/components/SelectionControl/OrigamSelectionControlGroup.vue +2 -2
  177. package/dist/src/components/Sheet/OrigamSheet.vue +11 -3
  178. package/dist/src/components/Skeleton/OrigamSkeleton.vue +2 -4
  179. package/dist/src/components/Slide/OrigamSlideGroup.vue +1 -1
  180. package/dist/src/components/SliderField/OrigamSliderField.vue +7 -6
  181. package/dist/src/components/SliderField/OrigamSliderFieldTrack.vue +1 -1
  182. package/dist/src/components/Snackbar/OrigamSnackbar.vue +5 -4
  183. package/dist/src/components/Snackbar/OrigamSnackbarGroup.vue +1 -1
  184. package/dist/src/components/Snackbar/OrigamSnackbarItem.vue +27 -26
  185. package/dist/src/components/Stepper/OrigamStepper.vue +6 -2
  186. package/dist/src/components/Stepper/OrigamStepperItem.vue +10 -3
  187. package/dist/src/components/Switch/OrigamSwitch.vue +35 -37
  188. package/dist/src/components/Switch/OrigamSwitchTrack.vue +9 -15
  189. package/dist/src/components/SystemBar/OrigamSystemBar.vue +14 -4
  190. package/dist/src/components/Table/OrigamTable.vue +15 -3
  191. package/dist/src/components/Tabs/OrigamTab.vue +13 -3
  192. package/dist/src/components/Tabs/OrigamTabPanel.vue +1 -1
  193. package/dist/src/components/Tabs/OrigamTabPanels.vue +1 -1
  194. package/dist/src/components/Tabs/OrigamTabs.vue +1 -1
  195. package/dist/src/components/TextField/OrigamTextField.vue +8 -1
  196. package/dist/src/components/TextMask/OrigamTextMask.vue +17 -27
  197. package/dist/src/components/TextareaField/OrigamRichToolbar.vue +15 -11
  198. package/dist/src/components/TextareaField/OrigamTextareaField.vue +11 -1
  199. package/dist/src/components/ThemeProvider/OrigamThemeProvider.vue +4 -1
  200. package/dist/src/components/Timeline/OrigamTimeline.vue +3 -3
  201. package/dist/src/components/Timeline/OrigamTimelineItem.vue +3 -1
  202. package/dist/src/components/Title/OrigamTitle.vue +20 -8
  203. package/dist/src/components/Toolbar/OrigamToolbar.vue +17 -5
  204. package/dist/src/components/Tooltip/OrigamTooltip.vue +12 -3
  205. package/dist/src/components/Transition/OrigamExpandX.vue +1 -1
  206. package/dist/src/components/Transition/OrigamExpandY.vue +1 -1
  207. package/dist/src/components/Transition/OrigamFade.vue +1 -1
  208. package/dist/src/components/Transition/OrigamReverseTranslatePicker.vue +1 -1
  209. package/dist/src/components/Transition/OrigamScaleRotate.vue +1 -1
  210. package/dist/src/components/Transition/OrigamSlideX.vue +1 -1
  211. package/dist/src/components/Transition/OrigamSlideY.vue +1 -1
  212. package/dist/src/components/Transition/OrigamSnack.vue +1 -1
  213. package/dist/src/components/Transition/OrigamTransition.vue +1 -1
  214. package/dist/src/components/Transition/OrigamTranslateBottom.vue +1 -1
  215. package/dist/src/components/Transition/OrigamTranslatePicker.vue +1 -1
  216. package/dist/src/components/Transition/OrigamTranslateScale.vue +1 -1
  217. package/dist/src/components/Transition/OrigamWindowXReverseTranslate.vue +1 -1
  218. package/dist/src/components/Transition/OrigamWindowXTranslate.vue +1 -1
  219. package/dist/src/components/Transition/OrigamWindowYReverseTranslate.vue +1 -1
  220. package/dist/src/components/Transition/OrigamWindowYTranslate.vue +1 -1
  221. package/dist/src/components/Treeview/OrigamTreeview.vue +1 -1
  222. package/dist/src/components/Treeview/OrigamTreeviewNode.vue +7 -5
  223. package/dist/src/components/Video/OrigamVideo.vue +56 -63
  224. package/dist/src/components/VirtualScroll/OrigamVirtualScroll.vue +1 -1
  225. package/dist/src/components/VirtualScroll/OrigamVirtualScrollItem.vue +1 -6
  226. package/dist/src/components/Watermark/OrigamWatermark.vue +1 -1
  227. package/dist/src/components/Window/OrigamWindow.vue +32 -2
  228. package/dist/src/components/Window/OrigamWindowItem.vue +1 -1
  229. package/dist/src/components/index.cjs +1 -1
  230. package/dist/src/components/index.js +1 -1
  231. package/dist/src/composables/Chart/chart-gauge.composable.cjs +1 -1
  232. package/dist/src/composables/Chart/chart-gauge.composable.js +1 -1
  233. package/dist/src/composables/Chart/chart-header-typography.composable.cjs +20 -0
  234. package/dist/src/composables/Chart/chart-header-typography.composable.d.ts +27 -0
  235. package/dist/src/composables/Chart/chart-header-typography.composable.js +11 -0
  236. package/dist/src/composables/Chart/chart-zoom.composable.cjs +0 -1
  237. package/dist/src/composables/Chart/chart-zoom.composable.js +0 -1
  238. package/dist/src/composables/Chart/chart.composable.cjs +0 -11
  239. package/dist/src/composables/Chart/chart.composable.js +0 -11
  240. package/dist/src/composables/Code/code.composable.js +4 -1
  241. package/dist/src/composables/Commons/audio.composable.d.ts +97 -31
  242. package/dist/src/composables/Commons/border.composable.cjs +10 -0
  243. package/dist/src/composables/Commons/border.composable.js +7 -0
  244. package/dist/src/composables/Commons/color.composable.cjs +42 -42
  245. package/dist/src/composables/Commons/color.composable.d.ts +8 -3
  246. package/dist/src/composables/Commons/color.composable.js +2 -2
  247. package/dist/src/composables/Commons/date-picker-calendar.composable.cjs +1 -1
  248. package/dist/src/composables/Commons/date-picker-calendar.composable.d.ts +1 -1
  249. package/dist/src/composables/Commons/date-picker-calendar.composable.js +1 -1
  250. package/dist/src/composables/Commons/defaults.composable.cjs +10 -9
  251. package/dist/src/composables/Commons/defaults.composable.js +10 -9
  252. package/dist/src/composables/Commons/delay.composable.cjs +8 -3
  253. package/dist/src/composables/Commons/delay.composable.js +7 -4
  254. package/dist/src/composables/Commons/density.composable.cjs +1 -1
  255. package/dist/src/composables/Commons/density.composable.js +2 -2
  256. package/dist/src/composables/Commons/dragResizer.composable.cjs +7 -9
  257. package/dist/src/composables/Commons/dragResizer.composable.js +8 -9
  258. package/dist/src/composables/Commons/focus.composable.cjs +1 -1
  259. package/dist/src/composables/Commons/focus.composable.js +1 -1
  260. package/dist/src/composables/Commons/layout.composable.cjs +12 -0
  261. package/dist/src/composables/Commons/layout.composable.js +14 -0
  262. package/dist/src/composables/Commons/message.composable.cjs +1 -1
  263. package/dist/src/composables/Commons/message.composable.d.ts +1 -1
  264. package/dist/src/composables/Commons/message.composable.js +1 -1
  265. package/dist/src/composables/Commons/rounded.composable.cjs +15 -4
  266. package/dist/src/composables/Commons/rounded.composable.d.ts +1 -1
  267. package/dist/src/composables/Commons/rounded.composable.js +17 -6
  268. package/dist/src/composables/Commons/scroll.composable.cjs +2 -2
  269. package/dist/src/composables/Commons/scroll.composable.js +2 -2
  270. package/dist/src/composables/Commons/size.composable.d.ts +1 -1
  271. package/dist/src/composables/Commons/stateEffect.composable.cjs +36 -14
  272. package/dist/src/composables/Commons/stateEffect.composable.js +38 -14
  273. package/dist/src/composables/Commons/status.composable.cjs +11 -1
  274. package/dist/src/composables/Commons/status.composable.d.ts +2 -0
  275. package/dist/src/composables/Commons/status.composable.js +10 -1
  276. package/dist/src/composables/Commons/sticky.composable.d.ts +2 -14
  277. package/dist/src/composables/Commons/style.composable.cjs +5 -3
  278. package/dist/src/composables/Commons/style.composable.js +5 -3
  279. package/dist/src/composables/Commons/typography.composable.cjs +23 -0
  280. package/dist/src/composables/Commons/typography.composable.d.ts +7 -0
  281. package/dist/src/composables/Commons/typography.composable.js +21 -0
  282. package/dist/src/composables/DataTable/headers.composable.d.ts +4 -364
  283. package/dist/src/composables/Icon/icon.composable.cjs +6 -1
  284. package/dist/src/composables/Icon/icon.composable.js +4 -1
  285. package/dist/src/composables/InlineEdit/inline-edit.composable.cjs +16 -2
  286. package/dist/src/composables/InlineEdit/inline-edit.composable.js +16 -2
  287. package/dist/src/composables/Masonry/masonry.composable.d.ts +2 -1
  288. package/dist/src/composables/Parallax/transform.composable.d.ts +1 -1
  289. package/dist/src/composables/Responsive/aspect.composable.cjs +9 -1
  290. package/dist/src/composables/Responsive/aspect.composable.d.ts +1 -1
  291. package/dist/src/composables/Responsive/aspect.composable.js +9 -1
  292. package/dist/src/composables/Theme/installed-themes.composable.cjs +11 -0
  293. package/dist/src/composables/Theme/installed-themes.composable.d.ts +19 -0
  294. package/dist/src/composables/Theme/installed-themes.composable.js +5 -0
  295. package/dist/src/composables/Theme/theme.composable.cjs +86 -15
  296. package/dist/src/composables/Theme/theme.composable.d.ts +55 -10
  297. package/dist/src/composables/Theme/theme.composable.js +88 -17
  298. package/dist/src/composables/index.cjs +36 -0
  299. package/dist/src/composables/index.d.ts +3 -0
  300. package/dist/src/composables/index.js +3 -0
  301. package/dist/src/consts/Bracket/bracket.const.cjs +4 -2
  302. package/dist/src/consts/Bracket/bracket.const.d.ts +12 -0
  303. package/dist/src/consts/Bracket/bracket.const.js +2 -0
  304. package/dist/src/consts/Commons/density.const.cjs +2 -2
  305. package/dist/src/consts/Commons/density.const.d.ts +1 -1
  306. package/dist/src/consts/Commons/density.const.js +1 -1
  307. package/dist/src/consts/Commons/rounded.const.cjs +4 -2
  308. package/dist/src/consts/Commons/rounded.const.d.ts +22 -2
  309. package/dist/src/consts/Commons/rounded.const.js +3 -1
  310. package/dist/src/consts/DataTable/select.const.cjs +1 -1
  311. package/dist/src/consts/DataTable/select.const.js +1 -1
  312. package/dist/src/consts/Icon/mdi.const.cjs +6 -1
  313. package/dist/src/consts/Icon/mdi.const.js +10 -2
  314. package/dist/src/consts/Theme/theme.const.cjs +11 -1
  315. package/dist/src/consts/Theme/theme.const.d.ts +16 -0
  316. package/dist/src/consts/Theme/theme.const.js +10 -0
  317. package/dist/src/directives/Contrast/contrast.directive.cjs +150 -0
  318. package/dist/src/directives/Contrast/contrast.directive.d.ts +5 -0
  319. package/dist/src/directives/Contrast/contrast.directive.js +131 -0
  320. package/dist/src/directives/index.cjs +7 -0
  321. package/dist/src/directives/index.d.ts +1 -0
  322. package/dist/src/directives/index.js +1 -0
  323. package/dist/src/enums/BottomNav/bottom-nav-position.enum.cjs +12 -0
  324. package/dist/src/enums/BottomNav/bottom-nav-position.enum.d.ts +10 -0
  325. package/dist/src/enums/BottomNav/bottom-nav-position.enum.js +6 -0
  326. package/dist/src/enums/Toolbar/toolbar.enum.cjs +1 -0
  327. package/dist/src/enums/Toolbar/toolbar.enum.d.ts +2 -1
  328. package/dist/src/enums/Toolbar/toolbar.enum.js +1 -0
  329. package/dist/src/enums/index.cjs +22 -0
  330. package/dist/src/enums/index.d.ts +2 -0
  331. package/dist/src/enums/index.js +2 -0
  332. package/dist/src/interfaces/Alert/alert.interface.d.ts +2 -3
  333. package/dist/src/interfaces/App/app-bar.interface.d.ts +19 -1
  334. package/dist/src/interfaces/App/app.interface.cjs +1 -0
  335. package/dist/src/interfaces/App/app.interface.d.ts +24 -0
  336. package/dist/src/interfaces/Audio/audio-player.interface.d.ts +23 -2
  337. package/dist/src/interfaces/Avatar/avatar.interface.d.ts +2 -4
  338. package/dist/src/interfaces/Badge/badge.interface.d.ts +2 -2
  339. package/dist/src/interfaces/Blockquote/blockquote.interface.d.ts +23 -21
  340. package/dist/src/interfaces/BottomNav/bottom-nav.interface.d.ts +12 -4
  341. package/dist/src/interfaces/Bracket/bracket-competitor-component.interface.d.ts +17 -6
  342. package/dist/src/interfaces/Bracket/bracket-match-component.interface.d.ts +13 -6
  343. package/dist/src/interfaces/Bracket/bracket-match.interface.d.ts +22 -0
  344. package/dist/src/interfaces/Bracket/bracket-round-component.interface.d.ts +2 -2
  345. package/dist/src/interfaces/Bracket/bracket.interface.d.ts +17 -2
  346. package/dist/src/interfaces/Breadcrumb/breadcrumb-divider.interface.d.ts +2 -2
  347. package/dist/src/interfaces/Breadcrumb/breadcrumb.interface.d.ts +2 -3
  348. package/dist/src/interfaces/Btn/btn-group.interface.d.ts +2 -2
  349. package/dist/src/interfaces/Btn/btn.interface.d.ts +11 -3
  350. package/dist/src/interfaces/Calendar/calendar.interface.d.ts +7 -2
  351. package/dist/src/interfaces/Card/card-header.interface.d.ts +2 -2
  352. package/dist/src/interfaces/Card/card-text.interface.d.ts +2 -2
  353. package/dist/src/interfaces/Carousel/carousel.interface.d.ts +2 -2
  354. package/dist/src/interfaces/Chart/chart-base.interface.d.ts +9 -8
  355. package/dist/src/interfaces/Chart/chart-word-cloud.interface.d.ts +1 -1
  356. package/dist/src/interfaces/Chart/chart.interface.d.ts +12 -1
  357. package/dist/src/interfaces/Checkbox/checkbox-btn.interface.d.ts +3 -3
  358. package/dist/src/interfaces/Checkbox/checkbox.interface.d.ts +10 -9
  359. package/dist/src/interfaces/Chip/chip-group.interface.d.ts +3 -1
  360. package/dist/src/interfaces/Chip/chip.interface.d.ts +2 -2
  361. package/dist/src/interfaces/Clipboard/clipboard.interface.d.ts +2 -2
  362. package/dist/src/interfaces/Code/code.interface.d.ts +19 -2
  363. package/dist/src/interfaces/ColorPickerField/color-picker-field.interface.d.ts +2 -2
  364. package/dist/src/interfaces/CommandPalette/command-palette.interface.d.ts +2 -1
  365. package/dist/src/interfaces/Commons/calendar.interface.d.ts +3 -3
  366. package/dist/src/interfaces/Commons/commons.interface.d.ts +34 -1
  367. package/dist/src/interfaces/Commons/filters.interface.d.ts +2 -2
  368. package/dist/src/interfaces/Commons/hover.interface.d.ts +18 -3
  369. package/dist/src/interfaces/Commons/scroll.interface.d.ts +8 -1
  370. package/dist/src/interfaces/Commons/typography.interface.cjs +1 -0
  371. package/dist/src/interfaces/Commons/typography.interface.d.ts +52 -0
  372. package/dist/src/interfaces/Commons/typography.interface.js +0 -0
  373. package/dist/src/interfaces/Commons/validation.interface.d.ts +3 -1
  374. package/dist/src/interfaces/Counter/counter.interface.d.ts +2 -2
  375. package/dist/src/interfaces/DataList/data-list.interface.d.ts +2 -2
  376. package/dist/src/interfaces/DataList/data-text.interface.d.ts +5 -0
  377. package/dist/src/interfaces/DataList/data-title.interface.d.ts +5 -0
  378. package/dist/src/interfaces/DataTable/headers.interface.d.ts +5 -5
  379. package/dist/src/interfaces/DataTable/row.interface.d.ts +2 -2
  380. package/dist/src/interfaces/DatePicker/date-picker-controls.interface.d.ts +16 -8
  381. package/dist/src/interfaces/DatePicker/date-picker-header.interface.d.ts +6 -3
  382. package/dist/src/interfaces/DatePicker/date-picker-months.interface.d.ts +2 -2
  383. package/dist/src/interfaces/DatePicker/date-picker-years.interface.d.ts +1 -1
  384. package/dist/src/interfaces/DatePicker/date-picker.interface.d.ts +1 -1
  385. package/dist/src/interfaces/Dialog/dialog-confirmation.interface.d.ts +2 -2
  386. package/dist/src/interfaces/EmptyState/empty-state.interface.d.ts +9 -2
  387. package/dist/src/interfaces/ExpensionPanel/expansion-panel-header.interface.d.ts +2 -2
  388. package/dist/src/interfaces/Field/field.interface.d.ts +7 -2
  389. package/dist/src/interfaces/FileField/file-field-dragndrop-item.interface.d.ts +2 -2
  390. package/dist/src/interfaces/FileField/file-field-list-item.interface.d.ts +2 -2
  391. package/dist/src/interfaces/FileField/file-field.interface.d.ts +1 -1
  392. package/dist/src/interfaces/Form/form.interface.d.ts +2 -2
  393. package/dist/src/interfaces/Grids/row.interface.d.ts +2 -2
  394. package/dist/src/interfaces/InfiniteScroll/infinite-scroll.interface.d.ts +2 -2
  395. package/dist/src/interfaces/InlineEdit/inline-edit.interface.d.ts +31 -2
  396. package/dist/src/interfaces/Input/input.interface.d.ts +4 -3
  397. package/dist/src/interfaces/Kbd/kbd.interface.d.ts +2 -2
  398. package/dist/src/interfaces/Label/label.interface.d.ts +2 -2
  399. package/dist/src/interfaces/List/list-group.interface.d.ts +4 -1
  400. package/dist/src/interfaces/List/list-item.interface.d.ts +2 -2
  401. package/dist/src/interfaces/List/list-subheader.interface.d.ts +2 -2
  402. package/dist/src/interfaces/Media/media-scrubber.interface.d.ts +10 -2
  403. package/dist/src/interfaces/Messages/messages.interface.d.ts +2 -2
  404. package/dist/src/interfaces/NumberField/number-field.interface.d.ts +1 -1
  405. package/dist/src/interfaces/Nuxt/nuxt-module.interface.d.ts +55 -15
  406. package/dist/src/interfaces/OtpInputField/otp-input-field.interface.d.ts +4 -2
  407. package/dist/src/interfaces/Pagination/pagination.interface.d.ts +18 -3
  408. package/dist/src/interfaces/Parallax/parallax.interface.d.ts +2 -2
  409. package/dist/src/interfaces/PasswordField/password-field.interface.d.ts +1 -1
  410. package/dist/src/interfaces/Picker/picker-title.interface.d.ts +2 -2
  411. package/dist/src/interfaces/Progress/progress.interface.d.ts +8 -2
  412. package/dist/src/interfaces/RatingField/rating-field-item.interface.d.ts +2 -1
  413. package/dist/src/interfaces/SelectionControl/selection-control-group.interface.d.ts +2 -1
  414. package/dist/src/interfaces/SelectionControl/selection-control.interface.d.ts +23 -5
  415. package/dist/src/interfaces/Sheet/sheet.interface.d.ts +2 -2
  416. package/dist/src/interfaces/Snackbar/snackbar-item.interface.d.ts +2 -2
  417. package/dist/src/interfaces/SystemBar/system-bar.interface.d.ts +2 -2
  418. package/dist/src/interfaces/Table/table.interface.d.ts +2 -2
  419. package/dist/src/interfaces/Tabs/tab.interface.d.ts +7 -2
  420. package/dist/src/interfaces/TextField/text-field.interface.d.ts +1 -1
  421. package/dist/src/interfaces/TextMask/text-mask.interface.d.ts +7 -33
  422. package/dist/src/interfaces/TextareaField/textarea-field.interface.d.ts +3 -3
  423. package/dist/src/interfaces/Theme/origam-theme.interface.cjs +1 -0
  424. package/dist/src/interfaces/Theme/origam-theme.interface.d.ts +114 -0
  425. package/dist/src/interfaces/Theme/origam-theme.interface.js +0 -0
  426. package/dist/src/interfaces/Timeline/timeline.interface.d.ts +1 -1
  427. package/dist/src/interfaces/Title/title.interface.d.ts +2 -2
  428. package/dist/src/interfaces/Toolbar/toolbar.interface.d.ts +2 -2
  429. package/dist/src/interfaces/Tooltip/tooltip.interface.d.ts +2 -2
  430. package/dist/src/interfaces/Video/video.interface.d.ts +2 -2
  431. package/dist/src/interfaces/Window/window.interface.d.ts +2 -2
  432. package/dist/src/interfaces/index.cjs +33 -0
  433. package/dist/src/interfaces/index.d.ts +3 -0
  434. package/dist/src/interfaces/index.js +3 -0
  435. package/dist/src/nuxt/module.cjs +78 -8
  436. package/dist/src/nuxt/module.js +81 -9
  437. package/dist/src/nuxt/plugin.client.cjs +28 -10
  438. package/dist/src/nuxt/plugin.client.js +28 -10
  439. package/dist/src/nuxt/plugin.server.cjs +52 -12
  440. package/dist/src/nuxt/plugin.server.js +55 -13
  441. package/dist/src/origam.cjs +39 -2
  442. package/dist/src/origam.d.ts +19 -1
  443. package/dist/src/origam.js +46 -5
  444. package/dist/src/services/Commons/date-adapter.service.d.ts +1 -1
  445. package/dist/src/themes/index.cjs +24 -0
  446. package/dist/src/themes/index.d.ts +1 -0
  447. package/dist/src/themes/index.js +1 -0
  448. package/dist/src/themes/origam.theme.cjs +906 -0
  449. package/dist/src/themes/origam.theme.d.ts +4 -0
  450. package/dist/src/themes/origam.theme.js +379 -0
  451. package/dist/src/types/BottomNav/bottom-nav.type.d.ts +2 -0
  452. package/dist/src/types/Commons/font-family.type.cjs +1 -0
  453. package/dist/src/types/Commons/font-family.type.d.ts +5 -0
  454. package/dist/src/types/Commons/font-family.type.js +0 -0
  455. package/dist/src/types/Commons/font-size.type.cjs +1 -0
  456. package/dist/src/types/Commons/font-size.type.d.ts +6 -0
  457. package/dist/src/types/Commons/font-size.type.js +0 -0
  458. package/dist/src/types/Commons/font-weight.type.cjs +1 -0
  459. package/dist/src/types/Commons/font-weight.type.d.ts +5 -0
  460. package/dist/src/types/Commons/font-weight.type.js +0 -0
  461. package/dist/src/types/Commons/letter-spacing.type.cjs +1 -0
  462. package/dist/src/types/Commons/letter-spacing.type.d.ts +5 -0
  463. package/dist/src/types/Commons/letter-spacing.type.js +0 -0
  464. package/dist/src/types/Commons/line-height.type.cjs +1 -0
  465. package/dist/src/types/Commons/line-height.type.d.ts +5 -0
  466. package/dist/src/types/Commons/line-height.type.js +0 -0
  467. package/dist/src/types/Commons/mode.type.d.ts +1 -1
  468. package/dist/src/types/Theme/installed-theme.type.cjs +1 -0
  469. package/dist/src/types/Theme/installed-theme.type.d.ts +31 -0
  470. package/dist/src/types/Theme/installed-theme.type.js +0 -0
  471. package/dist/src/types/Theme/semantic-tree.type.cjs +1 -0
  472. package/dist/src/types/Theme/semantic-tree.type.d.ts +48 -0
  473. package/dist/src/types/Theme/semantic-tree.type.js +0 -0
  474. package/dist/src/types/Theme/theme.type.d.ts +27 -6
  475. package/dist/src/types/Theme/token-tree.type.cjs +1 -0
  476. package/dist/src/types/Theme/token-tree.type.d.ts +10 -0
  477. package/dist/src/types/Theme/token-tree.type.js +0 -0
  478. package/dist/src/types/index.cjs +88 -0
  479. package/dist/src/types/index.d.ts +8 -0
  480. package/dist/src/types/index.js +8 -0
  481. package/dist/src/types/tokens.type.d.ts +1 -1
  482. package/dist/src/utils/Bracket/bracket-surface.util.cjs +106 -0
  483. package/dist/src/utils/Bracket/bracket-surface.util.d.ts +47 -0
  484. package/dist/src/utils/Bracket/bracket-surface.util.js +88 -0
  485. package/dist/src/utils/Commons/border.util.d.ts +1 -1
  486. package/dist/src/utils/Commons/color.util.cjs +4 -2
  487. package/dist/src/utils/Commons/color.util.js +4 -2
  488. package/dist/src/utils/Commons/commons.util.cjs +3 -2
  489. package/dist/src/utils/Commons/commons.util.d.ts +1 -1
  490. package/dist/src/utils/Commons/commons.util.js +3 -2
  491. package/dist/src/utils/Commons/date.util.d.ts +1 -1
  492. package/dist/src/utils/Commons/dom.util.d.ts +1 -1
  493. package/dist/src/utils/Commons/elevation.util.cjs +1 -1
  494. package/dist/src/utils/Commons/elevation.util.js +1 -1
  495. package/dist/src/utils/Commons/forwardRefs.util.cjs +1 -1
  496. package/dist/src/utils/Commons/forwardRefs.util.js +1 -1
  497. package/dist/src/utils/Commons/gradient.util.cjs +3 -3
  498. package/dist/src/utils/Commons/gradient.util.js +1 -1
  499. package/dist/src/utils/Commons/hover.util.cjs +5 -1
  500. package/dist/src/utils/Commons/hover.util.js +5 -1
  501. package/dist/src/utils/Commons/margin.util.d.ts +1 -1
  502. package/dist/src/utils/Commons/padding.util.d.ts +1 -1
  503. package/dist/src/utils/Commons/ripple.util.cjs +1 -2
  504. package/dist/src/utils/Commons/ripple.util.js +2 -3
  505. package/dist/src/utils/Commons/rounded.util.cjs +5 -0
  506. package/dist/src/utils/Commons/rounded.util.d.ts +10 -1
  507. package/dist/src/utils/Commons/rounded.util.js +4 -0
  508. package/dist/src/utils/DataTable/headers.util.cjs +1 -1
  509. package/dist/src/utils/DataTable/headers.util.js +1 -1
  510. package/dist/src/utils/DataTable/sort.util.cjs +2 -2
  511. package/dist/src/utils/DataTable/sort.util.js +2 -2
  512. package/dist/src/utils/List/list-item.util.d.ts +7 -0
  513. package/dist/src/utils/Theme/apply-theme.util.cjs +148 -0
  514. package/dist/src/utils/Theme/apply-theme.util.d.ts +65 -0
  515. package/dist/src/utils/Theme/apply-theme.util.js +125 -0
  516. package/dist/src/utils/Theme/token-name.util.cjs +47 -0
  517. package/dist/src/utils/Theme/token-name.util.d.ts +54 -0
  518. package/dist/src/utils/Theme/token-name.util.js +55 -0
  519. package/dist/src/utils/Transition/transition.util.d.ts +1 -1
  520. package/dist/src/utils/index.cjs +22 -0
  521. package/dist/src/utils/index.d.ts +2 -0
  522. package/dist/src/utils/index.js +2 -0
  523. package/package.json +22 -63
  524. package/CHANGELOG.md +0 -807
  525. package/README.md +0 -275
  526. package/dist/src/App.vue +0 -25
  527. package/dist/src/main.cjs +0 -7
  528. package/dist/src/main.d.ts +0 -1
  529. package/dist/src/main.js +0 -4
  530. /package/dist/src/components/{QRCode → QrCode}/index.cjs +0 -0
  531. /package/dist/src/components/{QRCode → QrCode}/index.js +0 -0
  532. /package/dist/src/{components/QRCode/index.d.ts → interfaces/App/app.interface.js} +0 -0
@@ -63,8 +63,105 @@
63
63
  </div>
64
64
  </template>
65
65
 
66
+ <template v-else-if="variant === BRACKET_VARIANT.DOUBLE_ELIMINATION">
67
+ <div
68
+ ref="doubleRef"
69
+ class="origam-bracket__double"
70
+ data-cy="origam-bracket-double"
71
+ >
72
+ <svg
73
+ v-if="showConnectors"
74
+ :viewBox="connectorViewBox"
75
+ aria-hidden="true"
76
+ class="origam-bracket__connectors"
77
+ preserveAspectRatio="none"
78
+ >
79
+ <template
80
+ v-for="path in connectorPaths"
81
+ :key="path.key"
82
+ >
83
+ <slot
84
+ name="connector"
85
+ :from="path.from"
86
+ :to="path.to"
87
+ >
88
+ <path
89
+ :class="['origam-bracket__connector', { 'origam-bracket__connector--winner': path.winner }]"
90
+ :d="path.d"
91
+ fill="none"
92
+ />
93
+ </slot>
94
+ </template>
95
+ </svg>
96
+
97
+ <section
98
+ v-for="section in doubleSections"
99
+ :key="section.key"
100
+ :class="['origam-bracket__de-section', `origam-bracket__de-section--${section.key}`]"
101
+ :data-cy="`origam-bracket-de-${section.key}`"
102
+ >
103
+ <h2
104
+ v-if="section.label"
105
+ class="origam-bracket__de-label"
106
+ :style="typographyStyles"
107
+ >
108
+ {{ section.label }}
109
+ </h2>
110
+ <div class="origam-bracket__de-tree">
111
+ <origam-bracket-round
112
+ v-for="(round, index) in section.rounds"
113
+ :key="round.id"
114
+ :color="roundColor"
115
+ :data-cy="`origam-bracket-${section.key}-round-${index}`"
116
+ :direction="DIRECTION.HORIZONTAL"
117
+ :index="index"
118
+ :interactive="interactive"
119
+ :round="round"
120
+ :show-round-title="showRoundTitles"
121
+ :show-scores="showScores"
122
+ :show-seed="showSeed"
123
+ :total-rounds="section.rounds.length"
124
+ class="origam-bracket__round"
125
+ @competitor-click="onCompetitorClick"
126
+ @match-click="onMatchClick"
127
+ @winner-click="onWinnerClick"
128
+ >
129
+ <template
130
+ v-if="$slots['round-title']"
131
+ #round-title="scope"
132
+ >
133
+ <slot
134
+ name="round-title"
135
+ v-bind="scope"
136
+ />
137
+ </template>
138
+ <template
139
+ v-if="$slots.match"
140
+ #match="scope"
141
+ >
142
+ <slot
143
+ name="match"
144
+ v-bind="scope"
145
+ />
146
+ </template>
147
+ <template
148
+ v-if="$slots.competitor"
149
+ #competitor="scope"
150
+ >
151
+ <slot
152
+ name="competitor"
153
+ v-bind="scope"
154
+ />
155
+ </template>
156
+ </origam-bracket-round>
157
+ </div>
158
+ </section>
159
+ </div>
160
+ </template>
161
+
66
162
  <template v-else>
67
163
  <div
164
+ ref="treeRef"
68
165
  :class="treeClasses"
69
166
  data-cy="origam-bracket-tree"
70
167
  >
@@ -96,7 +193,7 @@
96
193
  <origam-bracket-round
97
194
  v-for="(round, index) in displayRounds"
98
195
  :key="round.id"
99
- :color="color"
196
+ :color="roundColor"
100
197
  :data-cy="`origam-bracket-round-${index}`"
101
198
  :direction="direction"
102
199
  :index="index"
@@ -145,18 +242,15 @@
145
242
  </component>
146
243
  </template>
147
244
 
148
- <script setup>
149
- import { computed, StyleValue } from "vue";
245
+ <script lang="ts" setup>
246
+ import { computed, nextTick, onBeforeUnmount, onMounted, ref, StyleValue, watch } from "vue";
150
247
  import OrigamBracketRound from "./OrigamBracketRound.vue";
151
248
  import {
152
- useBackgroundColor,
153
249
  useDimension,
154
- useElevation,
155
250
  useMargin,
156
251
  usePadding,
157
252
  useProps,
158
- useRounded,
159
- useTextColor
253
+ useTypography
160
254
  } from "../../composables";
161
255
  import {
162
256
  BRACKET_DEFAULT_MATCH_GAP,
@@ -165,6 +259,13 @@ import {
165
259
  BRACKET_DEFAULT_ROUND_GAP
166
260
  } from "../../consts";
167
261
  import { BRACKET_VARIANT, DIRECTION } from "../../enums";
262
+ import {
263
+ bracketDashArray,
264
+ bracketSurfaceVars,
265
+ resolveBracketBorderColor,
266
+ resolveBracketBorderWidth,
267
+ resolveBracketForeground
268
+ } from "../../utils/Bracket/bracket-surface.util";
168
269
  const props = defineProps({
169
270
  rounds: { type: Array, required: true },
170
271
  variant: { type: null, required: false, default: BRACKET_VARIANT.SINGLE_ELIMINATION },
@@ -173,6 +274,8 @@ const props = defineProps({
173
274
  showScores: { type: Boolean, required: false, default: true },
174
275
  showSeed: { type: Boolean, required: false, default: false },
175
276
  interactive: { type: Boolean, required: false, default: true },
277
+ winnersLabel: { type: String, required: false, default: "Winners bracket" },
278
+ losersLabel: { type: String, required: false, default: "Losers bracket" },
176
279
  id: { type: String, required: false },
177
280
  class: { type: [String, Array, Object], required: false },
178
281
  style: { type: [String, Array, Object, Boolean, null], required: false, skipCheck: true },
@@ -185,6 +288,15 @@ const props = defineProps({
185
288
  roundedBottomRight: { type: [Boolean, Number, String], required: false },
186
289
  color: { type: [String, Object, Boolean, null], required: false, skipCheck: true, default: "primary" },
187
290
  bgColor: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
291
+ border: { type: [Boolean, Number, String, Array], required: false, skipCheck: true },
292
+ borderTop: { type: [Boolean, Number, String], required: false },
293
+ borderLeft: { type: [Boolean, Number, String], required: false },
294
+ borderBottom: { type: [Boolean, Number, String], required: false },
295
+ borderRight: { type: [Boolean, Number, String], required: false },
296
+ borderBlock: { type: [Boolean, Number, String], required: false },
297
+ borderInline: { type: [Boolean, Number, String], required: false },
298
+ borderColor: { type: String, required: false },
299
+ borderStyle: { type: String, required: false },
188
300
  height: { type: [Number, String], required: false },
189
301
  maxHeight: { type: [Number, String], required: false },
190
302
  maxWidth: { type: [Number, String], required: false },
@@ -205,12 +317,18 @@ const props = defineProps({
205
317
  paddingBottom: { type: [Boolean, Number, String], required: false },
206
318
  paddingRight: { type: [Boolean, Number, String], required: false },
207
319
  paddingBlock: { type: [Boolean, Number, String], required: false },
208
- paddingInline: { type: [Boolean, Number, String], required: false }
320
+ paddingInline: { type: [Boolean, Number, String], required: false },
321
+ fontFamily: { type: String, required: false },
322
+ fontSize: { type: String, required: false },
323
+ fontWeight: { type: String, required: false },
324
+ lineHeight: { type: String, required: false },
325
+ letterSpacing: { type: String, required: false }
209
326
  });
210
327
  const emit = defineEmits(["match-click", "winner-click", "competitor-click"]);
211
328
  const { filterProps } = useProps(props);
212
329
  const resolvedId = computed(() => props.id ?? "origam-bracket");
213
330
  const ariaLabel = "Tournament bracket";
331
+ const roundColor = computed(() => props.color);
214
332
  const displayRounds = computed(() => {
215
333
  if (props.variant !== BRACKET_VARIANT.DOUBLE_ELIMINATION) return props.rounds;
216
334
  const winners = props.rounds.filter((r) => r.side === "winner" || r.side === void 0);
@@ -218,6 +336,17 @@ const displayRounds = computed(() => {
218
336
  const grandFinals = props.rounds.filter((r) => r.side === "grand-final");
219
337
  return [...winners, ...losers, ...grandFinals];
220
338
  });
339
+ const winnerRounds = computed(() => props.rounds.filter((r) => r.side === "winner" || r.side === void 0));
340
+ const loserRounds = computed(() => props.rounds.filter((r) => r.side === "loser"));
341
+ const grandFinalRounds = computed(() => props.rounds.filter((r) => r.side === "grand-final"));
342
+ const doubleSections = computed(() => {
343
+ const all = [
344
+ { key: "winners", label: props.winnersLabel ?? "", rounds: winnerRounds.value },
345
+ { key: "losers", label: props.losersLabel ?? "", rounds: loserRounds.value },
346
+ { key: "grand-final", label: "", rounds: grandFinalRounds.value }
347
+ ];
348
+ return all.filter((section) => section.rounds.length > 0);
349
+ });
221
350
  const roundRobinCompetitors = computed(() => {
222
351
  const seen = /* @__PURE__ */ new Map();
223
352
  for (const round of props.rounds) {
@@ -290,7 +419,6 @@ const baseGap = BRACKET_DEFAULT_MATCH_GAP;
290
419
  const roundGap = BRACKET_DEFAULT_ROUND_GAP;
291
420
  const isHorizontal = computed(() => props.direction === DIRECTION.HORIZONTAL);
292
421
  const verticalRoundThickness = 120;
293
- const roundThickness = computed(() => isHorizontal.value ? matchWidth : verticalRoundThickness);
294
422
  const showConnectors = computed(() => {
295
423
  if (props.variant === BRACKET_VARIANT.ROUND_ROBIN) return false;
296
424
  return displayRounds.value.length > 1;
@@ -305,64 +433,162 @@ const maxMatchesInRound = computed(() => {
305
433
  const totalHeight = computed(() => {
306
434
  return maxMatchesInRound.value * (matchHeight + baseGap);
307
435
  });
308
- const totalWidth = computed(() => {
309
- const n = displayRounds.value.length;
310
- return n * roundThickness.value + (n - 1) * roundGap;
311
- });
312
- const connectorViewBox = computed(() => {
313
- if (isHorizontal.value) {
314
- return `0 0 ${totalWidth.value} ${totalHeight.value}`;
436
+ const treeRef = ref(null);
437
+ const doubleRef = ref(null);
438
+ const connectorViewBox = ref("0 0 0 0");
439
+ const connectorPaths = ref([]);
440
+ const measureDoubleConnectors = () => {
441
+ const rootEl = doubleRef.value;
442
+ if (!rootEl || !showConnectors.value) {
443
+ connectorPaths.value = [];
444
+ return;
315
445
  }
316
- return `0 0 ${totalHeight.value} ${totalWidth.value}`;
317
- });
318
- const matchYCenter = (_roundIndex, matchIndex, roundMatchCount) => {
319
- const slot = totalHeight.value / roundMatchCount;
320
- return slot * matchIndex + slot / 2;
321
- };
322
- const matchXCenter = (roundIndex) => {
323
- const t = roundThickness.value;
324
- return roundIndex * (t + roundGap) + t / 2;
446
+ const rootRect = rootEl.getBoundingClientRect();
447
+ connectorViewBox.value = `0 0 ${rootRect.width} ${rootRect.height}`;
448
+ const rectById = /* @__PURE__ */ new Map();
449
+ rootEl.querySelectorAll("[data-match-id]").forEach((card) => {
450
+ rectById.set(String(card.dataset.matchId), card.getBoundingClientRect());
451
+ });
452
+ const paths = [];
453
+ for (const round of props.rounds) {
454
+ for (const match of round.matches) {
455
+ if (match.nextMatchId == null) continue;
456
+ const fromRect = rectById.get(String(match.id));
457
+ const toRect = rectById.get(String(match.nextMatchId));
458
+ if (!fromRect || !toRect) continue;
459
+ const fromCenterY = fromRect.top - rootRect.top + fromRect.height / 2;
460
+ const toCenterY = toRect.top - rootRect.top + toRect.height / 2;
461
+ const startX = fromRect.right - rootRect.left;
462
+ const endX = toRect.left - rootRect.left;
463
+ const midX = (startX + endX) / 2;
464
+ paths.push({
465
+ key: `${match.id}-${match.nextMatchId}`,
466
+ d: `M ${startX},${fromCenterY} L ${midX},${fromCenterY} L ${midX},${toCenterY} L ${endX},${toCenterY}`,
467
+ from: { matchId: match.id, x: startX, y: fromCenterY },
468
+ to: { matchId: match.nextMatchId, x: endX, y: toCenterY },
469
+ winner: match.winnerId != null
470
+ });
471
+ }
472
+ }
473
+ connectorPaths.value = paths;
325
474
  };
326
- const connectorPaths = computed(() => {
327
- if (!showConnectors.value) return [];
475
+ const measureSingleConnectors = () => {
476
+ const treeEl = treeRef.value;
477
+ if (!treeEl || !showConnectors.value) {
478
+ connectorPaths.value = [];
479
+ return;
480
+ }
481
+ const treeRect = treeEl.getBoundingClientRect();
482
+ connectorViewBox.value = `0 0 ${treeRect.width} ${treeRect.height}`;
483
+ const roundEls = Array.from(treeEl.querySelectorAll(".origam-bracket__round"));
484
+ const cardsPerRound = roundEls.map((roundEl) => {
485
+ const matchesEl = roundEl.querySelector(".origam-bracket-round__matches");
486
+ return matchesEl ? Array.from(matchesEl.children).map((card) => card.getBoundingClientRect()) : [];
487
+ });
488
+ const horiz = isHorizontal.value;
328
489
  const paths = [];
329
490
  for (let r = 0; r < displayRounds.value.length - 1; r += 1) {
330
491
  const round = displayRounds.value[r];
331
492
  const nextRound = displayRounds.value[r + 1];
493
+ const fromCards = cardsPerRound[r] ?? [];
494
+ const toCards = cardsPerRound[r + 1] ?? [];
332
495
  for (let i = 0; i < round.matches.length; i += 1) {
333
496
  const match = round.matches[i];
334
497
  let nextIndex = -1;
335
- let nextMatch;
336
498
  if (match.nextMatchId != null) {
337
499
  nextIndex = nextRound.matches.findIndex((m) => m.id === match.nextMatchId);
338
- if (nextIndex !== -1) nextMatch = nextRound.matches[nextIndex];
339
500
  }
340
- if (nextIndex === -1) {
341
- nextIndex = Math.floor(i / 2);
342
- nextMatch = nextRound.matches[nextIndex];
501
+ if (nextIndex === -1) nextIndex = Math.floor(i / 2);
502
+ const nextMatch = nextRound.matches[nextIndex];
503
+ const fromRect = fromCards[i];
504
+ const toRect = toCards[nextIndex];
505
+ if (!nextMatch || !fromRect || !toRect) continue;
506
+ const fromCenterX = fromRect.left - treeRect.left + fromRect.width / 2;
507
+ const fromCenterY = fromRect.top - treeRect.top + fromRect.height / 2;
508
+ const toCenterX = toRect.left - treeRect.left + toRect.width / 2;
509
+ const toCenterY = toRect.top - treeRect.top + toRect.height / 2;
510
+ let d;
511
+ let from;
512
+ let to;
513
+ if (horiz) {
514
+ const startX = fromRect.right - treeRect.left;
515
+ const endX = toRect.left - treeRect.left;
516
+ const midX = (startX + endX) / 2;
517
+ d = `M ${startX},${fromCenterY} L ${midX},${fromCenterY} L ${midX},${toCenterY} L ${endX},${toCenterY}`;
518
+ from = { matchId: match.id, x: startX, y: fromCenterY };
519
+ to = { matchId: nextMatch.id, x: endX, y: toCenterY };
520
+ } else {
521
+ const startY = fromRect.bottom - treeRect.top;
522
+ const endY = toRect.top - treeRect.top;
523
+ const midY = (startY + endY) / 2;
524
+ d = `M ${fromCenterX},${startY} L ${fromCenterX},${midY} L ${toCenterX},${midY} L ${toCenterX},${endY}`;
525
+ from = { matchId: match.id, x: fromCenterX, y: startY };
526
+ to = { matchId: nextMatch.id, x: toCenterX, y: endY };
343
527
  }
344
- if (!nextMatch) continue;
345
- const fromXCenter = matchXCenter(r);
346
- const toXCenter = matchXCenter(r + 1);
347
- const fromX = fromXCenter + roundThickness.value / 2;
348
- const toX = toXCenter - roundThickness.value / 2;
349
- const fromY = matchYCenter(r, i, round.matches.length);
350
- const toY = matchYCenter(r + 1, nextIndex, nextRound.matches.length);
351
- const midX = (fromX + toX) / 2;
352
- const isWinnerPath = match.winnerId != null;
353
- const horiz = isHorizontal.value;
354
- const d = horiz ? `M ${fromX},${fromY} L ${midX},${fromY} L ${midX},${toY} L ${toX},${toY}` : `M ${fromY},${fromX} L ${fromY},${midX} L ${toY},${midX} L ${toY},${toX}`;
355
528
  paths.push({
356
529
  key: `${match.id}-${nextMatch.id}`,
357
530
  d,
358
- from: { matchId: match.id, x: fromX, y: fromY },
359
- to: { matchId: nextMatch.id, x: toX, y: toY },
360
- winner: isWinnerPath
531
+ from,
532
+ to,
533
+ winner: match.winnerId != null
361
534
  });
362
535
  }
363
536
  }
364
- return paths;
537
+ connectorPaths.value = paths;
538
+ };
539
+ const measureConnectors = () => {
540
+ if (props.variant === BRACKET_VARIANT.DOUBLE_ELIMINATION) {
541
+ measureDoubleConnectors();
542
+ return;
543
+ }
544
+ if (props.variant === BRACKET_VARIANT.ROUND_ROBIN) {
545
+ connectorPaths.value = [];
546
+ return;
547
+ }
548
+ measureSingleConnectors();
549
+ };
550
+ const connectorContainer = () => {
551
+ return props.variant === BRACKET_VARIANT.DOUBLE_ELIMINATION ? doubleRef.value : treeRef.value;
552
+ };
553
+ let connectorResizeObserver = null;
554
+ const attachConnectorObserver = () => {
555
+ connectorResizeObserver?.disconnect();
556
+ const el = connectorContainer();
557
+ if (typeof ResizeObserver !== "undefined" && el) {
558
+ connectorResizeObserver = new ResizeObserver(() => measureConnectors());
559
+ connectorResizeObserver.observe(el);
560
+ }
561
+ };
562
+ onMounted(() => {
563
+ nextTick(() => {
564
+ attachConnectorObserver();
565
+ measureConnectors();
566
+ });
365
567
  });
568
+ onBeforeUnmount(() => {
569
+ connectorResizeObserver?.disconnect();
570
+ connectorResizeObserver = null;
571
+ });
572
+ watch(
573
+ () => props.variant,
574
+ () => nextTick(() => {
575
+ attachConnectorObserver();
576
+ measureConnectors();
577
+ }),
578
+ { flush: "post" }
579
+ );
580
+ watch(
581
+ [
582
+ displayRounds,
583
+ isHorizontal,
584
+ () => props.showScores,
585
+ () => props.showSeed,
586
+ () => props.density,
587
+ () => props.showRoundTitles
588
+ ],
589
+ () => nextTick(measureConnectors),
590
+ { flush: "post" }
591
+ );
366
592
  const roundStyleFor = (_index) => {
367
593
  const minHeight = `${totalHeight.value}px`;
368
594
  if (isHorizontal.value) {
@@ -389,25 +615,75 @@ const onWinnerClick = (competitor, match, event) => {
389
615
  const onCompetitorClick = (competitor, match, _side, event) => {
390
616
  emit("competitor-click", competitor, match, event);
391
617
  };
392
- const { roundedClasses, roundedStyles } = useRounded(props);
393
- const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, "bgColor");
394
- const { textColorClasses, textColorStyles } = useTextColor(props, "color");
618
+ const autoTextColor = ref(null);
619
+ const measureContrast = () => {
620
+ if (!props.bgColor) {
621
+ autoTextColor.value = null;
622
+ return;
623
+ }
624
+ const card = connectorContainer()?.querySelector(".origam-bracket-match");
625
+ if (!card) {
626
+ autoTextColor.value = null;
627
+ return;
628
+ }
629
+ const channels = getComputedStyle(card).backgroundColor.match(/\d+(?:\.\d+)?/g);
630
+ if (!channels || channels.length < 3) {
631
+ autoTextColor.value = null;
632
+ return;
633
+ }
634
+ const linear = (channel) => {
635
+ const c = channel / 255;
636
+ return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
637
+ };
638
+ const luminance = 0.2126 * linear(+channels[0]) + 0.7152 * linear(+channels[1]) + 0.0722 * linear(+channels[2]);
639
+ autoTextColor.value = luminance < 0.179 ? "#ffffff" : "#000000";
640
+ };
641
+ const colorVars = computed(() => {
642
+ const vars = bracketSurfaceVars(props);
643
+ const foreground = autoTextColor.value ?? resolveBracketForeground(props.color);
644
+ if (foreground) vars["--origam-bracket---color"] = foreground;
645
+ const borderColor = resolveBracketBorderColor(props.borderColor);
646
+ if (borderColor) {
647
+ vars["--origam-bracket-connector---stroke-color"] = borderColor;
648
+ vars["--origam-bracket-connector---stroke-color-winner"] = borderColor;
649
+ }
650
+ const borderWidth = resolveBracketBorderWidth(props.border);
651
+ if (borderWidth) vars["--origam-bracket-connector---stroke-width"] = borderWidth;
652
+ const dash = bracketDashArray(props.borderStyle);
653
+ if (dash.dasharray) vars["--origam-bracket-connector---stroke-dasharray"] = dash.dasharray;
654
+ if (dash.linecap) vars["--origam-bracket-connector---stroke-linecap"] = dash.linecap;
655
+ return vars;
656
+ });
657
+ const CONTRAST_SETTLE_MS = 200;
658
+ let contrastTimer = null;
659
+ const scheduleContrast = () => {
660
+ if (typeof window === "undefined") return;
661
+ if (contrastTimer) clearTimeout(contrastTimer);
662
+ contrastTimer = setTimeout(measureContrast, CONTRAST_SETTLE_MS);
663
+ };
664
+ watch(
665
+ [() => props.bgColor, () => props.variant, displayRounds],
666
+ scheduleContrast,
667
+ { flush: "post" }
668
+ );
669
+ onMounted(scheduleContrast);
670
+ onBeforeUnmount(() => {
671
+ if (contrastTimer) clearTimeout(contrastTimer);
672
+ contrastTimer = null;
673
+ });
395
674
  const { dimensionStyles } = useDimension(props);
396
- const { elevationClasses, elevationStyles } = useElevation(props);
397
675
  const { marginClasses, marginStyles } = useMargin(props);
398
676
  const { paddingClasses, paddingStyles } = usePadding(props);
677
+ const { typographyStyles } = useTypography(props, "bracket-double-label");
399
678
  const rootStyles = computed(() => {
400
679
  return [
401
- roundedStyles.value,
402
- backgroundColorStyles.value,
403
- textColorStyles.value,
404
680
  dimensionStyles.value,
405
- elevationStyles.value,
406
681
  marginStyles.value,
407
682
  paddingStyles.value,
408
683
  {
409
684
  "--origam-bracket---round-gap": `${roundGap}px`,
410
- "--origam-bracket---match-gap": `${baseGap}px`
685
+ "--origam-bracket---match-gap": `${baseGap}px`,
686
+ ...colorVars.value
411
687
  },
412
688
  props.style
413
689
  ];
@@ -419,10 +695,6 @@ const rootClasses = computed(() => {
419
695
  `origam-bracket--direction-${props.direction}`,
420
696
  `origam-bracket--density-${props.density ?? "default"}`,
421
697
  `origam-bracket--color-${props.color}`,
422
- roundedClasses.value,
423
- backgroundColorClasses.value,
424
- textColorClasses.value,
425
- elevationClasses.value,
426
698
  marginClasses.value,
427
699
  paddingClasses.value,
428
700
  props.class
@@ -478,6 +750,54 @@ defineExpose({
478
750
  z-index: 1;
479
751
  }
480
752
 
753
+ &__double {
754
+ display: grid;
755
+ position: relative;
756
+ grid-template-columns: max-content max-content;
757
+ grid-template-areas:
758
+ "winners grand-final"
759
+ "losers grand-final";
760
+ column-gap: var(--origam-bracket---round-gap, 48px);
761
+ row-gap: var(--origam-bracket-double---section-gap, 40px);
762
+ width: max-content;
763
+ }
764
+
765
+ &__de-section {
766
+ position: relative;
767
+ z-index: 1;
768
+
769
+ &--winners {
770
+ grid-area: winners;
771
+ }
772
+
773
+ &--losers {
774
+ grid-area: losers;
775
+ }
776
+
777
+ &--grand-final {
778
+ grid-area: grand-final;
779
+ align-self: center;
780
+ }
781
+ }
782
+
783
+ &__de-label {
784
+ margin: 0 0 var(--origam-bracket-double-label---margin-block-end, 12px);
785
+ color: var(--origam-bracket-double-label---color, var(--origam-color__text---primary, #1a1a1a));
786
+ font-size: var(--origam-bracket-double-label---font-size, 0.75rem);
787
+ font-weight: var(--origam-bracket-double-label---font-weight, 700);
788
+ letter-spacing: var(--origam-bracket-double-label---letter-spacing, 0.08em);
789
+ text-transform: var(--origam-bracket-double-label---text-transform, uppercase);
790
+ }
791
+
792
+ &__de-tree {
793
+ display: flex;
794
+ position: relative;
795
+ flex-direction: row;
796
+ align-items: stretch;
797
+ gap: var(--origam-bracket---round-gap, 48px);
798
+ width: max-content;
799
+ }
800
+
481
801
  &__connectors {
482
802
  position: absolute;
483
803
  inset: 0;
@@ -489,12 +809,14 @@ defineExpose({
489
809
  }
490
810
 
491
811
  &__connector {
492
- stroke: var(--origam-bracket-connector---stroke-color, var(--origam-color__border---default, rgba(0, 0, 0, 0.24)));
493
- stroke-width: var(--origam-bracket-connector---stroke-width, 1px);
812
+ stroke: var(--origam-bracket-connector---stroke-color, var(--origam-bracket-match---border-color, var(--origam-color__border---subtle, rgba(0, 0, 0, 0.12))));
813
+ stroke-width: var(--origam-bracket-connector---stroke-width, var(--origam-bracket-match---border-width, 1px));
814
+ stroke-dasharray: var(--origam-bracket-connector---stroke-dasharray, none);
815
+ stroke-linecap: var(--origam-bracket-connector---stroke-linecap, butt);
494
816
 
495
817
  &--winner {
496
- stroke: var(--origam-bracket-connector---stroke-color-winner, var(--origam-color__action--primary---bg, #1976d2));
497
- stroke-width: calc(var(--origam-bracket-connector---stroke-width, 1px) + 1px);
818
+ stroke: var(--origam-bracket-connector---stroke-color-winner, var(--origam-bracket-match---border-color, var(--origam-color__border---subtle, rgba(0, 0, 0, 0.12))));
819
+ stroke-width: var(--origam-bracket-connector---stroke-width, var(--origam-bracket-match---border-width, 1px));
498
820
  }
499
821
  }
500
822