origam 2.5.0 → 2.6.1

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 (523) 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 +9 -9
  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/stateEffect.composable.cjs +36 -14
  271. package/dist/src/composables/Commons/stateEffect.composable.js +38 -14
  272. package/dist/src/composables/Commons/status.composable.cjs +11 -1
  273. package/dist/src/composables/Commons/status.composable.d.ts +2 -0
  274. package/dist/src/composables/Commons/status.composable.js +10 -1
  275. package/dist/src/composables/Commons/sticky.composable.d.ts +2 -14
  276. package/dist/src/composables/Commons/style.composable.cjs +5 -3
  277. package/dist/src/composables/Commons/style.composable.js +5 -3
  278. package/dist/src/composables/Commons/typography.composable.cjs +23 -0
  279. package/dist/src/composables/Commons/typography.composable.d.ts +7 -0
  280. package/dist/src/composables/Commons/typography.composable.js +21 -0
  281. package/dist/src/composables/DataTable/headers.composable.d.ts +4 -364
  282. package/dist/src/composables/Icon/icon.composable.cjs +6 -1
  283. package/dist/src/composables/Icon/icon.composable.js +4 -1
  284. package/dist/src/composables/InlineEdit/inline-edit.composable.cjs +16 -2
  285. package/dist/src/composables/InlineEdit/inline-edit.composable.js +16 -2
  286. package/dist/src/composables/Masonry/masonry.composable.d.ts +2 -1
  287. package/dist/src/composables/Responsive/aspect.composable.cjs +9 -1
  288. package/dist/src/composables/Responsive/aspect.composable.d.ts +1 -1
  289. package/dist/src/composables/Responsive/aspect.composable.js +9 -1
  290. package/dist/src/composables/Theme/installed-themes.composable.cjs +11 -0
  291. package/dist/src/composables/Theme/installed-themes.composable.d.ts +19 -0
  292. package/dist/src/composables/Theme/installed-themes.composable.js +5 -0
  293. package/dist/src/composables/Theme/theme.composable.cjs +86 -15
  294. package/dist/src/composables/Theme/theme.composable.d.ts +55 -10
  295. package/dist/src/composables/Theme/theme.composable.js +88 -17
  296. package/dist/src/composables/index.cjs +36 -0
  297. package/dist/src/composables/index.d.ts +3 -0
  298. package/dist/src/composables/index.js +3 -0
  299. package/dist/src/consts/Bracket/bracket.const.cjs +4 -2
  300. package/dist/src/consts/Bracket/bracket.const.d.ts +12 -0
  301. package/dist/src/consts/Bracket/bracket.const.js +2 -0
  302. package/dist/src/consts/Commons/density.const.cjs +2 -2
  303. package/dist/src/consts/Commons/density.const.d.ts +1 -1
  304. package/dist/src/consts/Commons/density.const.js +1 -1
  305. package/dist/src/consts/Commons/rounded.const.cjs +4 -2
  306. package/dist/src/consts/Commons/rounded.const.d.ts +22 -2
  307. package/dist/src/consts/Commons/rounded.const.js +3 -1
  308. package/dist/src/consts/DataTable/select.const.cjs +1 -1
  309. package/dist/src/consts/DataTable/select.const.js +1 -1
  310. package/dist/src/consts/Icon/mdi.const.cjs +6 -1
  311. package/dist/src/consts/Icon/mdi.const.js +10 -2
  312. package/dist/src/consts/Theme/theme.const.cjs +11 -1
  313. package/dist/src/consts/Theme/theme.const.d.ts +16 -0
  314. package/dist/src/consts/Theme/theme.const.js +10 -0
  315. package/dist/src/directives/Contrast/contrast.directive.cjs +150 -0
  316. package/dist/src/directives/Contrast/contrast.directive.d.ts +5 -0
  317. package/dist/src/directives/Contrast/contrast.directive.js +131 -0
  318. package/dist/src/directives/index.cjs +7 -0
  319. package/dist/src/directives/index.d.ts +1 -0
  320. package/dist/src/directives/index.js +1 -0
  321. package/dist/src/enums/BottomNav/bottom-nav-position.enum.cjs +12 -0
  322. package/dist/src/enums/BottomNav/bottom-nav-position.enum.d.ts +10 -0
  323. package/dist/src/enums/BottomNav/bottom-nav-position.enum.js +6 -0
  324. package/dist/src/enums/Toolbar/toolbar.enum.cjs +1 -0
  325. package/dist/src/enums/Toolbar/toolbar.enum.d.ts +2 -1
  326. package/dist/src/enums/Toolbar/toolbar.enum.js +1 -0
  327. package/dist/src/enums/index.cjs +22 -0
  328. package/dist/src/enums/index.d.ts +2 -0
  329. package/dist/src/enums/index.js +2 -0
  330. package/dist/src/interfaces/Alert/alert.interface.d.ts +2 -3
  331. package/dist/src/interfaces/App/app-bar.interface.d.ts +19 -1
  332. package/dist/src/interfaces/App/app.interface.cjs +1 -0
  333. package/dist/src/interfaces/App/app.interface.d.ts +24 -0
  334. package/dist/src/interfaces/Audio/audio-player.interface.d.ts +23 -2
  335. package/dist/src/interfaces/Avatar/avatar.interface.d.ts +2 -4
  336. package/dist/src/interfaces/Badge/badge.interface.d.ts +2 -2
  337. package/dist/src/interfaces/Blockquote/blockquote.interface.d.ts +23 -21
  338. package/dist/src/interfaces/BottomNav/bottom-nav.interface.d.ts +12 -4
  339. package/dist/src/interfaces/Bracket/bracket-competitor-component.interface.d.ts +17 -6
  340. package/dist/src/interfaces/Bracket/bracket-match-component.interface.d.ts +13 -6
  341. package/dist/src/interfaces/Bracket/bracket-match.interface.d.ts +22 -0
  342. package/dist/src/interfaces/Bracket/bracket-round-component.interface.d.ts +2 -2
  343. package/dist/src/interfaces/Bracket/bracket.interface.d.ts +17 -2
  344. package/dist/src/interfaces/Breadcrumb/breadcrumb-divider.interface.d.ts +2 -2
  345. package/dist/src/interfaces/Breadcrumb/breadcrumb.interface.d.ts +2 -3
  346. package/dist/src/interfaces/Btn/btn-group.interface.d.ts +2 -2
  347. package/dist/src/interfaces/Btn/btn.interface.d.ts +11 -3
  348. package/dist/src/interfaces/Calendar/calendar.interface.d.ts +7 -2
  349. package/dist/src/interfaces/Card/card-header.interface.d.ts +2 -2
  350. package/dist/src/interfaces/Card/card-text.interface.d.ts +2 -2
  351. package/dist/src/interfaces/Carousel/carousel.interface.d.ts +2 -2
  352. package/dist/src/interfaces/Chart/chart-base.interface.d.ts +9 -8
  353. package/dist/src/interfaces/Chart/chart-word-cloud.interface.d.ts +1 -1
  354. package/dist/src/interfaces/Chart/chart.interface.d.ts +12 -1
  355. package/dist/src/interfaces/Checkbox/checkbox-btn.interface.d.ts +3 -3
  356. package/dist/src/interfaces/Checkbox/checkbox.interface.d.ts +10 -9
  357. package/dist/src/interfaces/Chip/chip-group.interface.d.ts +3 -1
  358. package/dist/src/interfaces/Chip/chip.interface.d.ts +2 -2
  359. package/dist/src/interfaces/Clipboard/clipboard.interface.d.ts +2 -2
  360. package/dist/src/interfaces/Code/code.interface.d.ts +19 -2
  361. package/dist/src/interfaces/ColorPickerField/color-picker-field.interface.d.ts +2 -2
  362. package/dist/src/interfaces/CommandPalette/command-palette.interface.d.ts +2 -1
  363. package/dist/src/interfaces/Commons/calendar.interface.d.ts +3 -3
  364. package/dist/src/interfaces/Commons/commons.interface.d.ts +34 -1
  365. package/dist/src/interfaces/Commons/filters.interface.d.ts +2 -2
  366. package/dist/src/interfaces/Commons/hover.interface.d.ts +18 -3
  367. package/dist/src/interfaces/Commons/scroll.interface.d.ts +8 -1
  368. package/dist/src/interfaces/Commons/typography.interface.cjs +1 -0
  369. package/dist/src/interfaces/Commons/typography.interface.d.ts +52 -0
  370. package/dist/src/interfaces/Commons/typography.interface.js +0 -0
  371. package/dist/src/interfaces/Commons/validation.interface.d.ts +3 -1
  372. package/dist/src/interfaces/Counter/counter.interface.d.ts +2 -2
  373. package/dist/src/interfaces/DataList/data-list.interface.d.ts +2 -2
  374. package/dist/src/interfaces/DataList/data-text.interface.d.ts +5 -0
  375. package/dist/src/interfaces/DataList/data-title.interface.d.ts +5 -0
  376. package/dist/src/interfaces/DataTable/headers.interface.d.ts +5 -5
  377. package/dist/src/interfaces/DataTable/row.interface.d.ts +2 -2
  378. package/dist/src/interfaces/DatePicker/date-picker-controls.interface.d.ts +16 -8
  379. package/dist/src/interfaces/DatePicker/date-picker-header.interface.d.ts +6 -3
  380. package/dist/src/interfaces/DatePicker/date-picker-months.interface.d.ts +2 -2
  381. package/dist/src/interfaces/DatePicker/date-picker-years.interface.d.ts +1 -1
  382. package/dist/src/interfaces/DatePicker/date-picker.interface.d.ts +1 -1
  383. package/dist/src/interfaces/Dialog/dialog-confirmation.interface.d.ts +2 -2
  384. package/dist/src/interfaces/EmptyState/empty-state.interface.d.ts +9 -2
  385. package/dist/src/interfaces/ExpensionPanel/expansion-panel-header.interface.d.ts +2 -2
  386. package/dist/src/interfaces/Field/field.interface.d.ts +7 -2
  387. package/dist/src/interfaces/FileField/file-field-dragndrop-item.interface.d.ts +2 -2
  388. package/dist/src/interfaces/FileField/file-field-list-item.interface.d.ts +2 -2
  389. package/dist/src/interfaces/FileField/file-field.interface.d.ts +1 -1
  390. package/dist/src/interfaces/Form/form.interface.d.ts +2 -2
  391. package/dist/src/interfaces/Grids/row.interface.d.ts +2 -2
  392. package/dist/src/interfaces/InfiniteScroll/infinite-scroll.interface.d.ts +2 -2
  393. package/dist/src/interfaces/InlineEdit/inline-edit.interface.d.ts +31 -2
  394. package/dist/src/interfaces/Input/input.interface.d.ts +4 -3
  395. package/dist/src/interfaces/Kbd/kbd.interface.d.ts +2 -2
  396. package/dist/src/interfaces/Label/label.interface.d.ts +2 -2
  397. package/dist/src/interfaces/List/list-group.interface.d.ts +4 -1
  398. package/dist/src/interfaces/List/list-item.interface.d.ts +2 -2
  399. package/dist/src/interfaces/List/list-subheader.interface.d.ts +2 -2
  400. package/dist/src/interfaces/Media/media-scrubber.interface.d.ts +10 -2
  401. package/dist/src/interfaces/Messages/messages.interface.d.ts +2 -2
  402. package/dist/src/interfaces/NumberField/number-field.interface.d.ts +1 -1
  403. package/dist/src/interfaces/Nuxt/nuxt-module.interface.d.ts +55 -15
  404. package/dist/src/interfaces/OtpInputField/otp-input-field.interface.d.ts +4 -2
  405. package/dist/src/interfaces/Pagination/pagination.interface.d.ts +18 -3
  406. package/dist/src/interfaces/Parallax/parallax.interface.d.ts +2 -2
  407. package/dist/src/interfaces/PasswordField/password-field.interface.d.ts +1 -1
  408. package/dist/src/interfaces/Picker/picker-title.interface.d.ts +2 -2
  409. package/dist/src/interfaces/Progress/progress.interface.d.ts +8 -2
  410. package/dist/src/interfaces/RatingField/rating-field-item.interface.d.ts +2 -1
  411. package/dist/src/interfaces/SelectionControl/selection-control-group.interface.d.ts +2 -1
  412. package/dist/src/interfaces/SelectionControl/selection-control.interface.d.ts +23 -5
  413. package/dist/src/interfaces/Sheet/sheet.interface.d.ts +2 -2
  414. package/dist/src/interfaces/Snackbar/snackbar-item.interface.d.ts +2 -2
  415. package/dist/src/interfaces/SystemBar/system-bar.interface.d.ts +2 -2
  416. package/dist/src/interfaces/Table/table.interface.d.ts +2 -2
  417. package/dist/src/interfaces/Tabs/tab.interface.d.ts +7 -2
  418. package/dist/src/interfaces/TextField/text-field.interface.d.ts +1 -1
  419. package/dist/src/interfaces/TextMask/text-mask.interface.d.ts +7 -33
  420. package/dist/src/interfaces/TextareaField/textarea-field.interface.d.ts +3 -3
  421. package/dist/src/interfaces/Theme/origam-theme.interface.cjs +1 -0
  422. package/dist/src/interfaces/Theme/origam-theme.interface.d.ts +114 -0
  423. package/dist/src/interfaces/Theme/origam-theme.interface.js +0 -0
  424. package/dist/src/interfaces/Timeline/timeline.interface.d.ts +1 -1
  425. package/dist/src/interfaces/Title/title.interface.d.ts +2 -2
  426. package/dist/src/interfaces/Toolbar/toolbar.interface.d.ts +2 -2
  427. package/dist/src/interfaces/Tooltip/tooltip.interface.d.ts +2 -2
  428. package/dist/src/interfaces/Video/video.interface.d.ts +2 -2
  429. package/dist/src/interfaces/Window/window.interface.d.ts +2 -2
  430. package/dist/src/interfaces/index.cjs +33 -0
  431. package/dist/src/interfaces/index.d.ts +3 -0
  432. package/dist/src/interfaces/index.js +3 -0
  433. package/dist/src/nuxt/module.cjs +78 -8
  434. package/dist/src/nuxt/module.js +81 -9
  435. package/dist/src/nuxt/plugin.client.cjs +28 -10
  436. package/dist/src/nuxt/plugin.client.js +28 -10
  437. package/dist/src/nuxt/plugin.server.cjs +52 -12
  438. package/dist/src/nuxt/plugin.server.js +55 -13
  439. package/dist/src/origam.cjs +39 -2
  440. package/dist/src/origam.d.ts +19 -1
  441. package/dist/src/origam.js +46 -5
  442. package/dist/src/themes/index.cjs +24 -0
  443. package/dist/src/themes/index.d.ts +1 -0
  444. package/dist/src/themes/index.js +1 -0
  445. package/dist/src/themes/origam.theme.cjs +906 -0
  446. package/dist/src/themes/origam.theme.d.ts +4 -0
  447. package/dist/src/themes/origam.theme.js +379 -0
  448. package/dist/src/types/BottomNav/bottom-nav.type.d.ts +2 -0
  449. package/dist/src/types/Commons/font-family.type.cjs +1 -0
  450. package/dist/src/types/Commons/font-family.type.d.ts +5 -0
  451. package/dist/src/types/Commons/font-family.type.js +0 -0
  452. package/dist/src/types/Commons/font-size.type.cjs +1 -0
  453. package/dist/src/types/Commons/font-size.type.d.ts +6 -0
  454. package/dist/src/types/Commons/font-size.type.js +0 -0
  455. package/dist/src/types/Commons/font-weight.type.cjs +1 -0
  456. package/dist/src/types/Commons/font-weight.type.d.ts +5 -0
  457. package/dist/src/types/Commons/font-weight.type.js +0 -0
  458. package/dist/src/types/Commons/letter-spacing.type.cjs +1 -0
  459. package/dist/src/types/Commons/letter-spacing.type.d.ts +5 -0
  460. package/dist/src/types/Commons/letter-spacing.type.js +0 -0
  461. package/dist/src/types/Commons/line-height.type.cjs +1 -0
  462. package/dist/src/types/Commons/line-height.type.d.ts +5 -0
  463. package/dist/src/types/Commons/line-height.type.js +0 -0
  464. package/dist/src/types/Commons/mode.type.d.ts +1 -1
  465. package/dist/src/types/Theme/installed-theme.type.cjs +1 -0
  466. package/dist/src/types/Theme/installed-theme.type.d.ts +31 -0
  467. package/dist/src/types/Theme/installed-theme.type.js +0 -0
  468. package/dist/src/types/Theme/semantic-tree.type.cjs +1 -0
  469. package/dist/src/types/Theme/semantic-tree.type.d.ts +48 -0
  470. package/dist/src/types/Theme/semantic-tree.type.js +0 -0
  471. package/dist/src/types/Theme/theme.type.d.ts +27 -6
  472. package/dist/src/types/Theme/token-tree.type.cjs +1 -0
  473. package/dist/src/types/Theme/token-tree.type.d.ts +10 -0
  474. package/dist/src/types/Theme/token-tree.type.js +0 -0
  475. package/dist/src/types/index.cjs +88 -0
  476. package/dist/src/types/index.d.ts +8 -0
  477. package/dist/src/types/index.js +8 -0
  478. package/dist/src/types/tokens.type.d.ts +1 -1
  479. package/dist/src/utils/Bracket/bracket-surface.util.cjs +106 -0
  480. package/dist/src/utils/Bracket/bracket-surface.util.d.ts +47 -0
  481. package/dist/src/utils/Bracket/bracket-surface.util.js +88 -0
  482. package/dist/src/utils/Commons/color.util.cjs +4 -2
  483. package/dist/src/utils/Commons/color.util.js +4 -2
  484. package/dist/src/utils/Commons/commons.util.cjs +3 -2
  485. package/dist/src/utils/Commons/commons.util.js +3 -2
  486. package/dist/src/utils/Commons/dom.util.d.ts +1 -1
  487. package/dist/src/utils/Commons/elevation.util.cjs +1 -1
  488. package/dist/src/utils/Commons/elevation.util.js +1 -1
  489. package/dist/src/utils/Commons/forwardRefs.util.cjs +1 -1
  490. package/dist/src/utils/Commons/forwardRefs.util.js +1 -1
  491. package/dist/src/utils/Commons/gradient.util.cjs +3 -3
  492. package/dist/src/utils/Commons/gradient.util.js +1 -1
  493. package/dist/src/utils/Commons/hover.util.cjs +5 -1
  494. package/dist/src/utils/Commons/hover.util.js +5 -1
  495. package/dist/src/utils/Commons/ripple.util.cjs +1 -2
  496. package/dist/src/utils/Commons/ripple.util.js +2 -3
  497. package/dist/src/utils/Commons/rounded.util.cjs +5 -0
  498. package/dist/src/utils/Commons/rounded.util.d.ts +9 -0
  499. package/dist/src/utils/Commons/rounded.util.js +4 -0
  500. package/dist/src/utils/DataTable/headers.util.cjs +1 -1
  501. package/dist/src/utils/DataTable/headers.util.js +1 -1
  502. package/dist/src/utils/DataTable/sort.util.cjs +2 -2
  503. package/dist/src/utils/DataTable/sort.util.js +2 -2
  504. package/dist/src/utils/List/list-item.util.d.ts +7 -0
  505. package/dist/src/utils/Theme/apply-theme.util.cjs +148 -0
  506. package/dist/src/utils/Theme/apply-theme.util.d.ts +65 -0
  507. package/dist/src/utils/Theme/apply-theme.util.js +125 -0
  508. package/dist/src/utils/Theme/token-name.util.cjs +47 -0
  509. package/dist/src/utils/Theme/token-name.util.d.ts +54 -0
  510. package/dist/src/utils/Theme/token-name.util.js +55 -0
  511. package/dist/src/utils/index.cjs +22 -0
  512. package/dist/src/utils/index.d.ts +2 -0
  513. package/dist/src/utils/index.js +2 -0
  514. package/package.json +17 -58
  515. package/CHANGELOG.md +0 -807
  516. package/README.md +0 -275
  517. package/dist/src/App.vue +0 -25
  518. package/dist/src/main.cjs +0 -7
  519. package/dist/src/main.d.ts +0 -1
  520. package/dist/src/main.js +0 -4
  521. /package/dist/src/components/{QRCode → QrCode}/index.cjs +0 -0
  522. /package/dist/src/components/{QRCode → QrCode}/index.js +0 -0
  523. /package/dist/src/{components/QRCode/index.d.ts → interfaces/App/app.interface.js} +0 -0
@@ -1,351 +1,365 @@
1
1
  <template>
2
- <div
3
- class="origam-calendar"
4
- :class="rootClasses"
5
- :style="rootStyles"
6
- role="application"
7
- :aria-label="ariaLabel"
8
- data-cy="origam-calendar"
9
- @keydown="onKeydown"
10
- >
11
- <slot
12
- name="header"
13
- :view="resolvedView"
14
- :title="headerTitle"
15
- :can-prev="canPrev"
16
- :can-next="canNext"
17
- :set-view="onSetView"
18
- :navigate="onNavigate"
19
- >
20
- <div
21
- class="origam-calendar__toolbar"
22
- role="toolbar"
23
- :aria-label="ariaToolbarLabel"
24
- data-cy="origam-calendar-toolbar"
25
- >
26
- <div class="origam-calendar__toolbar-nav">
27
- <button
28
- type="button"
29
- class="origam-calendar__toolbar-btn"
30
- :aria-label="ariaPrevLabel"
31
- :disabled="!canPrev"
32
- data-cy="origam-calendar-prev"
33
- @click="onNavigate('prev')"
34
- >
35
- &lt;
36
- </button>
37
- <button
38
- type="button"
39
- class="origam-calendar__toolbar-btn"
40
- :aria-label="ariaTodayLabel"
41
- data-cy="origam-calendar-today"
42
- @click="onNavigate('today')"
43
- >
44
- {{ todayLabel }}
45
- </button>
46
- <button
47
- type="button"
48
- class="origam-calendar__toolbar-btn"
49
- :aria-label="ariaNextLabel"
50
- :disabled="!canNext"
51
- data-cy="origam-calendar-next"
52
- @click="onNavigate('next')"
53
- >
54
- &gt;
55
- </button>
56
- </div>
2
+ <div
3
+ class="origam-calendar"
4
+ :class="rootClasses"
5
+ :style="rootStyles"
6
+ role="application"
7
+ :aria-label="ariaLabel"
8
+ data-cy="origam-calendar"
9
+ @keydown="onKeydown"
10
+ >
11
+ <slot
12
+ name="header"
13
+ :view="resolvedView"
14
+ :title="headerTitle"
15
+ :can-prev="canPrev"
16
+ :can-next="canNext"
17
+ :set-view="onSetView"
18
+ :navigate="onNavigate"
19
+ >
20
+ <div
21
+ class="origam-calendar__toolbar"
22
+ role="toolbar"
23
+ :aria-label="ariaToolbarLabel"
24
+ data-cy="origam-calendar-toolbar"
25
+ >
26
+ <origam-btn-group
27
+ class="origam-calendar__toolbar-nav"
28
+ density="compact"
29
+ >
30
+ <origam-btn
31
+ variant="text"
32
+ size="small"
33
+ :text="prevGlyph"
34
+ :aria-label="ariaPrevLabel"
35
+ :disabled="!canPrev"
36
+ data-cy="origam-calendar-prev"
37
+ @click="onNavigate('prev')"
38
+ />
39
+ <origam-btn
40
+ variant="text"
41
+ size="small"
42
+ :text="todayLabel"
43
+ :aria-label="ariaTodayLabel"
44
+ data-cy="origam-calendar-today"
45
+ @click="onNavigate('today')"
46
+ />
47
+ <origam-btn
48
+ variant="text"
49
+ size="small"
50
+ :text="nextGlyph"
51
+ :aria-label="ariaNextLabel"
52
+ :disabled="!canNext"
53
+ data-cy="origam-calendar-next"
54
+ @click="onNavigate('next')"
55
+ />
56
+ </origam-btn-group>
57
57
 
58
- <div
59
- class="origam-calendar__toolbar-title"
60
- data-cy="origam-calendar-title"
61
- >
62
- {{ headerTitle }}
63
- </div>
58
+ <div
59
+ class="origam-calendar__toolbar-title"
60
+ data-cy="origam-calendar-title"
61
+ >
62
+ {{ headerTitle }}
63
+ </div>
64
64
 
65
- <div
66
- class="origam-calendar__toolbar-views"
67
- role="tablist"
68
- :aria-label="ariaViewListLabel"
69
- >
70
- <button
71
- v-for="viewOption in VIEW_OPTIONS"
72
- :key="viewOption"
73
- type="button"
74
- class="origam-calendar__toolbar-btn origam-calendar__toolbar-btn--view"
75
- :class="{ 'origam-calendar__toolbar-btn--active': resolvedView === viewOption }"
76
- role="tab"
77
- :aria-selected="resolvedView === viewOption"
78
- :data-cy="`origam-calendar-view-${viewOption}`"
79
- @click="onSetView(viewOption)"
80
- >
81
- {{ viewOption }}
82
- </button>
83
- </div>
84
- </div>
85
- </slot>
65
+ <origam-btn-group
66
+ class="origam-calendar__toolbar-views"
67
+ density="compact"
68
+ :aria-label="ariaViewListLabel"
69
+ >
70
+ <origam-btn
71
+ v-for="viewOption in VIEW_OPTIONS"
72
+ :key="viewOption"
73
+ size="small"
74
+ :text="viewLabel(viewOption)"
75
+ :variant="viewBtnVariant(viewOption)"
76
+ :bg-color="viewBtnBgColor(viewOption)"
77
+ :active="isViewActive(viewOption)"
78
+ class="origam-calendar__view-btn"
79
+ :aria-pressed="isViewActive(viewOption)"
80
+ :data-cy="`origam-calendar-view-${viewOption}`"
81
+ @click="onSetView(viewOption)"
82
+ />
83
+ </origam-btn-group>
84
+ </div>
85
+ </slot>
86
86
 
87
- <div
88
- v-if="resolvedView === VIEW.MONTH"
89
- class="origam-calendar__body origam-calendar__body--month"
90
- data-cy="origam-calendar-body-month"
91
- >
92
- <div
93
- class="origam-calendar__weekdays"
94
- role="row"
95
- >
96
- <div
97
- v-if="showWeekNumbers"
98
- class="origam-calendar__weekday origam-calendar__week-number-head"
99
- aria-hidden="true"
100
- />
101
- <div
102
- v-for="weekdayName in weekdayNames"
103
- :key="weekdayName"
104
- class="origam-calendar__weekday"
105
- role="columnheader"
106
- >
107
- {{ weekdayName }}
108
- </div>
109
- </div>
110
- <div
111
- class="origam-calendar__month-grid"
112
- role="grid"
113
- :aria-label="ariaMonthLabel"
114
- >
115
- <div
116
- v-for="(weekRow, rowIndex) in monthGrid"
117
- :key="rowIndex"
118
- class="origam-calendar__month-row"
119
- role="row"
120
- >
121
- <div
122
- v-if="showWeekNumbers"
123
- class="origam-calendar__week-number"
124
- role="rowheader"
125
- :aria-label="ariaWeekNumberLabel(weekRow[0])"
126
- >
127
- {{ weekNumberOf(weekRow[0]) }}
128
- </div>
129
- <div
130
- v-for="dayCell in weekRow"
131
- :key="dayCell.toISOString()"
132
- class="origam-calendar__day-cell"
133
- :class="dayCellClasses(dayCell)"
134
- role="gridcell"
135
- tabindex="0"
136
- :aria-label="ariaDayLabel(dayCell)"
137
- :aria-selected="isInDragSelection(dayCell)"
138
- :aria-disabled="isDayDisabled(dayCell)"
139
- :data-cy="`origam-calendar-day-${dayCellKey(dayCell)}`"
140
- @click="onDayClick(dayCell, $event)"
141
- @mousedown="onCellMouseDown(dayCell, $event)"
142
- @mouseenter="onCellMouseEnter(dayCell)"
143
- >
144
- <slot
145
- name="day"
146
- :date="dayCell"
147
- :events="eventsOnDay(dayCell)"
148
- :is-today="isCellToday(dayCell)"
149
- :is-past="isCellPast(dayCell)"
150
- :is-outside="isOutsideMonth(dayCell)"
151
- :is-weekend="isCellWeekend(dayCell)"
152
- :is-disabled="isDayDisabled(dayCell)"
153
- >
154
- <div class="origam-calendar__day-number">{{ dayCell.getDate() }}</div>
155
- <div class="origam-calendar__day-events">
156
- <button
157
- v-for="event in dayEventsCapped(dayCell)"
158
- :key="`${event.id}-${dayCellKey(dayCell)}`"
159
- type="button"
160
- class="origam-calendar__event"
161
- :style="eventStyle(event)"
162
- role="button"
163
- :aria-label="ariaEventLabel(event)"
164
- :data-cy="`origam-calendar-event-${event.id}`"
165
- @click.stop="onEventClick(event, $event)"
166
- >
167
- <slot
168
- name="event"
169
- :event="event"
170
- :view="resolvedView"
171
- :is-past="isEventPast(event)"
172
- :is-today="isEventToday(event)"
173
- >
174
- <span class="origam-calendar__event-title">{{ event.title }}</span>
175
- </slot>
176
- </button>
177
- <div
178
- v-if="eventsOnDay(dayCell).length > MONTH_EVENT_LIMIT"
179
- class="origam-calendar__day-more"
180
- :data-cy="`origam-calendar-more-${dayCellKey(dayCell)}`"
181
- >
182
- +{{ eventsOnDay(dayCell).length - MONTH_EVENT_LIMIT }}
183
- </div>
184
- </div>
185
- </slot>
186
- </div>
187
- </div>
188
- </div>
189
- </div>
87
+ <div
88
+ v-if="resolvedView === VIEW.MONTH"
89
+ class="origam-calendar__body origam-calendar__body--month"
90
+ data-cy="origam-calendar-body-month"
91
+ >
92
+ <div
93
+ class="origam-calendar__weekdays"
94
+ role="row"
95
+ >
96
+ <div
97
+ v-if="showWeekNumbers"
98
+ class="origam-calendar__weekday origam-calendar__week-number-head"
99
+ aria-hidden="true"
100
+ />
101
+ <div
102
+ v-for="weekdayName in weekdayNames"
103
+ :key="weekdayName"
104
+ class="origam-calendar__weekday"
105
+ role="columnheader"
106
+ >
107
+ {{ weekdayName }}
108
+ </div>
109
+ </div>
110
+ <div
111
+ class="origam-calendar__month-grid"
112
+ role="grid"
113
+ :aria-label="ariaMonthLabel"
114
+ >
115
+ <div
116
+ v-for="(weekRow, rowIndex) in monthGrid"
117
+ :key="rowIndex"
118
+ class="origam-calendar__month-row"
119
+ role="row"
120
+ >
121
+ <div
122
+ v-if="showWeekNumbers"
123
+ class="origam-calendar__week-number"
124
+ role="rowheader"
125
+ :aria-label="ariaWeekNumberLabel(weekRow[0])"
126
+ >
127
+ {{ weekNumberOf(weekRow[0]) }}
128
+ </div>
129
+ <div
130
+ v-for="dayCell in weekRow"
131
+ :key="dayCell.toISOString()"
132
+ class="origam-calendar__day-cell"
133
+ :class="dayCellClasses(dayCell)"
134
+ role="gridcell"
135
+ tabindex="0"
136
+ :aria-label="ariaDayLabel(dayCell)"
137
+ :aria-selected="isInDragSelection(dayCell)"
138
+ :aria-disabled="isDayDisabled(dayCell)"
139
+ :data-cy="`origam-calendar-day-${dayCellKey(dayCell)}`"
140
+ @click="onDayClick(dayCell, $event)"
141
+ @mousedown="onCellMouseDown(dayCell, $event)"
142
+ @mouseenter="onCellMouseEnter(dayCell)"
143
+ >
144
+ <slot
145
+ name="day"
146
+ :date="dayCell"
147
+ :events="eventsOnDay(dayCell)"
148
+ :is-today="isCellToday(dayCell)"
149
+ :is-past="isCellPast(dayCell)"
150
+ :is-outside="isOutsideMonth(dayCell)"
151
+ :is-weekend="isCellWeekend(dayCell)"
152
+ :is-disabled="isDayDisabled(dayCell)"
153
+ >
154
+ <div class="origam-calendar__day-number">{{ dayCell.getDate() }}</div>
155
+ <div class="origam-calendar__day-events">
156
+ <button
157
+ v-for="event in dayEventsCapped(dayCell)"
158
+ :key="`${event.id}-${dayCellKey(dayCell)}`"
159
+ type="button"
160
+ class="origam-calendar__event"
161
+ :style="eventStyle(event)"
162
+ :aria-label="ariaEventLabel(event)"
163
+ :data-cy="`origam-calendar-event-${event.id}`"
164
+ @click.stop="onEventClick(event, $event)"
165
+ >
166
+ <slot
167
+ name="event"
168
+ :event="event"
169
+ :view="resolvedView"
170
+ :is-past="isEventPast(event)"
171
+ :is-today="isEventToday(event)"
172
+ >
173
+ <span class="origam-calendar__event-title">{{ event.title }}</span>
174
+ </slot>
175
+ </button>
176
+ <div
177
+ v-if="eventsOnDay(dayCell).length > MONTH_EVENT_LIMIT"
178
+ class="origam-calendar__day-more"
179
+ :data-cy="`origam-calendar-more-${dayCellKey(dayCell)}`"
180
+ >
181
+ +{{ eventsOnDay(dayCell).length - MONTH_EVENT_LIMIT }}
182
+ </div>
183
+ </div>
184
+ </slot>
185
+ </div>
186
+ </div>
187
+ </div>
188
+ </div>
190
189
 
191
- <div
192
- v-else-if="resolvedView === VIEW.WEEK || resolvedView === VIEW.DAY"
193
- class="origam-calendar__body"
194
- :class="{
190
+ <div
191
+ v-else-if="resolvedView === VIEW.WEEK || resolvedView === VIEW.DAY"
192
+ class="origam-calendar__body"
193
+ :class="{
195
194
  'origam-calendar__body--week': resolvedView === VIEW.WEEK,
196
195
  'origam-calendar__body--day': resolvedView === VIEW.DAY
197
196
  }"
198
- :data-cy="`origam-calendar-body-${resolvedView}`"
199
- >
200
- <div class="origam-calendar__timeline">
201
- <div class="origam-calendar__timeline-hours">
202
- <div
203
- v-for="(hourLabel, hourIndex) in hourLabels"
204
- :key="hourIndex"
205
- class="origam-calendar__hour-label"
206
- :style="{ height: `${slotPx * 60 / slotDuration}px` }"
207
- >
208
- {{ hourLabel }}
209
- </div>
210
- </div>
211
- <div class="origam-calendar__timeline-grid">
212
- <div
213
- v-for="day in timelineDays"
214
- :key="day.toISOString()"
215
- class="origam-calendar__timeline-day"
216
- :class="{
197
+ :data-cy="`origam-calendar-body-${resolvedView}`"
198
+ >
199
+ <div class="origam-calendar__timeline">
200
+ <div class="origam-calendar__timeline-hours">
201
+ <div
202
+ v-for="(hourLabel, hourIndex) in hourLabels"
203
+ :key="hourIndex"
204
+ class="origam-calendar__hour-label"
205
+ :style="{ height: `${slotPx * 60 / slotDuration}px` }"
206
+ >
207
+ {{ hourLabel }}
208
+ </div>
209
+ </div>
210
+ <div class="origam-calendar__timeline-grid">
211
+ <div
212
+ v-for="day in timelineDays"
213
+ :key="day.toISOString()"
214
+ class="origam-calendar__timeline-day"
215
+ :class="{
217
216
  'origam-calendar__timeline-day--today': isCellToday(day),
218
217
  'origam-calendar__timeline-day--weekend': isCellWeekend(day) && weekendHighlight
219
218
  }"
220
- role="gridcell"
221
- :aria-label="ariaDayLabel(day)"
222
- :data-cy="`origam-calendar-timeline-day-${dayCellKey(day)}`"
223
- >
224
- <div
225
- v-if="resolvedView === VIEW.WEEK"
226
- class="origam-calendar__day-header"
227
- >
228
- <slot
229
- name="dayHeader"
230
- :date="day"
231
- >
219
+ role="gridcell"
220
+ :aria-label="ariaDayLabel(day)"
221
+ :data-cy="`origam-calendar-timeline-day-${dayCellKey(day)}`"
222
+ >
223
+ <div
224
+ v-if="resolvedView === VIEW.WEEK"
225
+ class="origam-calendar__day-header"
226
+ >
227
+ <slot
228
+ name="dayHeader"
229
+ :date="day"
230
+ >
232
231
  <span class="origam-calendar__day-header-weekday">
233
232
  {{ weekdayShort(day) }}
234
233
  </span>
235
- <span class="origam-calendar__day-header-number">
234
+ <span class="origam-calendar__day-header-number">
236
235
  {{ day.getDate() }}
237
236
  </span>
238
- </slot>
239
- </div>
240
- <div
241
- class="origam-calendar__timeline-slots"
242
- :style="{ height: `${(dayEndHour - dayStartHour) * 60 / slotDuration * slotPx}px` }"
243
- @mousedown="onSlotMouseDown(day, $event)"
244
- @mousemove="onSlotMouseMove(day, $event)"
245
- @mouseup="onSlotMouseUp(day, $event)"
246
- @click="onSlotClick(day, $event)"
247
- >
248
- <div
249
- v-for="(slot, slotIndex) in dayGridFor(day)"
250
- :key="slotIndex"
251
- class="origam-calendar__timeline-slot"
252
- :class="{ 'origam-calendar__timeline-slot--hour': slot.isHourMark }"
253
- :style="{ height: `${slotPx}px` }"
254
- :data-slot-index="slotIndex"
255
- />
256
- <div
257
- v-for="event in eventsOnTimeline(day)"
258
- :key="`${event.id}-${day.toISOString()}`"
259
- class="origam-calendar__event origam-calendar__event--timeline"
260
- :style="timelineEventStyle(event, day)"
261
- role="button"
262
- tabindex="0"
263
- :aria-label="ariaEventLabel(event)"
264
- :data-cy="`origam-calendar-event-${event.id}`"
265
- @click="onEventClick(event, $event)"
266
- @mousedown.stop
267
- >
268
- <slot
269
- name="event"
270
- :event="event"
271
- :view="resolvedView"
272
- :is-past="isEventPast(event)"
273
- :is-today="isEventToday(event)"
274
- >
275
- <span class="origam-calendar__event-title">{{ event.title }}</span>
276
- <span class="origam-calendar__event-time">{{ eventTimeLabel(event) }}</span>
277
- </slot>
278
- </div>
279
- <div
280
- v-if="dragSelection && isSameDayLocal(dragSelection.day, day)"
281
- class="origam-calendar__range-overlay"
282
- :style="dragOverlayStyle"
283
- />
284
- </div>
285
- </div>
286
- </div>
287
- </div>
288
- </div>
237
+ </slot>
238
+ </div>
239
+ <div
240
+ class="origam-calendar__timeline-slots"
241
+ :style="{ height: `${(dayEndHour - dayStartHour) * 60 / slotDuration * slotPx}px` }"
242
+ @mousedown="onSlotMouseDown(day, $event)"
243
+ @mousemove="onSlotMouseMove(day, $event)"
244
+ @mouseup="onSlotMouseUp(day, $event)"
245
+ @click="onSlotClick(day, $event)"
246
+ >
247
+ <div
248
+ v-for="(slot, slotIndex) in dayGridFor(day)"
249
+ :key="slotIndex"
250
+ class="origam-calendar__timeline-slot"
251
+ :class="{ 'origam-calendar__timeline-slot--hour': slot.isHourMark }"
252
+ :style="{ height: `${slotPx}px` }"
253
+ :data-slot-index="slotIndex"
254
+ />
255
+ <button
256
+ v-for="event in eventsOnTimeline(day)"
257
+ :key="`${event.id}-${day.toISOString()}`"
258
+ type="button"
259
+ class="origam-calendar__event origam-calendar__event--timeline"
260
+ :style="timelineEventStyle(event, day)"
261
+ :aria-label="ariaEventLabel(event)"
262
+ :data-cy="`origam-calendar-event-${event.id}`"
263
+ @click="onEventClick(event, $event)"
264
+ @mousedown.stop
265
+ >
266
+ <slot
267
+ name="event"
268
+ :event="event"
269
+ :view="resolvedView"
270
+ :is-past="isEventPast(event)"
271
+ :is-today="isEventToday(event)"
272
+ >
273
+ <span class="origam-calendar__event-title">{{ event.title }}</span>
274
+ <span class="origam-calendar__event-time">{{ eventTimeLabel(event) }}</span>
275
+ </slot>
276
+ </button>
277
+ <div
278
+ v-if="dragSelection && isSameDayLocal(dragSelection.day, day)"
279
+ class="origam-calendar__range-overlay"
280
+ :style="dragOverlayStyle"
281
+ />
282
+ </div>
283
+ </div>
284
+ </div>
285
+ </div>
286
+ </div>
289
287
 
290
- <div
291
- v-else
292
- class="origam-calendar__body origam-calendar__body--agenda"
293
- data-cy="origam-calendar-body-agenda"
294
- >
295
- <template v-if="agendaEntries.length > 0">
296
- <div
297
- v-for="entry in agendaEntries"
298
- :key="entry.date.toISOString()"
299
- class="origam-calendar__agenda-day"
300
- >
301
- <div class="origam-calendar__agenda-day-header">
302
- {{ agendaDayHeader(entry.date) }}
303
- </div>
304
- <button
305
- v-for="event in entry.events"
306
- :key="event.id"
307
- type="button"
308
- class="origam-calendar__agenda-event"
309
- :style="eventStyle(event)"
310
- :aria-label="ariaEventLabel(event)"
311
- :data-cy="`origam-calendar-event-${event.id}`"
312
- @click="onEventClick(event, $event)"
313
- >
314
- <slot
315
- name="event"
316
- :event="event"
317
- :view="resolvedView"
318
- :is-past="isEventPast(event)"
319
- :is-today="isEventToday(event)"
320
- >
321
- <span class="origam-calendar__event-time">{{ eventTimeLabel(event) }}</span>
322
- <span class="origam-calendar__event-title">{{ event.title }}</span>
323
- </slot>
324
- </button>
325
- </div>
326
- </template>
327
- <div
328
- v-else
329
- class="origam-calendar__agenda-empty"
330
- data-cy="origam-calendar-agenda-empty"
331
- >
332
- <slot
333
- name="empty"
334
- :view="resolvedView"
335
- >
336
- {{ emptyLabel }}
337
- </slot>
338
- </div>
339
- </div>
340
- </div>
288
+ <div
289
+ v-else
290
+ class="origam-calendar__body origam-calendar__body--agenda"
291
+ data-cy="origam-calendar-body-agenda"
292
+ >
293
+ <template v-if="agendaEntries.length > 0">
294
+ <div
295
+ v-for="entry in agendaEntries"
296
+ :key="entry.date.toISOString()"
297
+ class="origam-calendar__agenda-day"
298
+ >
299
+ <div class="origam-calendar__agenda-day-header">
300
+ {{ agendaDayHeader(entry.date) }}
301
+ </div>
302
+ <button
303
+ v-for="event in entry.events"
304
+ :key="event.id"
305
+ type="button"
306
+ class="origam-calendar__agenda-event"
307
+ :style="eventStyle(event)"
308
+ :aria-label="ariaEventLabel(event)"
309
+ :data-cy="`origam-calendar-event-${event.id}`"
310
+ @click="onEventClick(event, $event)"
311
+ >
312
+ <slot
313
+ name="event"
314
+ :event="event"
315
+ :view="resolvedView"
316
+ :is-past="isEventPast(event)"
317
+ :is-today="isEventToday(event)"
318
+ >
319
+ <span class="origam-calendar__event-time">{{ eventTimeLabel(event) }}</span>
320
+ <span class="origam-calendar__event-title">{{ event.title }}</span>
321
+ </slot>
322
+ </button>
323
+ </div>
324
+ </template>
325
+ <div
326
+ v-else
327
+ class="origam-calendar__agenda-empty"
328
+ data-cy="origam-calendar-agenda-empty"
329
+ >
330
+ <slot
331
+ name="empty"
332
+ :view="resolvedView"
333
+ >
334
+ {{ emptyLabel }}
335
+ </slot>
336
+ </div>
337
+ </div>
338
+ </div>
341
339
  </template>
342
340
 
343
- <script setup>
341
+ <script lang="ts" setup>
344
342
  import {
345
343
  computed,
346
- ref
344
+ ref,
345
+ watch
347
346
  } from "vue";
348
- import { useCalendar } from "../../composables";
347
+ import { OrigamBtn, OrigamBtnGroup } from "../../components";
348
+ import {
349
+ useCalendar,
350
+ useDensity,
351
+ useDimension,
352
+ useLocale,
353
+ useStateEffect
354
+ } from "../../composables";
355
+ import {
356
+ getForeground,
357
+ isCssColor,
358
+ isIntent,
359
+ parseColor,
360
+ tokenForegroundForIntent,
361
+ tokenStylesForIntent
362
+ } from "../../utils/Commons/color.util";
349
363
  import {
350
364
  buildDisabledPredicate,
351
365
  formatDate,
@@ -381,7 +395,45 @@ const props = defineProps({
381
395
  disabledDates: { type: [Array, Function], required: false, default: void 0 },
382
396
  id: { type: String, required: false },
383
397
  class: { type: [String, Array, Object], required: false },
384
- style: { type: [String, Array, Object, Boolean, null], required: false, skipCheck: true }
398
+ style: { type: [String, Array, Object, Boolean, null], required: false, skipCheck: true },
399
+ color: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
400
+ bgColor: { type: [String, Object, Boolean, null], required: false, skipCheck: true },
401
+ rounded: { type: [Boolean, Number, String, null], required: false, skipCheck: true },
402
+ roundedTopRight: { type: [Boolean, Number, String], required: false },
403
+ roundedTopLeft: { type: [Boolean, Number, String], required: false },
404
+ roundedBottomLeft: { type: [Boolean, Number, String], required: false },
405
+ roundedBottomRight: { type: [Boolean, Number, String], required: false },
406
+ elevation: { type: [Number, String], required: false },
407
+ border: { type: [Boolean, Number, String, Array], required: false, skipCheck: true },
408
+ borderTop: { type: [Boolean, Number, String], required: false },
409
+ borderLeft: { type: [Boolean, Number, String], required: false },
410
+ borderBottom: { type: [Boolean, Number, String], required: false },
411
+ borderRight: { type: [Boolean, Number, String], required: false },
412
+ borderBlock: { type: [Boolean, Number, String], required: false },
413
+ borderInline: { type: [Boolean, Number, String], required: false },
414
+ borderColor: { type: String, required: false },
415
+ borderStyle: { type: String, required: false },
416
+ density: { type: null, required: false },
417
+ height: { type: [Number, String], required: false },
418
+ maxHeight: { type: [Number, String], required: false },
419
+ maxWidth: { type: [Number, String], required: false },
420
+ minHeight: { type: [Number, String], required: false },
421
+ minWidth: { type: [Number, String], required: false },
422
+ width: { type: [Number, String], required: false },
423
+ padding: { type: [Boolean, Number, String], required: false },
424
+ paddingTop: { type: [Boolean, Number, String], required: false },
425
+ paddingLeft: { type: [Boolean, Number, String], required: false },
426
+ paddingBottom: { type: [Boolean, Number, String], required: false },
427
+ paddingRight: { type: [Boolean, Number, String], required: false },
428
+ paddingBlock: { type: [Boolean, Number, String], required: false },
429
+ paddingInline: { type: [Boolean, Number, String], required: false },
430
+ margin: { type: [Boolean, Number, String], required: false },
431
+ marginTop: { type: [Boolean, Number, String], required: false },
432
+ marginLeft: { type: [Boolean, Number, String], required: false },
433
+ marginBottom: { type: [Boolean, Number, String], required: false },
434
+ marginRight: { type: [Boolean, Number, String], required: false },
435
+ marginBlock: { type: [Boolean, Number, String], required: false },
436
+ marginInline: { type: [Boolean, Number, String], required: false }
385
437
  });
386
438
  const emit = defineEmits(["update:view", "update:currentDate", "event-click", "date-click", "range-select", "create-event-request", "view-change", "navigate"]);
387
439
  const VIEW = {
@@ -393,26 +445,42 @@ const VIEW = {
393
445
  const VIEW_OPTIONS = [VIEW.MONTH, VIEW.WEEK, VIEW.DAY, VIEW.AGENDA];
394
446
  const MONTH_EVENT_LIMIT = 3;
395
447
  const DEFAULT_SLOT_HEIGHT_PX = 32;
396
- const ariaLabel = computed(() => "Calendar");
397
- const ariaToolbarLabel = computed(() => "Calendar toolbar");
398
- const ariaPrevLabel = computed(() => "Previous");
399
- const ariaNextLabel = computed(() => "Next");
400
- const ariaTodayLabel = computed(() => "Today");
401
- const ariaViewListLabel = computed(() => "View");
402
- const ariaMonthLabel = computed(() => "Month grid");
403
- const todayLabel = computed(() => "Today");
404
- const emptyLabel = computed(() => "No events to display");
448
+ const { t } = useLocale();
449
+ const VIEW_LABEL_FALLBACK = {
450
+ month: "Month",
451
+ week: "Week",
452
+ day: "Day",
453
+ agenda: "Agenda"
454
+ };
455
+ function viewLabel(view) {
456
+ return t(`origam.calendar.view.${view}`, VIEW_LABEL_FALLBACK[view]);
457
+ }
458
+ const ariaLabel = computed(() => t("origam.calendar.ariaLabel", "Calendar"));
459
+ const ariaToolbarLabel = computed(() => t("origam.calendar.toolbar", "Calendar toolbar"));
460
+ const ariaPrevLabel = computed(() => t("origam.calendar.previous", "Previous"));
461
+ const ariaNextLabel = computed(() => t("origam.calendar.next", "Next"));
462
+ const ariaTodayLabel = computed(() => t("origam.calendar.today", "Today"));
463
+ const ariaViewListLabel = computed(() => t("origam.calendar.viewSwitcher", "View"));
464
+ const ariaMonthLabel = computed(() => t("origam.calendar.monthGrid", "Month grid"));
465
+ const todayLabel = computed(() => t("origam.calendar.today", "Today"));
466
+ const emptyLabel = computed(() => t("origam.calendar.empty", "No events to display"));
405
467
  const slotPx = DEFAULT_SLOT_HEIGHT_PX;
406
468
  const slotDuration = computed(() => props.slotDuration);
407
469
  const dayStartHour = computed(() => props.dayStartHour);
408
470
  const dayEndHour = computed(() => props.dayEndHour);
409
471
  const showWeekNumbers = computed(() => props.showWeekNumbers);
410
472
  const weekendHighlight = computed(() => props.weekendHighlight);
411
- const resolvedView = computed(() => props.view ?? "month");
412
- const resolvedDate = computed(() => {
413
- const d = toDate(props.currentDate);
414
- return d ?? /* @__PURE__ */ new Date();
473
+ const internalView = ref(props.view ?? "month");
474
+ const internalDate = ref(toDate(props.currentDate) ?? /* @__PURE__ */ new Date());
475
+ watch(() => props.view, (next) => {
476
+ if (next != null) internalView.value = next;
477
+ });
478
+ watch(() => props.currentDate, (next) => {
479
+ const parsed = toDate(next);
480
+ if (parsed) internalDate.value = parsed;
415
481
  });
482
+ const resolvedView = computed(() => internalView.value);
483
+ const resolvedDate = computed(() => internalDate.value);
416
484
  const resolvedLocale = computed(() => {
417
485
  if (props.locale) return props.locale;
418
486
  if (typeof document !== "undefined" && document.documentElement.lang) {
@@ -439,10 +507,12 @@ const calendar = useCalendar(
439
507
  locale: () => resolvedLocale.value
440
508
  },
441
509
  (next) => {
510
+ internalView.value = next;
442
511
  emit("update:view", next);
443
512
  emit("view-change", next);
444
513
  },
445
514
  (next) => {
515
+ internalDate.value = next;
446
516
  emit("update:currentDate", next);
447
517
  }
448
518
  );
@@ -453,6 +523,24 @@ function onNavigate(direction) {
453
523
  calendar.navigate(direction);
454
524
  emit("navigate", direction);
455
525
  }
526
+ const prevGlyph = "\u2039";
527
+ const nextGlyph = "\u203A";
528
+ function isViewActive(view) {
529
+ return resolvedView.value === view;
530
+ }
531
+ function viewBtnVariant(view) {
532
+ return isViewActive(view) ? "flat" : "text";
533
+ }
534
+ const toolbarIntent = computed(() => {
535
+ const bg = props.bgColor;
536
+ if (bg && isIntent(bg)) return bg;
537
+ const fg = props.color;
538
+ if (fg && isIntent(fg)) return fg;
539
+ return "primary";
540
+ });
541
+ function viewBtnBgColor(view) {
542
+ return isViewActive(view) ? toolbarIntent.value : void 0;
543
+ }
456
544
  const headerTitle = computed(() => {
457
545
  const date = resolvedDate.value;
458
546
  const locale = resolvedLocale.value;
@@ -790,17 +878,85 @@ function onKeydown(event) {
790
878
  }
791
879
  if (next) {
792
880
  event.preventDefault();
881
+ internalDate.value = next;
793
882
  emit("update:currentDate", next);
794
883
  }
795
884
  }
885
+ const {
886
+ borderClasses,
887
+ borderStyles,
888
+ roundedClasses,
889
+ roundedStyles,
890
+ elevationClasses,
891
+ elevationStyles,
892
+ paddingClasses,
893
+ paddingStyles,
894
+ marginClasses,
895
+ marginStyles
896
+ } = useStateEffect(props);
897
+ const { dimensionStyles } = useDimension(props);
898
+ const { densityClasses } = useDensity(props, "origam-calendar");
899
+ const borderColorStyle = computed(() => {
900
+ const value = props.borderColor;
901
+ return value && isIntent(value) ? [`border-color: ${tokenForegroundForIntent(value)}`] : [];
902
+ });
903
+ const surfaceVars = computed(() => {
904
+ const vars = {};
905
+ const bg = props.bgColor;
906
+ const fg = props.color;
907
+ const bgIntent = Boolean(bg) && isIntent(bg);
908
+ const bgCss = Boolean(bg) && typeof bg === "string" && isCssColor(bg);
909
+ const fgIntent = Boolean(fg) && isIntent(fg);
910
+ const fgCss = Boolean(fg) && typeof fg === "string" && isCssColor(fg);
911
+ if (bgIntent) {
912
+ vars["--origam-calendar__toolbar---background-color"] = tokenStylesForIntent(bg, "default")["background-color"];
913
+ } else if (bgCss) {
914
+ vars["--origam-calendar__toolbar---background-color"] = bg;
915
+ }
916
+ let headerFg;
917
+ if (bgIntent) {
918
+ headerFg = tokenStylesForIntent(bg, "default").color;
919
+ } else if (bgCss) {
920
+ headerFg = getForeground(parseColor(bg));
921
+ } else if (fgIntent) {
922
+ headerFg = tokenForegroundForIntent(fg);
923
+ } else if (fgCss) {
924
+ headerFg = fg;
925
+ }
926
+ if (headerFg) vars["--origam-calendar__toolbar---color"] = headerFg;
927
+ let bodyFg;
928
+ if (fgIntent) bodyFg = tokenForegroundForIntent(fg);
929
+ else if (fgCss) bodyFg = fg;
930
+ if (bodyFg) {
931
+ vars["--origam-calendar__day-cell---color"] = bodyFg;
932
+ vars["--origam-calendar__weekday---color"] = bodyFg;
933
+ }
934
+ return vars;
935
+ });
796
936
  const rootClasses = computed(() => [
797
937
  `origam-calendar--${resolvedView.value}`,
798
938
  {
799
939
  "origam-calendar--week-numbers": showWeekNumbers.value
800
940
  },
941
+ borderClasses.value,
942
+ roundedClasses.value,
943
+ elevationClasses.value,
944
+ paddingClasses.value,
945
+ marginClasses.value,
946
+ densityClasses.value,
801
947
  props.class
802
948
  ]);
803
- const rootStyles = computed(() => [props.style]);
949
+ const rootStyles = computed(() => [
950
+ surfaceVars.value,
951
+ borderStyles.value,
952
+ borderColorStyle.value,
953
+ roundedStyles.value,
954
+ elevationStyles.value,
955
+ paddingStyles.value,
956
+ marginStyles.value,
957
+ dimensionStyles.value,
958
+ props.style
959
+ ]);
804
960
  defineExpose({
805
961
  visibleDateRange: calendar.visibleDateRange,
806
962
  expandedEvents: calendar.expandedEvents,
@@ -810,366 +966,337 @@ defineExpose({
810
966
  </script>
811
967
 
812
968
  <style lang="scss" scoped>
813
- .origam-calendar {
814
- display: flex;
815
- flex-direction: column;
816
- width: 100%;
817
- background-color: var(--origam-calendar---background-color, #ffffff);
818
- color: var(--origam-calendar---color, inherit);
819
- border: var(--origam-calendar---border-width, 1px) solid var(--origam-calendar---border-color, #e5e7eb);
820
- border-radius: var(--origam-calendar---border-radius, 8px);
821
- overflow: hidden;
822
- }
823
-
824
- .origam-calendar__toolbar {
825
- display: flex;
826
- align-items: center;
827
- justify-content: space-between;
828
- gap: var(--origam-calendar__toolbar---gap, 8px);
829
- padding: var(--origam-calendar__toolbar---padding, 12px);
830
- background-color: var(--origam-calendar__toolbar---background-color, transparent);
831
- border-bottom: 1px solid var(--origam-calendar__toolbar---border-color, #e5e7eb);
832
- }
833
-
834
- .origam-calendar__toolbar-nav,
835
- .origam-calendar__toolbar-views {
836
- display: inline-flex;
837
- gap: 4px;
838
- }
839
-
840
- .origam-calendar__toolbar-title {
841
- flex: 1 1 auto;
842
- text-align: center;
843
- color: var(--origam-calendar__toolbar---title-color, inherit);
844
- font-size: var(--origam-calendar__toolbar---title-font-size, 1rem);
845
- font-weight: var(--origam-calendar__toolbar---title-font-weight, 600);
846
- white-space: nowrap;
847
- overflow: hidden;
848
- text-overflow: ellipsis;
849
- }
850
-
851
- .origam-calendar__toolbar-btn {
852
- all: unset;
853
- display: inline-flex;
854
- align-items: center;
855
- justify-content: center;
856
- min-width: 32px;
857
- min-height: 32px;
858
- padding: 0 8px;
859
- text-transform: capitalize;
860
- border-radius: 4px;
861
- cursor: pointer;
862
- font: inherit;
863
- color: inherit;
864
- transition: background-color 120ms ease, color 120ms ease;
865
- }
969
+ .origam-calendar {
970
+ display: flex;
971
+ flex-direction: column;
972
+ width: 100%;
973
+ background-color: var(--origam-calendar---background-color, #ffffff);
974
+ color: var(--origam-calendar---color, inherit);
975
+ border: var(--origam-calendar---border-width, 1px) solid var(--origam-calendar---border-color, #e5e7eb);
976
+ border-radius: var(--origam-calendar---border-radius, 8px);
977
+ overflow: hidden;
978
+ }
866
979
 
867
- .origam-calendar__toolbar-btn:hover:not(:disabled),
868
- .origam-calendar__toolbar-btn:focus-visible {
869
- background-color: var(--origam-calendar__day-cell---bg-color-hover, rgba(0, 0, 0, 0.06));
870
- }
980
+ .origam-calendar--density-compact {
981
+ --origam-calendar__toolbar---padding: 8px;
982
+ --origam-calendar__day-cell---height: 72px;
983
+ --origam-calendar__day-cell---padding: 4px;
984
+ }
871
985
 
872
- .origam-calendar__toolbar-btn:disabled {
873
- opacity: 0.4;
874
- cursor: not-allowed;
875
- }
986
+ .origam-calendar--density-comfortable {
987
+ --origam-calendar__toolbar---padding: 16px;
988
+ --origam-calendar__day-cell---height: 120px;
989
+ --origam-calendar__day-cell---padding: 10px;
990
+ }
876
991
 
877
- /*
878
- * Active toolbar button (selected view: Month / Week / Day / Agenda).
879
- * Previously fell back to `currentColor` for bg + `#ffffff` for fg —
880
- * when the calendar lived on a light surface with white-ish
881
- * `currentColor` (e.g. tinted via a wrapper, or the unset token
882
- * resolved to a near-white value), the active btn rendered as
883
- * white-on-white and the user lost the selected view indicator.
884
- *
885
- * Use the DS primary intent pair (`action.primary.bg` + matching
886
- * `.fg`) so the selected view is unambiguously highlighted on any
887
- * surface, light or dark, with WCAG-validated contrast.
888
- */
889
- .origam-calendar__toolbar-btn--active {
890
- background-color: var(--origam-calendar__toolbar-btn--active---background-color, var(--origam-color__action--primary---bg));
891
- color: var(--origam-calendar__toolbar-btn--active---color, var(--origam-color__action--primary---fg));
892
- }
992
+ .origam-calendar__toolbar {
993
+ display: flex;
994
+ align-items: center;
995
+ justify-content: space-between;
996
+ gap: var(--origam-calendar__toolbar---gap, 8px);
997
+ padding: var(--origam-calendar__toolbar---padding, 12px);
998
+ color: var(--origam-calendar__toolbar---color, inherit);
999
+ background-color: var(--origam-calendar__toolbar---background-color, transparent);
1000
+ border-bottom: 1px solid var(--origam-calendar__toolbar---border-color, #e5e7eb);
1001
+ --origam-btn---color: var(--origam-calendar__toolbar---color, inherit);
1002
+ --origam-color__overlay---scrim: currentColor;
1003
+ --origam-btn---overlay-opacity-hover: 0.16;
1004
+ }
893
1005
 
894
- .origam-calendar__toolbar-btn--active:hover:not(:disabled),
895
- .origam-calendar__toolbar-btn--active:focus-visible {
896
- background-color: var(--origam-calendar__toolbar-btn--active---background-color-hover, color-mix(in srgb, var(--origam-color__action--primary---bg) 88%, black));
897
- }
1006
+ .origam-calendar__toolbar-title {
1007
+ flex: 0 1 auto;
1008
+ min-width: 0;
1009
+ text-align: center;
1010
+ color: var(--origam-calendar__toolbar---title-color, inherit);
1011
+ font-size: var(--origam-calendar__toolbar---title-font-size, 1rem);
1012
+ font-weight: var(--origam-calendar__toolbar---title-font-weight, 600);
1013
+ white-space: nowrap;
1014
+ overflow: hidden;
1015
+ text-overflow: ellipsis;
1016
+ }
898
1017
 
899
- .origam-calendar__body {
900
- flex: 1 1 auto;
901
- min-width: 0;
902
- display: flex;
903
- flex-direction: column;
904
- }
1018
+ .origam-calendar__body {
1019
+ flex: 1 1 auto;
1020
+ min-width: 0;
1021
+ display: flex;
1022
+ flex-direction: column;
1023
+ }
905
1024
 
906
- .origam-calendar__weekdays {
907
- display: grid;
908
- grid-template-columns: var(--origam-calendar__week-number---grid-template-columns, repeat(7, minmax(0, 1fr)));
909
- }
1025
+ .origam-calendar__weekdays {
1026
+ display: grid;
1027
+ grid-template-columns: var(--origam-calendar__week-number---grid-template-columns, repeat(7, minmax(0, 1fr)));
1028
+ }
910
1029
 
911
- .origam-calendar--week-numbers .origam-calendar__weekdays,
912
- .origam-calendar--week-numbers .origam-calendar__month-row {
913
- grid-template-columns: var(--origam-calendar__week-number---width, 32px) repeat(7, minmax(0, 1fr));
914
- }
1030
+ .origam-calendar--week-numbers .origam-calendar__weekdays,
1031
+ .origam-calendar--week-numbers .origam-calendar__month-row {
1032
+ grid-template-columns: var(--origam-calendar__week-number---width, 32px) repeat(7, minmax(0, 1fr));
1033
+ }
915
1034
 
916
- .origam-calendar__weekday {
917
- padding: 8px;
918
- text-align: center;
919
- font-size: 0.75rem;
920
- text-transform: uppercase;
921
- color: var(--origam-calendar__day-cell---color-muted, #6b7280);
922
- }
1035
+ .origam-calendar__weekday {
1036
+ padding: 8px;
1037
+ text-align: center;
1038
+ font-size: 0.75rem;
1039
+ text-transform: uppercase;
1040
+ color: var(--origam-calendar__weekday---color, var(--origam-calendar__day-cell---color-muted, #6b7280));
1041
+ }
923
1042
 
924
- .origam-calendar__week-number {
925
- padding: 8px 4px;
926
- font-size: var(--origam-calendar__week-number---font-size, 0.75rem);
927
- color: var(--origam-calendar__week-number---color, #6b7280);
928
- text-align: center;
929
- align-self: center;
930
- }
1043
+ .origam-calendar__week-number {
1044
+ padding: 8px 4px;
1045
+ font-size: var(--origam-calendar__week-number---font-size, 0.75rem);
1046
+ color: var(--origam-calendar__week-number---color, #6b7280);
1047
+ text-align: center;
1048
+ align-self: center;
1049
+ }
931
1050
 
932
- .origam-calendar__week-number-head {
933
- min-width: var(--origam-calendar__week-number---width, 32px);
934
- }
1051
+ .origam-calendar__week-number-head {
1052
+ min-width: var(--origam-calendar__week-number---width, 32px);
1053
+ }
935
1054
 
936
- .origam-calendar__month-grid {
937
- display: flex;
938
- flex-direction: column;
939
- flex: 1 1 auto;
940
- }
1055
+ .origam-calendar__month-grid {
1056
+ display: flex;
1057
+ flex-direction: column;
1058
+ flex: 1 1 auto;
1059
+ }
941
1060
 
942
- .origam-calendar__month-row {
943
- display: grid;
944
- grid-template-columns: repeat(7, minmax(0, 1fr));
945
- flex: 1 1 auto;
946
- }
1061
+ .origam-calendar__month-row {
1062
+ display: grid;
1063
+ grid-template-columns: repeat(7, minmax(0, 1fr));
1064
+ flex: 1 1 auto;
1065
+ }
947
1066
 
948
- .origam-calendar__day-cell {
949
- min-height: var(--origam-calendar__day-cell---height, 96px);
950
- padding: var(--origam-calendar__day-cell---padding, 6px);
951
- border-top: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
952
- border-left: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
953
- background-color: var(--origam-calendar---background-color, #ffffff);
954
- color: var(--origam-calendar__day-cell---color, inherit);
955
- cursor: pointer;
956
- display: flex;
957
- flex-direction: column;
958
- gap: 4px;
959
- user-select: none;
960
- }
1067
+ .origam-calendar__day-cell {
1068
+ min-height: var(--origam-calendar__day-cell---height, 96px);
1069
+ padding: var(--origam-calendar__day-cell---padding, 6px);
1070
+ border-top: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1071
+ border-left: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1072
+ background-color: var(--origam-calendar---background-color, #ffffff);
1073
+ color: var(--origam-calendar__day-cell---color, inherit);
1074
+ cursor: pointer;
1075
+ display: flex;
1076
+ flex-direction: column;
1077
+ gap: 4px;
1078
+ user-select: none;
1079
+ }
961
1080
 
962
- .origam-calendar__day-cell:focus-visible {
963
- outline: 2px solid var(--origam-calendar__range-select---border-color, currentColor);
964
- outline-offset: -2px;
965
- }
1081
+ .origam-calendar__day-cell:focus-visible {
1082
+ outline: 2px solid var(--origam-calendar__range-select---border-color, currentColor);
1083
+ outline-offset: -2px;
1084
+ }
966
1085
 
967
- .origam-calendar__day-cell--today {
968
- background-color: var(--origam-calendar__day-cell---bg-color-today, rgba(59, 130, 246, 0.08));
969
- }
1086
+ .origam-calendar__day-cell--today {
1087
+ background-image: linear-gradient(
1088
+ 0deg,
1089
+ var(--origam-calendar__day-cell---bg-color-today, rgba(59, 130, 246, 0.08)),
1090
+ var(--origam-calendar__day-cell---bg-color-today, rgba(59, 130, 246, 0.08))
1091
+ );
1092
+ }
970
1093
 
971
- .origam-calendar__day-cell--outside {
972
- background-color: var(--origam-calendar__day-cell---bg-color-outside, #f9fafb);
973
- color: var(--origam-calendar__day-cell---color-muted, #9ca3af);
974
- }
1094
+ .origam-calendar__day-cell--outside {
1095
+ background-color: var(--origam-calendar__day-cell---bg-color-outside, #f9fafb);
1096
+ color: var(--origam-calendar__day-cell---color-muted, #9ca3af);
1097
+ }
975
1098
 
976
- .origam-calendar__day-cell--weekend {
977
- background-color: var(--origam-calendar__day-cell---bg-color-weekend, #f9fafb);
978
- }
1099
+ .origam-calendar__day-cell--weekend {
1100
+ background-color: var(--origam-calendar__day-cell---bg-color-weekend, #f9fafb);
1101
+ }
979
1102
 
980
- .origam-calendar__day-cell--disabled {
981
- opacity: 0.5;
982
- cursor: not-allowed;
983
- color: var(--origam-calendar__day-cell---color-disabled, #d1d5db);
984
- }
1103
+ .origam-calendar__day-cell--disabled {
1104
+ opacity: 0.5;
1105
+ cursor: not-allowed;
1106
+ color: var(--origam-calendar__day-cell---color-disabled, #d1d5db);
1107
+ }
985
1108
 
986
- .origam-calendar__day-cell--selected {
987
- background-color: var(--origam-calendar__range-select---bg-color, rgba(59, 130, 246, 0.12));
988
- }
1109
+ .origam-calendar__day-cell--selected {
1110
+ background-image: linear-gradient(
1111
+ 0deg,
1112
+ var(--origam-calendar__range-select---bg-color, rgba(59, 130, 246, 0.12)),
1113
+ var(--origam-calendar__range-select---bg-color, rgba(59, 130, 246, 0.12))
1114
+ );
1115
+ }
989
1116
 
990
- .origam-calendar__day-number {
991
- font-size: 0.875rem;
992
- font-weight: 500;
993
- }
1117
+ .origam-calendar__day-number {
1118
+ font-size: 0.875rem;
1119
+ font-weight: 500;
1120
+ }
994
1121
 
995
- .origam-calendar__day-events {
996
- display: flex;
997
- flex-direction: column;
998
- gap: 2px;
999
- }
1122
+ .origam-calendar__day-events {
1123
+ display: flex;
1124
+ flex-direction: column;
1125
+ gap: 2px;
1126
+ }
1000
1127
 
1001
- .origam-calendar__event {
1002
- all: unset;
1003
- display: flex;
1004
- align-items: center;
1005
- gap: 4px;
1006
- padding: var(--origam-calendar__event---padding, 2px 4px);
1007
- font-size: var(--origam-calendar__event---font-size, 0.75rem);
1008
- border-radius: var(--origam-calendar__event---border-radius, 4px);
1009
- background-color: var(--origam-calendar__event---bg-color-default, #3b82f6);
1010
- color: var(--origam-calendar__event---color-default, #ffffff);
1011
- cursor: pointer;
1012
- overflow: hidden;
1013
- text-overflow: ellipsis;
1014
- white-space: nowrap;
1015
- }
1128
+ .origam-calendar__event {
1129
+ all: unset;
1130
+ display: flex;
1131
+ align-items: center;
1132
+ gap: 4px;
1133
+ padding: var(--origam-calendar__event---padding, 2px 4px);
1134
+ font-size: var(--origam-calendar__event---font-size, 0.75rem);
1135
+ border-radius: var(--origam-calendar__event---border-radius, 4px);
1136
+ background-color: var(--origam-calendar__event---bg-color-default, #3b82f6);
1137
+ color: var(--origam-calendar__event---color-default, #ffffff);
1138
+ cursor: pointer;
1139
+ overflow: hidden;
1140
+ text-overflow: ellipsis;
1141
+ white-space: nowrap;
1142
+ }
1016
1143
 
1017
- .origam-calendar__event-title {
1018
- overflow: hidden;
1019
- text-overflow: ellipsis;
1020
- flex: 1 1 auto;
1021
- }
1144
+ .origam-calendar__event-title {
1145
+ overflow: hidden;
1146
+ text-overflow: ellipsis;
1147
+ flex: 1 1 auto;
1148
+ }
1022
1149
 
1023
- .origam-calendar__event-time {
1024
- opacity: 0.85;
1025
- font-size: 0.6875rem;
1026
- }
1150
+ .origam-calendar__event-time {
1151
+ opacity: 0.85;
1152
+ font-size: 0.6875rem;
1153
+ }
1027
1154
 
1028
- .origam-calendar__day-more {
1029
- font-size: 0.6875rem;
1030
- color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1031
- padding-left: 4px;
1032
- }
1155
+ .origam-calendar__day-more {
1156
+ font-size: 0.6875rem;
1157
+ color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1158
+ padding-left: 4px;
1159
+ }
1033
1160
 
1034
- .origam-calendar__timeline {
1035
- display: flex;
1036
- flex: 1 1 auto;
1037
- min-height: 0;
1038
- overflow: auto;
1039
- }
1161
+ .origam-calendar__timeline {
1162
+ display: flex;
1163
+ flex: 1 1 auto;
1164
+ min-height: 0;
1165
+ overflow: auto;
1166
+ }
1040
1167
 
1041
- .origam-calendar__timeline-hours {
1042
- display: flex;
1043
- flex-direction: column;
1044
- width: var(--origam-calendar__timeline__hour-label---width, 56px);
1045
- padding-top: 32px;
1046
- border-right: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1047
- }
1168
+ .origam-calendar__timeline-hours {
1169
+ display: flex;
1170
+ flex-direction: column;
1171
+ width: var(--origam-calendar__timeline__hour-label---width, 56px);
1172
+ padding-top: 32px;
1173
+ border-right: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1174
+ }
1048
1175
 
1049
- .origam-calendar__hour-label {
1050
- font-size: var(--origam-calendar__timeline__hour-label---font-size, 0.6875rem);
1051
- color: var(--origam-calendar__timeline__hour-label---color, #6b7280);
1052
- text-align: right;
1053
- padding-right: 6px;
1054
- display: flex;
1055
- align-items: flex-start;
1056
- justify-content: flex-end;
1057
- }
1176
+ .origam-calendar__hour-label {
1177
+ font-size: var(--origam-calendar__timeline__hour-label---font-size, 0.6875rem);
1178
+ color: var(--origam-calendar__timeline__hour-label---color, #6b7280);
1179
+ text-align: right;
1180
+ padding-right: 6px;
1181
+ display: flex;
1182
+ align-items: flex-start;
1183
+ justify-content: flex-end;
1184
+ }
1058
1185
 
1059
- .origam-calendar__timeline-grid {
1060
- display: flex;
1061
- flex: 1 1 auto;
1062
- }
1186
+ .origam-calendar__timeline-grid {
1187
+ display: flex;
1188
+ flex: 1 1 auto;
1189
+ }
1063
1190
 
1064
- .origam-calendar__timeline-day {
1065
- flex: 1 1 0;
1066
- min-width: 0;
1067
- border-left: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1068
- display: flex;
1069
- flex-direction: column;
1070
- }
1191
+ .origam-calendar__timeline-day {
1192
+ flex: 1 1 0;
1193
+ min-width: 0;
1194
+ border-left: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1195
+ display: flex;
1196
+ flex-direction: column;
1197
+ }
1071
1198
 
1072
- .origam-calendar__timeline-day--today {
1073
- background-color: var(--origam-calendar__day-cell---bg-color-today, rgba(59, 130, 246, 0.04));
1074
- }
1199
+ .origam-calendar__timeline-day--today {
1200
+ background-color: var(--origam-calendar__day-cell---bg-color-today, rgba(59, 130, 246, 0.04));
1201
+ }
1075
1202
 
1076
- .origam-calendar__timeline-day--weekend {
1077
- background-color: var(--origam-calendar__day-cell---bg-color-weekend, rgba(0, 0, 0, 0.02));
1078
- }
1203
+ .origam-calendar__timeline-day--weekend {
1204
+ background-color: var(--origam-calendar__day-cell---bg-color-weekend, rgba(0, 0, 0, 0.02));
1205
+ }
1079
1206
 
1080
- .origam-calendar__day-header {
1081
- padding: 8px;
1082
- text-align: center;
1083
- border-bottom: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1084
- display: flex;
1085
- flex-direction: column;
1086
- gap: 2px;
1087
- }
1207
+ .origam-calendar__day-header {
1208
+ padding: 8px;
1209
+ text-align: center;
1210
+ border-bottom: 1px solid var(--origam-calendar__day-cell---border-color, #e5e7eb);
1211
+ display: flex;
1212
+ flex-direction: column;
1213
+ gap: 2px;
1214
+ }
1088
1215
 
1089
- .origam-calendar__day-header-weekday {
1090
- font-size: 0.75rem;
1091
- color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1092
- text-transform: uppercase;
1093
- }
1216
+ .origam-calendar__day-header-weekday {
1217
+ font-size: 0.75rem;
1218
+ color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1219
+ text-transform: uppercase;
1220
+ }
1094
1221
 
1095
- .origam-calendar__day-header-number {
1096
- font-size: 1.25rem;
1097
- font-weight: 600;
1098
- }
1222
+ .origam-calendar__day-header-number {
1223
+ font-size: 1.25rem;
1224
+ font-weight: 600;
1225
+ }
1099
1226
 
1100
- .origam-calendar__timeline-slots {
1101
- position: relative;
1102
- display: flex;
1103
- flex-direction: column;
1104
- }
1227
+ .origam-calendar__timeline-slots {
1228
+ position: relative;
1229
+ display: flex;
1230
+ flex-direction: column;
1231
+ }
1105
1232
 
1106
- .origam-calendar__timeline-slot {
1107
- border-top: 1px solid var(--origam-calendar__timeline---grid-line-color, #f3f4f6);
1108
- pointer-events: auto;
1109
- }
1233
+ .origam-calendar__timeline-slot {
1234
+ border-top: 1px solid var(--origam-calendar__timeline---grid-line-color, #f3f4f6);
1235
+ pointer-events: auto;
1236
+ }
1110
1237
 
1111
- .origam-calendar__timeline-slot--hour {
1112
- border-top-color: var(--origam-calendar__day-cell---border-color, #e5e7eb);
1113
- }
1238
+ .origam-calendar__timeline-slot--hour {
1239
+ border-top-color: var(--origam-calendar__day-cell---border-color, #e5e7eb);
1240
+ }
1114
1241
 
1115
- .origam-calendar__event--timeline {
1116
- position: absolute;
1117
- left: 4px;
1118
- right: 4px;
1119
- display: flex;
1120
- flex-direction: column;
1121
- align-items: flex-start;
1122
- justify-content: flex-start;
1123
- padding: 4px 6px;
1124
- font-size: 0.75rem;
1125
- line-height: 1.2;
1126
- }
1242
+ .origam-calendar__event--timeline {
1243
+ position: absolute;
1244
+ left: 4px;
1245
+ right: 4px;
1246
+ display: flex;
1247
+ flex-direction: column;
1248
+ align-items: flex-start;
1249
+ justify-content: flex-start;
1250
+ padding: 4px 6px;
1251
+ font-size: 0.75rem;
1252
+ line-height: 1.2;
1253
+ }
1127
1254
 
1128
- .origam-calendar__range-overlay {
1129
- position: absolute;
1130
- left: 4px;
1131
- right: 4px;
1132
- background-color: var(--origam-calendar__range-select---bg-color, rgba(59, 130, 246, 0.18));
1133
- border: 1px dashed var(--origam-calendar__range-select---border-color, rgba(59, 130, 246, 0.6));
1134
- pointer-events: none;
1135
- border-radius: 4px;
1136
- }
1255
+ .origam-calendar__range-overlay {
1256
+ position: absolute;
1257
+ left: 4px;
1258
+ right: 4px;
1259
+ background-color: var(--origam-calendar__range-select---bg-color, rgba(59, 130, 246, 0.18));
1260
+ border: 1px dashed var(--origam-calendar__range-select---border-color, rgba(59, 130, 246, 0.6));
1261
+ pointer-events: none;
1262
+ border-radius: 4px;
1263
+ }
1137
1264
 
1138
- .origam-calendar__body--agenda {
1139
- padding: var(--origam-calendar__agenda---padding, 12px);
1140
- display: flex;
1141
- flex-direction: column;
1142
- gap: var(--origam-calendar__agenda---row-gap, 12px);
1143
- }
1265
+ .origam-calendar__body--agenda {
1266
+ padding: var(--origam-calendar__agenda---padding, 12px);
1267
+ display: flex;
1268
+ flex-direction: column;
1269
+ gap: var(--origam-calendar__agenda---row-gap, 12px);
1270
+ }
1144
1271
 
1145
- .origam-calendar__agenda-day {
1146
- display: flex;
1147
- flex-direction: column;
1148
- gap: 4px;
1149
- }
1272
+ .origam-calendar__agenda-day {
1273
+ display: flex;
1274
+ flex-direction: column;
1275
+ gap: 4px;
1276
+ }
1150
1277
 
1151
- .origam-calendar__agenda-day-header {
1152
- font-size: 0.875rem;
1153
- color: var(--origam-calendar__agenda---day-color, inherit);
1154
- font-weight: var(--origam-calendar__agenda---day-font-weight, 600);
1155
- }
1278
+ .origam-calendar__agenda-day-header {
1279
+ font-size: 0.875rem;
1280
+ color: var(--origam-calendar__agenda---day-color, inherit);
1281
+ font-weight: var(--origam-calendar__agenda---day-font-weight, 600);
1282
+ }
1156
1283
 
1157
- .origam-calendar__agenda-event {
1158
- all: unset;
1159
- display: flex;
1160
- align-items: center;
1161
- gap: 8px;
1162
- padding: 8px 12px;
1163
- border-radius: 6px;
1164
- cursor: pointer;
1165
- background-color: var(--origam-calendar__event---bg-color-default, #3b82f6);
1166
- color: var(--origam-calendar__event---color-default, #ffffff);
1167
- font-size: 0.875rem;
1168
- }
1284
+ .origam-calendar__agenda-event {
1285
+ all: unset;
1286
+ display: flex;
1287
+ align-items: center;
1288
+ gap: 8px;
1289
+ padding: 8px 12px;
1290
+ border-radius: 6px;
1291
+ cursor: pointer;
1292
+ background-color: var(--origam-calendar__event---bg-color-default, #3b82f6);
1293
+ color: var(--origam-calendar__event---color-default, #ffffff);
1294
+ font-size: 0.875rem;
1295
+ }
1169
1296
 
1170
- .origam-calendar__agenda-empty {
1171
- padding: 32px;
1172
- text-align: center;
1173
- color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1174
- }
1297
+ .origam-calendar__agenda-empty {
1298
+ padding: 32px;
1299
+ text-align: center;
1300
+ color: var(--origam-calendar__day-cell---color-muted, #6b7280);
1301
+ }
1175
1302
  </style>