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
@@ -9,9 +9,12 @@
9
9
  :tabindex="interactive ? 0 : undefined"
10
10
  @click="handleClick"
11
11
  @keydown="handleKeydown"
12
+ @mouseenter="onMouseenter"
13
+ @mouseleave="onMouseleave"
12
14
  >
13
15
  <span
14
16
  v-if="showSeed && competitor?.seed != null"
17
+ :style="seedTypographyStyles"
15
18
  class="origam-bracket-competitor__seed"
16
19
  >
17
20
  {{ competitor.seed }}
@@ -28,8 +31,26 @@
28
31
  {{ displayName }}
29
32
  </span>
30
33
 
34
+ <span
35
+ v-if="forfeit"
36
+ class="origam-bracket-competitor__forfeit"
37
+ >
38
+ {{ forfeitLabel }}
39
+ </span>
40
+
41
+ <span
42
+ v-if="hasAdvantage"
43
+ :aria-label="advantageAriaLabel"
44
+ :style="advantageTypographyStyles"
45
+ :title="advantageAriaLabel"
46
+ class="origam-bracket-competitor__advantage"
47
+ >
48
+ {{ advantageLabel }}
49
+ </span>
50
+
31
51
  <span
32
52
  v-if="showScore"
53
+ :style="scoreTypographyStyles"
33
54
  class="origam-bracket-competitor__score"
34
55
  >
35
56
  {{ displayScore }}
@@ -37,9 +58,18 @@
37
58
  </component>
38
59
  </template>
39
60
 
40
- <script setup>
41
- import { computed, StyleValue } from "vue";
42
- import { useProps } from "../../composables";
61
+ <script lang="ts" setup>
62
+ import { computed, ComputedRef, StyleValue } from "vue";
63
+ import {
64
+ useActive,
65
+ useDensity,
66
+ useDimension,
67
+ useHover,
68
+ useProps,
69
+ useStateEffect,
70
+ useTypography
71
+ } from "../../composables";
72
+ import { isIntent, tokenForegroundForIntent } from "../../utils/Commons/color.util";
43
73
  const props = defineProps({
44
74
  competitor: { type: [Object, null], required: true },
45
75
  score: { type: [Number, String], required: false },
@@ -48,14 +78,65 @@ const props = defineProps({
48
78
  showScore: { type: Boolean, required: false, default: true },
49
79
  showSeed: { type: Boolean, required: false, default: false },
50
80
  interactive: { type: Boolean, required: false, default: true },
51
- color: { type: String, required: false, default: "primary" },
81
+ advantageRounds: { type: Number, required: false },
82
+ forfeit: { type: Boolean, required: false },
52
83
  id: { type: String, required: false },
53
84
  class: { type: [String, Array, Object], required: false },
54
85
  style: { type: [String, Array, Object, Boolean, null], required: false, skipCheck: true },
55
- tag: { type: String, required: false, default: "div" }
86
+ tag: { type: String, required: false, default: "div" },
87
+ color: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
88
+ bgColor: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
89
+ hover: { type: [Boolean, Object], required: false },
90
+ active: { type: [Boolean, Object], required: false },
91
+ activeClass: { type: String, required: false },
92
+ rounded: { type: [Boolean, Number, String, null], required: false, skipCheck: true },
93
+ roundedTopRight: { type: [Boolean, Number, String], required: false },
94
+ roundedTopLeft: { type: [Boolean, Number, String], required: false },
95
+ roundedBottomLeft: { type: [Boolean, Number, String], required: false },
96
+ roundedBottomRight: { type: [Boolean, Number, String], required: false },
97
+ elevation: { type: [Number, String], required: false },
98
+ border: { type: [Boolean, Number, String, Array], required: false, skipCheck: true },
99
+ borderTop: { type: [Boolean, Number, String], required: false },
100
+ borderLeft: { type: [Boolean, Number, String], required: false },
101
+ borderBottom: { type: [Boolean, Number, String], required: false },
102
+ borderRight: { type: [Boolean, Number, String], required: false },
103
+ borderBlock: { type: [Boolean, Number, String], required: false },
104
+ borderInline: { type: [Boolean, Number, String], required: false },
105
+ borderColor: { type: String, required: false },
106
+ borderStyle: { type: String, required: false },
107
+ density: { type: null, required: false },
108
+ height: { type: [Number, String], required: false },
109
+ maxHeight: { type: [Number, String], required: false },
110
+ maxWidth: { type: [Number, String], required: false },
111
+ minHeight: { type: [Number, String], required: false },
112
+ minWidth: { type: [Number, String], required: false },
113
+ width: { type: [Number, String], required: false },
114
+ padding: { type: [Boolean, Number, String], required: false },
115
+ paddingTop: { type: [Boolean, Number, String], required: false },
116
+ paddingLeft: { type: [Boolean, Number, String], required: false },
117
+ paddingBottom: { type: [Boolean, Number, String], required: false },
118
+ paddingRight: { type: [Boolean, Number, String], required: false },
119
+ paddingBlock: { type: [Boolean, Number, String], required: false },
120
+ paddingInline: { type: [Boolean, Number, String], required: false },
121
+ margin: { type: [Boolean, Number, String], required: false },
122
+ marginTop: { type: [Boolean, Number, String], required: false },
123
+ marginLeft: { type: [Boolean, Number, String], required: false },
124
+ marginBottom: { type: [Boolean, Number, String], required: false },
125
+ marginRight: { type: [Boolean, Number, String], required: false },
126
+ marginBlock: { type: [Boolean, Number, String], required: false },
127
+ marginInline: { type: [Boolean, Number, String], required: false },
128
+ fontFamily: { type: String, required: false },
129
+ fontSize: { type: String, required: false },
130
+ fontWeight: { type: String, required: false },
131
+ lineHeight: { type: String, required: false },
132
+ letterSpacing: { type: String, required: false }
56
133
  });
57
134
  const emit = defineEmits(["click"]);
58
135
  const { filterProps } = useProps(props);
136
+ const { typographyStyles: competitorTypographyStyles } = useTypography(props, "bracket-competitor");
137
+ const { typographyStyles: seedTypographyStyles } = useTypography(props, "bracket-seed");
138
+ const { typographyStyles: scoreTypographyStyles } = useTypography(props, "bracket-score");
139
+ const { typographyStyles: advantageTypographyStyles } = useTypography(props, "bracket-advantage");
59
140
  const isTbd = computed(() => props.competitor === null);
60
141
  const displayName = computed(() => {
61
142
  if (isTbd.value) return "TBD";
@@ -66,6 +147,13 @@ const displayScore = computed(() => {
66
147
  if (typeof props.score === "number") return String(props.score);
67
148
  return props.score;
68
149
  });
150
+ const forfeitLabel = "forfeit";
151
+ const hasAdvantage = computed(() => (props.advantageRounds ?? 0) > 0);
152
+ const advantageLabel = computed(() => `+${props.advantageRounds ?? 0}`);
153
+ const advantageAriaLabel = computed(() => {
154
+ const rounds = props.advantageRounds ?? 0;
155
+ return `${rounds}-round head start`;
156
+ });
69
157
  const ariaLabel = computed(() => {
70
158
  if (isTbd.value) return "To be determined";
71
159
  const base = props.competitor.name;
@@ -75,6 +163,7 @@ const ariaLabel = computed(() => {
75
163
  });
76
164
  const handleClick = (event) => {
77
165
  if (!props.interactive) return;
166
+ onActive();
78
167
  emit("click", event);
79
168
  };
80
169
  const handleKeydown = (event) => {
@@ -83,19 +172,62 @@ const handleKeydown = (event) => {
83
172
  event.preventDefault();
84
173
  emit("click", event);
85
174
  };
175
+ const { hoverClasses, isHover, hoverState, onMouseenter, onMouseleave } = useHover(props);
176
+ const { activeClasses, isActive, activeState, onActive } = useActive(props);
177
+ const activeNotHover = computed(() => Boolean(isActive.value) && !isHover.value);
178
+ const {
179
+ colorClasses,
180
+ colorStyles,
181
+ borderClasses,
182
+ borderStyles,
183
+ roundedClasses,
184
+ roundedStyles,
185
+ elevationClasses,
186
+ elevationStyles,
187
+ paddingClasses,
188
+ paddingStyles,
189
+ marginClasses,
190
+ marginStyles
191
+ } = useStateEffect(props, isHover, activeNotHover, hoverState, activeState);
192
+ const { dimensionStyles } = useDimension(props);
193
+ const { densityClasses } = useDensity(props, "origam-bracket-competitor");
194
+ const borderColorStyle = computed(() => {
195
+ const value = props.borderColor;
196
+ return value && isIntent(value) ? [`border-color: ${tokenForegroundForIntent(value)}`] : [];
197
+ });
86
198
  const rowStyles = computed(() => {
87
- return [props.style];
199
+ return [
200
+ colorStyles.value,
201
+ borderStyles.value,
202
+ borderColorStyle.value,
203
+ roundedStyles.value,
204
+ elevationStyles.value,
205
+ paddingStyles.value,
206
+ marginStyles.value,
207
+ dimensionStyles.value,
208
+ competitorTypographyStyles.value,
209
+ props.style
210
+ ];
88
211
  });
89
212
  const rowClasses = computed(() => {
90
213
  return [
91
214
  "origam-bracket-competitor",
92
- `origam-bracket-competitor--color-${props.color}`,
93
215
  {
94
216
  "origam-bracket-competitor--winner": props.isWinner,
95
217
  "origam-bracket-competitor--loser": props.isLoser,
96
218
  "origam-bracket-competitor--tbd": isTbd.value,
219
+ "origam-bracket-competitor--forfeit": props.forfeit,
97
220
  "origam-bracket-competitor--interactive": props.interactive
98
221
  },
222
+ colorClasses.value,
223
+ hoverClasses.value,
224
+ activeClasses.value,
225
+ borderClasses.value,
226
+ roundedClasses.value,
227
+ elevationClasses.value,
228
+ paddingClasses.value,
229
+ marginClasses.value,
230
+ densityClasses.value,
99
231
  props.class
100
232
  ];
101
233
  });
@@ -117,7 +249,7 @@ defineExpose({
117
249
  font-weight: var(--origam-bracket-competitor---font-weight, 400);
118
250
  color: var(--origam-bracket-competitor---color, currentColor);
119
251
  background-color: var(--origam-bracket-competitor---background-color, transparent);
120
- border: 0;
252
+ appearance: none;
121
253
  transition: background-color 120ms ease, color 120ms ease;
122
254
  user-select: none;
123
255
 
@@ -125,7 +257,8 @@ defineExpose({
125
257
  min-width: var(--origam-bracket-seed---min-width, 20px);
126
258
  font-size: var(--origam-bracket-seed---font-size, 0.75rem);
127
259
  font-weight: var(--origam-bracket-seed---font-weight, 500);
128
- color: var(--origam-bracket-seed---color, var(--origam-color__text---tertiary, rgba(0, 0, 0, 0.5)));
260
+ color: var(--origam-bracket-seed---color, currentColor);
261
+ opacity: var(--origam-bracket-seed---opacity, 0.7);
129
262
  text-align: end;
130
263
  flex: 0 0 auto;
131
264
  }
@@ -146,6 +279,38 @@ defineExpose({
146
279
  white-space: nowrap;
147
280
  }
148
281
 
282
+ &__advantage {
283
+ flex: 0 0 auto;
284
+ padding-block: var(--origam-bracket-advantage---padding-block, 1px);
285
+ padding-inline: var(--origam-bracket-advantage---padding-inline, 6px);
286
+ font-size: var(--origam-bracket-advantage---font-size, 0.6875rem);
287
+ font-weight: var(--origam-bracket-advantage---font-weight, 700);
288
+ line-height: 1.4;
289
+ color: var(--origam-bracket-advantage---color, var(--origam-color__action--primary---fg, #fff));
290
+ background-color: var(--origam-bracket-advantage---background-color, var(--origam-color__action--primary---bg, #1976d2));
291
+ border-radius: var(--origam-bracket-advantage---border-radius, 9999px);
292
+ }
293
+
294
+ &__forfeit {
295
+ flex: 0 0 auto;
296
+ padding-block: 1px;
297
+ padding-inline: 6px;
298
+ font-size: 0.625rem;
299
+ font-weight: 700;
300
+ text-transform: uppercase;
301
+ letter-spacing: 0.04em;
302
+ color: var(--origam-color__feedback--warning---bg, #ed6c02);
303
+ border: 1px solid currentColor;
304
+ border-radius: 4px;
305
+ }
306
+
307
+ &--forfeit {
308
+ .origam-bracket-competitor__name {
309
+ text-decoration: line-through;
310
+ opacity: 0.7;
311
+ }
312
+ }
313
+
149
314
  &__score {
150
315
  min-width: var(--origam-bracket-score---min-width, 28px);
151
316
  text-align: end;
@@ -174,19 +339,31 @@ defineExpose({
174
339
  font-weight: var(--origam-bracket-competitor--winner---font-weight, 600);
175
340
 
176
341
  .origam-bracket-competitor__score {
177
- color: var(--origam-bracket-competitor--winner---color, var(--origam-color__action--primary---bg, #1976d2));
342
+ color: var(--origam-bracket-competitor--winner---color, currentColor);
178
343
  }
179
344
  }
180
345
 
181
346
  &--loser {
182
- color: var(--origam-bracket-competitor--loser---color, var(--origam-color__text---tertiary, rgba(0, 0, 0, 0.5)));
183
- opacity: var(--origam-bracket-competitor--loser---opacity, 0.75);
347
+ color: var(--origam-bracket-competitor--loser---color, currentColor);
348
+ opacity: var(--origam-bracket-competitor--loser---opacity, 0.85);
184
349
  }
185
350
 
186
351
  &--tbd {
187
- color: var(--origam-bracket-competitor--pending---color, var(--origam-color__text---tertiary, rgba(0, 0, 0, 0.5)));
352
+ color: var(--origam-bracket-competitor--pending---color, currentColor);
353
+ opacity: var(--origam-bracket-competitor--pending---opacity, 0.7);
188
354
  font-style: var(--origam-bracket-competitor--pending---font-style, italic);
189
355
  }
356
+
357
+ &--density-compact {
358
+ --origam-bracket-competitor---height: 28px;
359
+ --origam-bracket-competitor---padding-block: 2px;
360
+ --origam-bracket-competitor---font-size: 0.8125rem;
361
+ }
362
+
363
+ &--density-comfortable {
364
+ --origam-bracket-competitor---height: 44px;
365
+ --origam-bracket-competitor---padding-block: 8px;
366
+ }
190
367
  }
191
368
  </style>
192
369
 
@@ -2,11 +2,14 @@
2
2
  <component
3
3
  :is="tag"
4
4
  :id="id"
5
+ ref="matchRef"
5
6
  :aria-label="ariaLabel"
6
7
  :class="matchClasses"
7
8
  :style="matchStyles"
8
9
  role="group"
9
10
  @click="handleMatchClick"
11
+ @mouseenter="onMouseenter"
12
+ @mouseleave="onMouseleave"
10
13
  >
11
14
  <div
12
15
  v-if="match.scheduledAt || resolvedStatus"
@@ -18,6 +21,15 @@
18
21
  >
19
22
  {{ statusLabel }}
20
23
  </span>
24
+ <a
25
+ v-if="isLive && to"
26
+ :href="to"
27
+ class="origam-bracket-match__watch"
28
+ rel="noopener noreferrer"
29
+ target="_blank"
30
+ >
31
+ {{ watchLabel }}
32
+ </a>
21
33
  <span
22
34
  v-if="match.scheduledAt"
23
35
  class="origam-bracket-match__schedule"
@@ -35,7 +47,8 @@
35
47
  :side="'A'"
36
48
  >
37
49
  <origam-bracket-competitor
38
- :color="color"
50
+ :advantage-rounds="advantageA"
51
+ :forfeit="isForfeitA"
39
52
  :competitor="match.competitorA"
40
53
  :interactive="interactive"
41
54
  :is-loser="isLoserA"
@@ -48,7 +61,7 @@
48
61
  />
49
62
  </slot>
50
63
 
51
- <div class="origam-bracket-match__divider"/>
64
+ <origam-divider class="origam-bracket-match__divider"/>
52
65
 
53
66
  <slot
54
67
  name="competitor"
@@ -58,7 +71,8 @@
58
71
  :side="'B'"
59
72
  >
60
73
  <origam-bracket-competitor
61
- :color="color"
74
+ :advantage-rounds="advantageB"
75
+ :forfeit="isForfeitB"
62
76
  :competitor="match.competitorB"
63
77
  :interactive="interactive"
64
78
  :is-loser="isLoserB"
@@ -74,22 +88,65 @@
74
88
  </component>
75
89
  </template>
76
90
 
77
- <script setup>
78
- import { computed, StyleValue } from "vue";
91
+ <script lang="ts" setup>
92
+ import { computed, onBeforeUnmount, onMounted, ref, StyleValue, watch } from "vue";
79
93
  import OrigamBracketCompetitor from "./OrigamBracketCompetitor.vue";
80
- import { useProps } from "../../composables";
94
+ import OrigamDivider from "../Divider/OrigamDivider.vue";
95
+ import { useActive, useDensity, useDimension, useHover, useMargin, usePadding, useProps } from "../../composables";
96
+ import { bracketSurfaceVars, resolveBracketForeground } from "../../utils/Bracket/bracket-surface.util";
81
97
  const props = defineProps({
82
98
  match: { type: Object, required: true },
83
99
  status: { type: null, required: false },
100
+ to: { type: String, required: false },
84
101
  isFinal: { type: Boolean, required: false, default: false },
85
102
  showScores: { type: Boolean, required: false, default: true },
86
103
  showSeed: { type: Boolean, required: false, default: false },
87
104
  interactive: { type: Boolean, required: false, default: true },
88
- color: { type: String, required: false, default: "primary" },
89
105
  id: { type: String, required: false },
90
106
  class: { type: [String, Array, Object], required: false },
91
107
  style: { type: [String, Array, Object, Boolean, null], required: false, skipCheck: true },
92
- tag: { type: String, required: false, default: "div" }
108
+ tag: { type: String, required: false, default: "div" },
109
+ color: { type: [String, Object, Boolean, null], required: false, skipCheck: true, default: "primary" },
110
+ bgColor: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
111
+ hover: { type: [Boolean, Object], required: false },
112
+ active: { type: [Boolean, Object], required: false },
113
+ activeClass: { type: String, required: false },
114
+ rounded: { type: [Boolean, Number, String, null], required: false, skipCheck: true },
115
+ roundedTopRight: { type: [Boolean, Number, String], required: false },
116
+ roundedTopLeft: { type: [Boolean, Number, String], required: false },
117
+ roundedBottomLeft: { type: [Boolean, Number, String], required: false },
118
+ roundedBottomRight: { type: [Boolean, Number, String], required: false },
119
+ elevation: { type: [Number, String], required: false },
120
+ border: { type: [Boolean, Number, String, Array], required: false, skipCheck: true },
121
+ borderTop: { type: [Boolean, Number, String], required: false },
122
+ borderLeft: { type: [Boolean, Number, String], required: false },
123
+ borderBottom: { type: [Boolean, Number, String], required: false },
124
+ borderRight: { type: [Boolean, Number, String], required: false },
125
+ borderBlock: { type: [Boolean, Number, String], required: false },
126
+ borderInline: { type: [Boolean, Number, String], required: false },
127
+ borderColor: { type: String, required: false },
128
+ borderStyle: { type: String, required: false },
129
+ density: { type: null, required: false },
130
+ height: { type: [Number, String], required: false },
131
+ maxHeight: { type: [Number, String], required: false },
132
+ maxWidth: { type: [Number, String], required: false },
133
+ minHeight: { type: [Number, String], required: false },
134
+ minWidth: { type: [Number, String], required: false },
135
+ width: { type: [Number, String], required: false },
136
+ padding: { type: [Boolean, Number, String], required: false },
137
+ paddingTop: { type: [Boolean, Number, String], required: false },
138
+ paddingLeft: { type: [Boolean, Number, String], required: false },
139
+ paddingBottom: { type: [Boolean, Number, String], required: false },
140
+ paddingRight: { type: [Boolean, Number, String], required: false },
141
+ paddingBlock: { type: [Boolean, Number, String], required: false },
142
+ paddingInline: { type: [Boolean, Number, String], required: false },
143
+ margin: { type: [Boolean, Number, String], required: false },
144
+ marginTop: { type: [Boolean, Number, String], required: false },
145
+ marginLeft: { type: [Boolean, Number, String], required: false },
146
+ marginBottom: { type: [Boolean, Number, String], required: false },
147
+ marginRight: { type: [Boolean, Number, String], required: false },
148
+ marginBlock: { type: [Boolean, Number, String], required: false },
149
+ marginInline: { type: [Boolean, Number, String], required: false }
93
150
  });
94
151
  const emit = defineEmits(["click", "competitor-click", "winner-click"]);
95
152
  const { filterProps } = useProps(props);
@@ -104,6 +161,7 @@ const statusLabel = computed(() => {
104
161
  if (!resolvedStatus.value) return "";
105
162
  return STATUS_LABELS[resolvedStatus.value] ?? resolvedStatus.value;
106
163
  });
164
+ const watchLabel = "Watch live";
107
165
  const statusClasses = computed(() => {
108
166
  return [
109
167
  "origam-bracket-match__status",
@@ -130,12 +188,23 @@ const isLoserB = computed(() => {
130
188
  if (!props.match.competitorB) return false;
131
189
  return props.match.competitorB.id !== props.match.winnerId;
132
190
  });
191
+ const isForfeitA = computed(() => resolvedStatus.value === "forfeited" && isLoserA.value);
192
+ const isForfeitB = computed(() => resolvedStatus.value === "forfeited" && isLoserB.value);
193
+ const advantageFor = (competitor) => {
194
+ const advantage = props.match.advantage;
195
+ if (!advantage || !competitor) return void 0;
196
+ if (advantage.competitorId !== competitor.id) return void 0;
197
+ return advantage.rounds ?? 1;
198
+ };
199
+ const advantageA = computed(() => advantageFor(props.match.competitorA));
200
+ const advantageB = computed(() => advantageFor(props.match.competitorB));
133
201
  const ariaLabel = computed(() => {
134
202
  const a = props.match.competitorA?.name ?? "TBD";
135
203
  const b = props.match.competitorB?.name ?? "TBD";
136
204
  return `Match: ${a} versus ${b}`;
137
205
  });
138
206
  const handleMatchClick = (event) => {
207
+ onActive();
139
208
  const target = event.target;
140
209
  if (target?.closest(".origam-bracket-competitor")) return;
141
210
  emit("click", props.match, event);
@@ -147,18 +216,75 @@ const handleCompetitorClick = (event, competitor, side) => {
147
216
  emit("winner-click", competitor, props.match, event);
148
217
  }
149
218
  };
219
+ const matchRef = ref(null);
220
+ const { hoverClasses, isHover, hoverState, onMouseenter, onMouseleave } = useHover(props);
221
+ const { activeClasses, isActive, activeState, onActive } = useActive(props);
222
+ const isLive = computed(() => resolvedStatus.value === "live");
223
+ const isActiveOrLive = computed(() => isActive.value || isLive.value);
224
+ const surfaceInput = computed(() => {
225
+ if (isHover.value && hoverState.value) return { ...props, ...hoverState.value };
226
+ if (isActiveOrLive.value && activeState.value) return { ...props, ...activeState.value };
227
+ return props;
228
+ });
229
+ const { paddingClasses, paddingStyles } = usePadding(props);
230
+ const { marginClasses, marginStyles } = useMargin(props);
231
+ const { dimensionStyles } = useDimension(props);
232
+ const { densityClasses } = useDensity(props, "origam-bracket-match");
233
+ const autoTextColor = ref(null);
234
+ const measureContrast = () => {
235
+ const el = matchRef.value;
236
+ if (!props.bgColor || !el) {
237
+ autoTextColor.value = null;
238
+ return;
239
+ }
240
+ const channels = getComputedStyle(el).backgroundColor.match(/\d+(?:\.\d+)?/g);
241
+ if (!channels || channels.length < 3) {
242
+ autoTextColor.value = null;
243
+ return;
244
+ }
245
+ const linear = (channel) => {
246
+ const c = channel / 255;
247
+ return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
248
+ };
249
+ const luminance = 0.2126 * linear(+channels[0]) + 0.7152 * linear(+channels[1]) + 0.0722 * linear(+channels[2]);
250
+ autoTextColor.value = luminance < 0.179 ? "#ffffff" : "#000000";
251
+ };
252
+ let contrastTimer = null;
253
+ const scheduleContrast = () => {
254
+ if (typeof window === "undefined") return;
255
+ if (contrastTimer) clearTimeout(contrastTimer);
256
+ contrastTimer = setTimeout(measureContrast, 200);
257
+ };
258
+ watch([() => props.bgColor, () => props.match, isHover, isActiveOrLive], scheduleContrast, { flush: "post" });
259
+ onMounted(scheduleContrast);
260
+ onBeforeUnmount(() => {
261
+ if (contrastTimer) clearTimeout(contrastTimer);
262
+ contrastTimer = null;
263
+ });
150
264
  const matchStyles = computed(() => {
151
- return [props.style];
265
+ const textColor = autoTextColor.value ?? resolveBracketForeground(props.color);
266
+ return [
267
+ bracketSurfaceVars(surfaceInput.value),
268
+ textColor ? { "--origam-bracket---color": textColor, color: textColor } : {},
269
+ paddingStyles.value,
270
+ marginStyles.value,
271
+ dimensionStyles.value,
272
+ props.style
273
+ ];
152
274
  });
153
275
  const matchClasses = computed(() => {
154
276
  return [
155
277
  "origam-bracket-match",
156
- `origam-bracket-match--color-${props.color}`,
157
278
  {
158
279
  "origam-bracket-match--final": props.isFinal,
159
280
  "origam-bracket-match--interactive": props.interactive,
160
281
  [`origam-bracket-match--status-${resolvedStatus.value}`]: !!resolvedStatus.value
161
282
  },
283
+ hoverClasses.value,
284
+ activeClasses.value,
285
+ densityClasses.value,
286
+ paddingClasses.value,
287
+ marginClasses.value,
162
288
  props.class
163
289
  ];
164
290
  });
@@ -194,32 +320,58 @@ defineExpose({
194
320
  }
195
321
 
196
322
  &__status {
323
+ display: inline-flex;
324
+ align-items: center;
325
+ gap: 5px;
197
326
  text-transform: uppercase;
198
327
  font-weight: 600;
199
328
  letter-spacing: 0.04em;
200
329
 
330
+ &::before {
331
+ content: '';
332
+ width: 7px;
333
+ height: 7px;
334
+ border-radius: 50%;
335
+ background: currentColor;
336
+ flex: 0 0 auto;
337
+ }
338
+
339
+ &--pending {
340
+ color: var(--origam-color__text---tertiary, rgba(0, 0, 0, 0.5));
341
+ }
342
+
201
343
  &--live {
202
- color: var(--origam-color__feedback--danger---fg, #d32f2f);
203
- display: inline-flex;
204
- align-items: center;
205
- gap: 4px;
344
+ color: var(--origam-color__feedback--danger---bg, #d32f2f);
206
345
 
207
346
  &::before {
208
- content: '';
209
- width: 6px;
210
- height: 6px;
211
- border-radius: 50%;
212
- background: currentColor;
213
- animation: origam-bracket-pulse 1.2s infinite;
347
+ box-shadow: 0 0 0 0 currentColor;
348
+ animation: origam-bracket-blink 1s steps(1, end) infinite, origam-bracket-ping 1.4s ease-out infinite;
214
349
  }
215
350
  }
216
351
 
217
352
  &--completed {
218
- color: var(--origam-color__text---tertiary, rgba(0, 0, 0, 0.5));
353
+ color: var(--origam-color__feedback--success---bg, #2e7d32);
219
354
  }
220
355
 
221
356
  &--forfeited {
222
- color: var(--origam-color__feedback--warning---fg, #ed6c02);
357
+ color: var(--origam-color__feedback--warning---bg, #ed6c02);
358
+ }
359
+ }
360
+
361
+ &__watch {
362
+ display: inline-flex;
363
+ align-items: center;
364
+ gap: 2px;
365
+ color: var(--origam-color__feedback--danger---bg, #d32f2f);
366
+ font-weight: 600;
367
+ text-decoration: none;
368
+
369
+ &::after {
370
+ content: '↗';
371
+ }
372
+
373
+ &:hover {
374
+ text-decoration: underline;
223
375
  }
224
376
  }
225
377
 
@@ -233,11 +385,6 @@ defineExpose({
233
385
  flex: 1 1 auto;
234
386
  }
235
387
 
236
- &__divider {
237
- height: 1px;
238
- background: var(--origam-color__border---subtle, rgba(0, 0, 0, 0.08));
239
- }
240
-
241
388
  &--interactive {
242
389
  cursor: pointer;
243
390
 
@@ -247,32 +394,40 @@ defineExpose({
247
394
  }
248
395
  }
249
396
 
250
- &--final {
251
- background-color: var(--origam-bracket-match--final---background-color, var(--origam-color__surface---elevated, #fafafa));
252
- border-color: var(--origam-bracket-match--final---border-color, var(--origam-color__action--primary---bg, #1976d2));
253
- box-shadow: var(--origam-bracket-match--final---box-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
254
- }
255
-
256
397
  &--status-completed {
257
398
  opacity: 0.95;
258
399
  }
259
- }
260
400
 
261
- @keyframes origam-bracket-pulse {
262
- 0%, 100% {
263
- opacity: 1;
264
- transform: scale(1);
401
+ &--density-compact {
402
+ --origam-bracket-match---min-height: 56px;
403
+ --origam-bracket-competitor---height: 28px;
404
+ --origam-bracket-competitor---padding-block: 2px;
265
405
  }
266
- 50% {
267
- opacity: 0.5;
268
- transform: scale(1.4);
406
+
407
+ &--density-comfortable {
408
+ --origam-bracket-match---min-height: 88px;
409
+ --origam-bracket-competitor---height: 44px;
410
+ --origam-bracket-competitor---padding-block: 8px;
269
411
  }
270
412
  }
271
413
 
414
+ @keyframes origam-bracket-blink {
415
+ 0%, 50% { opacity: 1; }
416
+ 51%, 100% { opacity: 0.2; }
417
+ }
418
+
419
+ @keyframes origam-bracket-ping {
420
+ 0% { box-shadow: 0 0 0 0 currentColor; }
421
+ 70%, 100% { box-shadow: 0 0 0 5px transparent; }
422
+ }
423
+
272
424
  @media (prefers-reduced-motion: reduce) {
273
- @keyframes origam-bracket-pulse {
425
+ @keyframes origam-bracket-blink {
274
426
  0%, 100% { opacity: 1; }
275
427
  }
428
+ @keyframes origam-bracket-ping {
429
+ 0%, 100% { box-shadow: none; }
430
+ }
276
431
  }
277
432
  </style>
278
433