@flux-ui/components 3.0.0-next.58 → 3.0.0-next.59

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 (301) hide show
  1. package/dist/component/FluxButtonStack.vue.d.ts +1 -1
  2. package/dist/component/FluxCalendar.vue.d.ts +63 -2
  3. package/dist/component/{FluxCalendarEvent.vue.d.ts → FluxCalendarItem.vue.d.ts} +9 -7
  4. package/dist/component/FluxClickablePane.vue.d.ts +1 -1
  5. package/dist/component/FluxDivider.vue.d.ts +1 -1
  6. package/dist/component/FluxFilter.vue.d.ts +1 -1
  7. package/dist/component/FluxFilterBar.vue.d.ts +1 -1
  8. package/dist/component/FluxFormInput.vue.d.ts +2 -2
  9. package/dist/component/FluxFormInputAddition.vue.d.ts +1 -1
  10. package/dist/component/FluxFormTreeViewSelect.vue.d.ts +3 -3
  11. package/dist/component/FluxGallery.vue.d.ts +1 -1
  12. package/dist/component/FluxInfo.vue.d.ts +1 -1
  13. package/dist/component/FluxKanbanColumn.vue.d.ts +2 -2
  14. package/dist/component/{FluxKanbanCard.vue.d.ts → FluxKanbanItem.vue.d.ts} +1 -1
  15. package/dist/component/FluxMenuItem.vue.d.ts +1 -1
  16. package/dist/component/FluxNotice.vue.d.ts +1 -1
  17. package/dist/component/FluxPaneHeader.vue.d.ts +1 -1
  18. package/dist/component/FluxPressable.vue.d.ts +1 -1
  19. package/dist/component/FluxPrompt.vue.d.ts +3 -3
  20. package/dist/component/FluxSplitButton.vue.d.ts +1 -1
  21. package/dist/component/FluxStack.vue.d.ts +1 -1
  22. package/dist/component/FluxTab.vue.d.ts +1 -1
  23. package/dist/component/FluxTabBar.vue.d.ts +4 -1
  24. package/dist/component/FluxTabs.vue.d.ts +4 -1
  25. package/dist/component/FluxTimelineItem.vue.d.ts +1 -1
  26. package/dist/component/calendar/FluxCalendarItemDisplay.vue.d.ts +9 -0
  27. package/dist/component/calendar/FluxCalendarMonthView.vue.d.ts +19 -0
  28. package/dist/component/calendar/FluxCalendarTimeGridView.vue.d.ts +36 -0
  29. package/dist/component/calendar/index.d.ts +3 -0
  30. package/dist/component/index.d.ts +2 -2
  31. package/dist/component/primitive/DialogLayout.vue.d.ts +1 -1
  32. package/dist/component/primitive/SelectBase.vue.d.ts +3 -3
  33. package/dist/composable/index.d.ts +3 -0
  34. package/dist/composable/private/index.d.ts +5 -8
  35. package/dist/composable/private/useKanban.d.ts +2 -2
  36. package/dist/composable/private/useKanbanAutoScroll.d.ts +13 -0
  37. package/dist/composable/useCalendarInjection.d.ts +2 -0
  38. package/dist/composable/useKanbanInjection.d.ts +2 -0
  39. package/dist/composable/useTabBarInjection.d.ts +2 -0
  40. package/dist/data/di.d.ts +54 -12
  41. package/dist/data/i18n.d.ts +4 -0
  42. package/dist/index.css +1500 -1221
  43. package/dist/index.js +9339 -8216
  44. package/dist/index.js.map +1 -1
  45. package/package.json +6 -6
  46. package/src/component/FluxAction.vue +1 -1
  47. package/src/component/FluxActionBar.vue +2 -2
  48. package/src/component/FluxActionPane.vue +1 -1
  49. package/src/component/FluxAdaptiveGroup.vue +2 -2
  50. package/src/component/FluxAdaptiveSlot.vue +2 -2
  51. package/src/component/FluxAlert.vue +1 -1
  52. package/src/component/FluxAnimatedColors.vue +1 -1
  53. package/src/component/FluxAspectRatio.vue +1 -1
  54. package/src/component/FluxAvatar.vue +2 -2
  55. package/src/component/FluxBadge.vue +2 -2
  56. package/src/component/FluxBorderShine.vue +1 -1
  57. package/src/component/FluxBoxedIcon.vue +1 -1
  58. package/src/component/FluxButton.vue +2 -2
  59. package/src/component/FluxButtonGroup.vue +1 -1
  60. package/src/component/FluxButtonStack.vue +1 -1
  61. package/src/component/FluxCalendar.vue +588 -179
  62. package/src/component/FluxCalendarItem.vue +79 -0
  63. package/src/component/FluxCheckbox.vue +2 -2
  64. package/src/component/FluxChip.vue +2 -2
  65. package/src/component/FluxClickablePane.vue +2 -2
  66. package/src/component/FluxColorPicker.vue +2 -2
  67. package/src/component/FluxColorSelect.vue +3 -3
  68. package/src/component/FluxColumn.vue +1 -1
  69. package/src/component/FluxCommandPalette.vue +4 -4
  70. package/src/component/FluxCommandPaletteGroup.vue +1 -1
  71. package/src/component/FluxCommandPaletteItem.vue +1 -1
  72. package/src/component/FluxComment.vue +2 -2
  73. package/src/component/FluxConfirm.vue +1 -1
  74. package/src/component/FluxContainer.vue +1 -1
  75. package/src/component/FluxDataTable.vue +1 -2
  76. package/src/component/FluxDatePicker.vue +3 -3
  77. package/src/component/FluxDestructiveButton.vue +1 -1
  78. package/src/component/FluxDisabled.vue +1 -1
  79. package/src/component/FluxDivider.vue +2 -2
  80. package/src/component/FluxDotPattern.vue +1 -1
  81. package/src/component/FluxDropZone.vue +4 -4
  82. package/src/component/FluxExpandable.vue +3 -3
  83. package/src/component/FluxExpandableGroup.vue +2 -2
  84. package/src/component/FluxFader.vue +1 -1
  85. package/src/component/FluxFaderItem.vue +1 -1
  86. package/src/component/FluxFilter.vue +2 -2
  87. package/src/component/FluxFilterBar.vue +5 -6
  88. package/src/component/FluxFilterBase.vue +2 -2
  89. package/src/component/FluxFilterDate.vue +2 -2
  90. package/src/component/FluxFilterDateRange.vue +2 -2
  91. package/src/component/FluxFilterOption.vue +2 -2
  92. package/src/component/FluxFilterOptionAsync.vue +1 -1
  93. package/src/component/FluxFilterOptions.vue +2 -2
  94. package/src/component/FluxFilterOptionsAsync.vue +1 -1
  95. package/src/component/FluxFilterRange.vue +2 -2
  96. package/src/component/FluxFilterWindow.vue +3 -3
  97. package/src/component/FluxFlickeringGrid.vue +1 -1
  98. package/src/component/FluxFlyout.vue +2 -2
  99. package/src/component/FluxFocalPointEditor.vue +3 -3
  100. package/src/component/FluxFocalPointImage.vue +1 -1
  101. package/src/component/FluxForm.vue +1 -1
  102. package/src/component/FluxFormColumn.vue +1 -1
  103. package/src/component/FluxFormDateInput.vue +3 -3
  104. package/src/component/FluxFormDateRangeInput.vue +4 -4
  105. package/src/component/FluxFormDateTimeInput.vue +3 -3
  106. package/src/component/FluxFormField.vue +3 -3
  107. package/src/component/FluxFormFieldAddition.vue +1 -1
  108. package/src/component/FluxFormGrid.vue +1 -1
  109. package/src/component/FluxFormInput.vue +3 -3
  110. package/src/component/FluxFormInputAddition.vue +2 -2
  111. package/src/component/FluxFormInputGroup.vue +2 -2
  112. package/src/component/FluxFormPinInput.vue +3 -3
  113. package/src/component/FluxFormRangeSlider.vue +3 -3
  114. package/src/component/FluxFormRow.vue +1 -1
  115. package/src/component/FluxFormSection.vue +1 -1
  116. package/src/component/FluxFormSelect.vue +4 -4
  117. package/src/component/FluxFormSelectAsync.vue +6 -6
  118. package/src/component/FluxFormSlider.vue +2 -2
  119. package/src/component/FluxFormTextArea.vue +2 -2
  120. package/src/component/FluxFormTimeZonePicker.vue +4 -4
  121. package/src/component/FluxFormTreeViewSelect.vue +9 -12
  122. package/src/component/FluxGallery.vue +3 -3
  123. package/src/component/FluxGalleryItem.vue +1 -1
  124. package/src/component/FluxGrid.vue +1 -1
  125. package/src/component/FluxGridColumn.vue +1 -1
  126. package/src/component/FluxGridPattern.vue +1 -1
  127. package/src/component/FluxIcon.vue +2 -2
  128. package/src/component/FluxInfo.vue +2 -2
  129. package/src/component/FluxItem.vue +1 -1
  130. package/src/component/FluxItemActions.vue +1 -1
  131. package/src/component/FluxItemContent.vue +1 -1
  132. package/src/component/FluxItemMedia.vue +1 -1
  133. package/src/component/FluxItemStack.vue +1 -1
  134. package/src/component/FluxKanban.vue +6 -13
  135. package/src/component/FluxKanbanColumn.vue +42 -36
  136. package/src/component/FluxKanbanItem.vue +162 -0
  137. package/src/component/FluxLayerPane.vue +1 -1
  138. package/src/component/FluxLayerPaneSecondary.vue +1 -1
  139. package/src/component/FluxLegend.vue +1 -1
  140. package/src/component/FluxLink.vue +1 -1
  141. package/src/component/FluxMenu.vue +1 -1
  142. package/src/component/FluxMenuCollapsible.vue +3 -3
  143. package/src/component/FluxMenuGroup.vue +1 -1
  144. package/src/component/FluxMenuItem.vue +2 -2
  145. package/src/component/FluxMenuSubHeader.vue +1 -1
  146. package/src/component/FluxMenuTitle.vue +1 -1
  147. package/src/component/FluxNotice.vue +3 -3
  148. package/src/component/FluxOverflowBar.vue +1 -1
  149. package/src/component/FluxOverlay.vue +3 -3
  150. package/src/component/FluxOverlayProvider.vue +2 -2
  151. package/src/component/FluxPagination.vue +3 -3
  152. package/src/component/FluxPaginationBar.vue +2 -2
  153. package/src/component/FluxPaginationButton.vue +1 -1
  154. package/src/component/FluxPane.vue +1 -1
  155. package/src/component/FluxPaneBody.vue +1 -1
  156. package/src/component/FluxPaneFooter.vue +1 -1
  157. package/src/component/FluxPaneGroup.vue +1 -1
  158. package/src/component/FluxPaneHeader.vue +2 -2
  159. package/src/component/FluxPaneIllustration.vue +1 -1
  160. package/src/component/FluxPaneMedia.vue +1 -1
  161. package/src/component/FluxPercentageBar.vue +1 -1
  162. package/src/component/FluxPersona.vue +1 -1
  163. package/src/component/FluxPlaceholder.vue +1 -1
  164. package/src/component/FluxPressable.vue +1 -1
  165. package/src/component/FluxPrimaryButton.vue +1 -1
  166. package/src/component/FluxPrimaryLinkButton.vue +1 -1
  167. package/src/component/FluxProgressBar.vue +2 -2
  168. package/src/component/FluxPrompt.vue +1 -1
  169. package/src/component/FluxPublishButton.vue +1 -1
  170. package/src/component/FluxQuantitySelector.vue +2 -2
  171. package/src/component/FluxRemove.vue +2 -2
  172. package/src/component/FluxRoot.vue +2 -2
  173. package/src/component/FluxRow.vue +1 -1
  174. package/src/component/FluxSecondaryButton.vue +1 -1
  175. package/src/component/FluxSecondaryLinkButton.vue +1 -1
  176. package/src/component/FluxSegmentedControl.vue +1 -1
  177. package/src/component/FluxSeparator.vue +1 -1
  178. package/src/component/FluxSlideOver.vue +3 -3
  179. package/src/component/FluxSnackbar.vue +2 -2
  180. package/src/component/FluxSnackbarProvider.vue +2 -2
  181. package/src/component/FluxSpacer.vue +1 -1
  182. package/src/component/FluxSpinner.vue +1 -1
  183. package/src/component/FluxSplitButton.vue +2 -2
  184. package/src/component/FluxStack.vue +2 -2
  185. package/src/component/FluxStatistic.vue +2 -2
  186. package/src/component/FluxStepper.vue +1 -1
  187. package/src/component/FluxStepperStep.vue +1 -1
  188. package/src/component/FluxStepperSteps.vue +2 -2
  189. package/src/component/FluxTab.vue +2 -2
  190. package/src/component/FluxTabBar.vue +75 -7
  191. package/src/component/FluxTabBarItem.vue +35 -4
  192. package/src/component/FluxTable.vue +3 -4
  193. package/src/component/FluxTableActions.vue +1 -1
  194. package/src/component/FluxTableBar.vue +3 -3
  195. package/src/component/FluxTableCell.vue +3 -3
  196. package/src/component/FluxTableHeader.vue +3 -3
  197. package/src/component/FluxTableRow.vue +1 -1
  198. package/src/component/FluxTabs.vue +10 -4
  199. package/src/component/FluxTag.vue +2 -2
  200. package/src/component/FluxTicks.vue +1 -1
  201. package/src/component/FluxTimeline.vue +1 -1
  202. package/src/component/FluxTimelineItem.vue +2 -2
  203. package/src/component/FluxToggle.vue +2 -2
  204. package/src/component/FluxToolbar.vue +2 -2
  205. package/src/component/FluxTooltip.vue +1 -1
  206. package/src/component/FluxTooltipProvider.vue +3 -3
  207. package/src/component/FluxTreeView.vue +3 -4
  208. package/src/component/FluxWindow.vue +1 -1
  209. package/src/component/calendar/FluxCalendarItemDisplay.vue +117 -0
  210. package/src/component/calendar/FluxCalendarMonthView.vue +134 -0
  211. package/src/component/calendar/FluxCalendarTimeGridView.vue +550 -0
  212. package/src/component/calendar/index.ts +3 -0
  213. package/src/component/index.ts +2 -2
  214. package/src/component/primitive/CoordinatePicker.vue +2 -2
  215. package/src/component/primitive/CoordinatePickerThumb.vue +2 -2
  216. package/src/component/primitive/DialogLayout.vue +1 -1
  217. package/src/component/primitive/FilterBadge.vue +2 -2
  218. package/src/component/primitive/FilterItem.vue +1 -1
  219. package/src/component/primitive/FilterMenuRenderer.ts +2 -2
  220. package/src/component/primitive/FilterOptionBase.vue +6 -6
  221. package/src/component/primitive/SelectBase.vue +13 -13
  222. package/src/component/primitive/SliderBase.vue +3 -3
  223. package/src/component/primitive/SliderThumb.vue +2 -2
  224. package/src/component/primitive/SliderTrack.vue +1 -1
  225. package/src/component/primitive/TreeNodeRenderer.vue +3 -4
  226. package/src/component/primitive/VNodeRenderer.ts +1 -2
  227. package/src/composable/index.ts +3 -0
  228. package/src/composable/private/index.ts +5 -8
  229. package/src/composable/private/useAsyncFilterOptions.ts +2 -2
  230. package/src/composable/private/useCommandPalette.ts +2 -2
  231. package/src/composable/private/useDateFlyout.ts +1 -1
  232. package/src/composable/private/useDropdownPopup.ts +1 -1
  233. package/src/composable/private/useFilterOption.ts +2 -2
  234. package/src/composable/private/useFormSelect.ts +2 -3
  235. package/src/composable/private/useKanban.ts +167 -244
  236. package/src/composable/private/useKanbanAutoScroll.ts +95 -0
  237. package/src/composable/private/useTranslate.ts +1 -2
  238. package/src/composable/private/useTreeView.ts +1 -1
  239. package/src/composable/useAdaptiveGroupInjection.ts +1 -1
  240. package/src/composable/useBreakpoints.ts +1 -2
  241. package/src/composable/useCalendarInjection.ts +6 -0
  242. package/src/composable/useDisabled.ts +1 -2
  243. package/src/composable/useDisabledInjection.ts +1 -1
  244. package/src/composable/useExpandableGroupInjection.ts +1 -1
  245. package/src/composable/useFilterInjection.ts +1 -1
  246. package/src/composable/useFlyoutInjection.ts +1 -1
  247. package/src/composable/useFormFieldInjection.ts +1 -1
  248. package/src/composable/useKanbanInjection.ts +12 -0
  249. package/src/composable/useTabBarInjection.ts +10 -0
  250. package/src/composable/useTableInjection.ts +1 -1
  251. package/src/composable/useTooltipInjection.ts +1 -1
  252. package/src/css/component/Action.module.scss +1 -1
  253. package/src/css/component/AdaptiveSlot.module.scss +5 -7
  254. package/src/css/component/Avatar.module.scss +1 -1
  255. package/src/css/component/Badge.module.scss +1 -1
  256. package/src/css/component/Button.module.scss +1 -1
  257. package/src/css/component/Calendar.module.scss +274 -44
  258. package/src/css/component/Chip.module.scss +1 -1
  259. package/src/css/component/Color.module.scss +1 -1
  260. package/src/css/component/CommandPalette.module.scss +1 -1
  261. package/src/css/component/DatePicker.module.scss +1 -1
  262. package/src/css/component/Expandable.module.scss +1 -1
  263. package/src/css/component/Form.module.scss +1 -1
  264. package/src/css/component/Gallery.module.scss +1 -1
  265. package/src/css/component/Grid.module.scss +1 -1
  266. package/src/css/component/Item.module.scss +1 -1
  267. package/src/css/component/{FluxKanban.module.scss → Kanban.module.scss} +56 -79
  268. package/src/css/component/Layout.module.scss +1 -1
  269. package/src/css/component/Menu.module.scss +1 -1
  270. package/src/css/component/Notice.module.scss +1 -1
  271. package/src/css/component/Overlay.module.scss +4 -4
  272. package/src/css/component/Pagination.module.scss +1 -1
  273. package/src/css/component/Pane.module.scss +2 -1
  274. package/src/css/component/Placeholder.module.scss +1 -1
  275. package/src/css/component/Remove.module.scss +1 -1
  276. package/src/css/component/SegmentedControl.module.scss +1 -1
  277. package/src/css/component/Snackbar.module.scss +1 -1
  278. package/src/css/component/Tab.module.scss +138 -34
  279. package/src/css/component/Table.module.scss +1 -1
  280. package/src/css/component/TreeView.module.scss +1 -1
  281. package/src/css/component/TreeViewSelect.module.scss +1 -1
  282. package/src/css/component/base/Button.module.scss +1 -1
  283. package/src/css/component/primitive/Slider.module.scss +1 -1
  284. package/src/css/component/primitive/TreeNode.module.scss +1 -1
  285. package/src/css/variables.scss +2 -2
  286. package/src/data/di.ts +64 -11
  287. package/src/data/filter.ts +3 -3
  288. package/src/data/i18n.ts +4 -0
  289. package/src/data/store.ts +1 -2
  290. package/src/transition/FluxBreakthroughTransition.vue +1 -1
  291. package/src/transition/FluxFadeTransition.vue +1 -1
  292. package/src/transition/FluxOverlayTransition.vue +1 -1
  293. package/src/transition/FluxRouteTransition.vue +1 -1
  294. package/src/transition/FluxSlideOverTransition.vue +1 -1
  295. package/src/transition/FluxTooltipTransition.vue +1 -1
  296. package/src/transition/FluxVerticalWindowTransition.vue +1 -1
  297. package/src/transition/FluxWindowTransition.vue +1 -1
  298. package/src/util/createDialogRenderer.ts +3 -4
  299. package/src/util/createLabelForDateRange.ts +1 -1
  300. package/src/component/FluxCalendarEvent.vue +0 -42
  301. package/src/component/FluxKanbanCard.vue +0 -199
package/dist/index.css CHANGED
@@ -66,8 +66,8 @@
66
66
  --surface-loader: rgb(from var(--gray-25) r g b / .75);
67
67
  --surface-stroke: var(--gray-200);
68
68
  --surface-stroke-hover: var(--gray-300);
69
- --surface-stroke-out: rgb(from var(--gray-900) r g b / .1);
70
- --surface-stroke-out-hover: rgb(from var(--gray-950) r g b / .1);
69
+ --surface-stroke-out: rgb(from var(--gray-400) r g b / .2);
70
+ --surface-stroke-out-hover: rgb(from var(--gray-500) r g b / .2);
71
71
  --surface-hover: var(--gray-50);
72
72
  --surface-active: var(--gray-100);
73
73
  --surface-disabled: var(--gray-100);
@@ -441,20 +441,20 @@
441
441
  border-bottom: 1px solid var(--gray-100);
442
442
  box-shadow: var(--shadow-xs);
443
443
  }
444
- .slide-over > .base-pane-structure > .pane-header:has(+ :where(.tabs, .tab-bar)) {
444
+ .slide-over > .base-pane-structure > .pane-header:has(+ :where(.tabs, .tab-bar-default)) {
445
445
  padding-bottom: 0;
446
446
  border-bottom: 0;
447
447
  box-shadow: none;
448
448
  }
449
- .slide-over > .base-pane-structure > .pane-header:not(:has(+ :where(.tabs, .tab-bar))) {
449
+ .slide-over > .base-pane-structure > .pane-header:not(:has(+ :where(.tabs, .tab-bar-default))) {
450
450
  background: inherit;
451
451
  }
452
- .slide-over > .base-pane-structure > .pane-header + .tab-bar {
452
+ .slide-over > .base-pane-structure > .pane-header + .tab-bar-default {
453
453
  position: sticky;
454
454
  top: 45px;
455
455
  z-index: 100;
456
456
  }
457
- .slide-over > .base-pane-structure > .pane-header:has(.pane-header-caption > :is(span)) + .tab-bar {
457
+ .slide-over > .base-pane-structure > .pane-header:has(.pane-header-caption > :is(span)) + .tab-bar-default {
458
458
  top: 66px;
459
459
  }
460
460
  .slide-over > .base-pane-structure > .pane-footer {
@@ -1117,9 +1117,10 @@
1117
1117
  :is(.pane-default, .pane-flat, .pane-well):is(a, button) {
1118
1118
  cursor: pointer;
1119
1119
  transition: 210ms var(--swift-out);
1120
- transition-property: background, box-shadow;
1120
+ transition-property: background, border-color, box-shadow;
1121
1121
  }
1122
1122
  :is(.pane-default, .pane-flat, .pane-well):is(a, button):hover {
1123
+ border-color: var(--surface-stroke-out-hover);
1123
1124
  box-shadow: var(--shadow-lg);
1124
1125
  }
1125
1126
  :is(.pane-default, .pane-flat, .pane-well):is(a, button):active {
@@ -1434,28 +1435,26 @@
1434
1435
  flex-flow: column;
1435
1436
  }.adaptive-group {
1436
1437
  display: flex;
1437
- overflow: hidden;
1438
+ min-width: 0;
1438
1439
  flex-flow: row nowrap;
1439
1440
  gap: var(--gap, 9px);
1440
- min-width: 0;
1441
1441
  }
1442
1442
 
1443
1443
  .adaptive-slot {
1444
1444
  display: flex;
1445
- overflow: hidden;
1446
- flex-flow: row nowrap;
1447
1445
  min-width: 0;
1446
+ flex-flow: row nowrap;
1448
1447
  }
1449
1448
 
1450
1449
  .adaptive-slot-measurer {
1451
1450
  position: absolute;
1451
+ display: flex;
1452
1452
  top: 0;
1453
1453
  left: 0;
1454
- display: flex;
1455
- visibility: hidden;
1456
- flex-flow: row nowrap;
1457
1454
  width: max-content;
1455
+ flex-flow: row nowrap;
1458
1456
  pointer-events: none;
1457
+ visibility: hidden;
1459
1458
  }@property --shine-degrees {
1460
1459
  syntax: "<angle>";
1461
1460
  initial-value: 0deg;
@@ -1969,417 +1968,525 @@
1969
1968
  }
1970
1969
 
1971
1970
  .tag-warning {
1972
- }.filter {
1973
- max-height: 50dvh;
1974
- max-width: 100%;
1975
- padding: 9px;
1976
- width: 270px;
1977
- overflow: auto;
1978
- scrollbar-width: none;
1979
- transition: height 150ms var(--deceleration-curve);
1980
- z-index: 0;
1971
+ }.calendar {
1972
+ display: flex;
1973
+ flex-flow: column;
1974
+ flex-grow: 1;
1975
+ box-shadow: var(--shadow-sm);
1976
+ contain: paint;
1981
1977
  }
1982
- .filter::-webkit-scrollbar {
1978
+
1979
+ .calendar-item-registry {
1983
1980
  display: none;
1984
- height: 0;
1985
- width: 0;
1986
1981
  }
1987
- .filter .menu > :where(.divider, .separator) {
1988
- margin: 3px -9px;
1982
+
1983
+ .calendar-actions {
1984
+ align-items: center;
1989
1985
  }
1990
- .filter .menu > .menu-group > .menu-sub-header {
1991
- top: 51px;
1986
+
1987
+ .calendar-loader {
1992
1988
  }
1993
- .filter .menu > .menu-group:has(.filter-search) > .menu-sub-header {
1994
- top: 105px;
1989
+
1990
+ .calendar-current {
1991
+ display: flex;
1992
+ gap: 9px;
1995
1993
  }
1996
- .filter .menu .menu-item-label {
1997
- min-width: 0;
1998
- overflow: hidden;
1999
- text-overflow: ellipsis;
2000
- white-space: nowrap;
1994
+
1995
+ .calendar-current-value {
1996
+ padding: 0;
1997
+ background: none;
1998
+ border: 0;
1999
+ cursor: pointer;
2000
+ font-size: 30px;
2001
+ letter-spacing: -0.05em;
2002
+ line-height: 1.5em;
2003
+ text-transform: capitalize;
2001
2004
  }
2002
- .filter .pane-body {
2003
- margin: -9px;
2005
+ @media (hover: hover) {
2006
+ .calendar-current-value:hover {
2007
+ color: var(--primary-600);
2008
+ }
2004
2009
  }
2005
2010
 
2006
- .filter-badge {
2007
- padding-left: 6px;
2008
- padding-right: 6px;
2009
- background: var(--primary-50);
2010
- border: 1px dashed var(--primary-300);
2011
- font-weight: 500;
2011
+ .calendar-current-month {
2012
+ color: var(--foreground-prominent);
2013
+ font-weight: 700;
2012
2014
  }
2013
- .filter-badge .badge-label {
2014
- color: var(--primary-900);
2015
+
2016
+ .calendar-current-year {
2017
+ color: var(--foreground);
2015
2018
  }
2016
2019
 
2017
- .filter-button {
2018
- border: 1px solid var(--surface-stroke);
2019
- box-shadow: none;
2020
+ .calendar-range-label {
2021
+ color: var(--foreground-prominent);
2022
+ font-weight: 700;
2020
2023
  }
2021
- .filter-button .badge {
2022
- border-radius: var(--radius-half);
2024
+
2025
+ .calendar-item {
2026
+ display: block;
2027
+ padding: 0;
2028
+ background: transparent;
2029
+ border: 0;
2030
+ cursor: default;
2031
+ text-align: left;
2032
+ outline: 2px solid rgb(from var(--primary-600) r g b/0);
2033
+ outline-offset: 0;
2023
2034
  }
2024
- .filter-button .button-icon {
2025
- color: var(--primary-700);
2026
- font-size: 16px;
2035
+ .calendar-item:focus-visible {
2036
+ outline-color: var(--primary-600);
2037
+ outline-offset: 0;
2027
2038
  }
2028
-
2029
- .filter-header {
2030
- position: sticky;
2031
- margin: -9px -9px 3px;
2032
- padding: 9px;
2033
- top: -9px;
2034
- background: var(--surface);
2035
- border-bottom: 1px solid var(--surface-stroke);
2036
- z-index: 2;
2039
+ .calendar-item.is-clickable {
2040
+ cursor: pointer;
2037
2041
  }
2038
- .filter-header:first-child {
2039
- border-top-left-radius: var(--radius);
2040
- border-top-right-radius: var(--radius);
2042
+ .calendar-item.is-draggable {
2043
+ cursor: grab;
2044
+ }
2045
+ .calendar-item.is-draggable:active {
2046
+ cursor: grabbing;
2047
+ }
2048
+ .calendar-item.is-grabbed {
2049
+ outline: 2px solid var(--primary-500);
2050
+ outline-offset: 2px;
2041
2051
  }
2042
2052
 
2043
- .filter-back {
2053
+ /* region Month view */
2054
+ .calendar-cells {
2055
+ display: grid;
2044
2056
  flex-grow: 1;
2057
+ gap: 1px;
2058
+ grid-template-columns: repeat(7, minmax(180px, 1fr));
2059
+ grid-auto-rows: auto;
2060
+ overflow-x: auto;
2061
+ background: var(--gray-100);
2045
2062
  }
2046
2063
 
2047
- .filter-reset {
2048
- width: 42px;
2049
- justify-content: center;
2064
+ .calendar-cell {
2065
+ padding: 9px;
2066
+ background: var(--gray-25);
2050
2067
  }
2051
2068
 
2052
- .filter-date-picker {
2053
- margin: -9px;
2069
+ .calendar-day {
2070
+ padding-left: 0;
2071
+ padding-right: 0;
2072
+ color: var(--foreground-secondary);
2073
+ font-size: 12px;
2074
+ font-weight: 400;
2075
+ line-height: 1em;
2076
+ text-align: center;
2077
+ text-transform: capitalize;
2054
2078
  }
2055
2079
 
2056
- .filter-search {
2057
- position: sticky;
2058
- margin: -9px -9px 0;
2059
- padding: 9px;
2060
- background: linear-gradient(to bottom, var(--surface) 75%, transparent);
2080
+ .calendar-entry {
2081
+ position: relative;
2082
+ min-height: 90px;
2083
+ padding-top: 33px;
2084
+ outline: 2px dashed transparent;
2085
+ outline-offset: 2px;
2086
+ transition: 210ms var(--swift-out);
2087
+ transition-property: background, outline-color, z-index;
2088
+ z-index: 0;
2089
+ }
2090
+ .calendar-entry.is-disabled {
2091
+ background: var(--gray-50);
2092
+ color: var(--foreground-secondary);
2093
+ }
2094
+ .calendar-entry.is-disabled .calendar-entry-date {
2095
+ opacity: 0.25;
2096
+ }
2097
+ .calendar-entry.is-disabled .calendar-events {
2098
+ opacity: 0.75;
2099
+ pointer-events: none;
2100
+ }
2101
+ .calendar-entry.is-focused, .calendar-entry.is-drop-target {
2061
2102
  z-index: 1;
2062
2103
  }
2104
+ .calendar-entry.is-focused {
2105
+ box-shadow: inset 0 0 0 2px var(--primary-200);
2106
+ }
2107
+ .calendar-entry.is-drop-target {
2108
+ background: var(--primary-50);
2109
+ outline-color: var(--primary-600);
2110
+ }
2111
+ .calendar-entry.is-today .calendar-entry-date {
2112
+ color: var(--primary-600);
2113
+ }
2063
2114
 
2064
- .filter-header + .menu-group .filter-search {
2065
- top: 52px;
2115
+ .calendar-entry-date {
2116
+ position: absolute;
2117
+ top: 12px;
2118
+ left: 12px;
2119
+ color: var(--foreground);
2120
+ font-size: 12px;
2121
+ font-weight: 700;
2122
+ line-height: 1em;
2066
2123
  }
2067
2124
 
2068
- .filter-bar {
2125
+ .calendar-events {
2126
+ display: grid;
2127
+ grid-auto-rows: auto;
2128
+ gap: 3px;
2129
+ }
2130
+
2131
+ /* endregion */
2132
+ /* region Time-grid view */
2133
+ .time-grid {
2069
2134
  display: flex;
2070
- flex-flow: row nowrap;
2135
+ flex-flow: column;
2071
2136
  flex-grow: 1;
2072
- gap: 15px;
2137
+ overflow: hidden;
2138
+ background: var(--gray-25);
2073
2139
  }
2074
2140
 
2075
- .filter-bar-search {
2076
- max-width: 300px;
2077
- }.menu {
2141
+ .time-grid-inner {
2078
2142
  display: flex;
2079
2143
  flex-flow: column;
2144
+ flex-grow: 1;
2145
+ overflow: hidden;
2080
2146
  }
2081
2147
 
2082
- .menu-normal {
2083
- gap: 6px;
2148
+ .time-grid-header {
2149
+ display: grid;
2150
+ grid-template-columns: 64px 1fr;
2151
+ background: var(--gray-25);
2152
+ border-bottom: 1px solid var(--gray-100);
2084
2153
  }
2085
2154
 
2086
- .menu-large {
2087
- gap: 9px;
2155
+ .time-grid-header-gutter {
2156
+ background: var(--gray-25);
2088
2157
  }
2089
2158
 
2090
- .menu-group {
2091
- counter-reset: menu-group;
2159
+ .time-grid-header-days {
2160
+ display: grid;
2161
+ grid-auto-flow: column;
2162
+ grid-auto-columns: minmax(0, 1fr);
2163
+ gap: 1px;
2164
+ background: var(--gray-100);
2092
2165
  }
2093
2166
 
2094
- .menu-group-horizontal {
2167
+ .time-grid-header-day {
2168
+ padding: 9px 12px;
2169
+ background: var(--gray-25);
2170
+ color: var(--foreground-secondary);
2171
+ font-size: 12px;
2172
+ font-weight: 600;
2173
+ line-height: 1em;
2174
+ text-align: center;
2175
+ text-transform: capitalize;
2176
+ }
2177
+ .time-grid-header-day.is-today {
2178
+ color: var(--primary-600);
2179
+ }
2180
+
2181
+ .time-grid-all-day {
2182
+ display: grid;
2183
+ grid-template-columns: 64px 1fr;
2184
+ background: var(--gray-25);
2185
+ border-bottom: 1px solid var(--gray-100);
2186
+ }
2187
+
2188
+ .time-grid-all-day-label {
2189
+ align-self: stretch;
2190
+ padding: 6px 9px;
2191
+ color: var(--foreground-secondary);
2192
+ font-size: 11px;
2193
+ font-weight: 500;
2194
+ line-height: 1em;
2195
+ text-align: right;
2196
+ }
2197
+
2198
+ .time-grid-all-day-days {
2199
+ display: grid;
2200
+ grid-auto-flow: column;
2201
+ grid-auto-columns: minmax(0, 1fr);
2202
+ gap: 1px;
2203
+ min-height: 36px;
2204
+ background: var(--gray-100);
2205
+ }
2206
+
2207
+ .time-grid-all-day-cell {
2095
2208
  display: flex;
2209
+ flex-flow: column;
2096
2210
  gap: 3px;
2211
+ padding: 6px;
2212
+ background: var(--gray-25);
2213
+ }
2214
+ .time-grid-all-day-cell.is-drop-target {
2215
+ box-shadow: inset 0 0 0 2px var(--primary-300);
2097
2216
  }
2098
2217
 
2099
- .menu-group-vertical {
2218
+ .time-grid-body {
2219
+ display: grid;
2220
+ grid-template-columns: 64px 1fr;
2221
+ flex-grow: 1;
2222
+ overflow-y: auto;
2223
+ overflow-x: hidden;
2224
+ position: relative;
2225
+ }
2226
+
2227
+ .time-grid-hours {
2100
2228
  display: flex;
2101
2229
  flex-flow: column;
2102
- gap: 1px;
2230
+ background: var(--gray-25);
2103
2231
  }
2104
2232
 
2105
- .menu-item {
2106
- height: unset;
2107
- min-height: 42px;
2108
- gap: 15px;
2109
- justify-content: flex-start;
2110
- border: 0;
2111
- box-shadow: none;
2112
- color: var(--foreground);
2113
- text-align: left;
2114
- }
2115
- @media (hover: hover) {
2116
- .menu-item:hover {
2117
- background: var(--gray-100);
2118
- }
2119
- }
2120
- .menu-item:active {
2121
- background: var(--gray-200);
2233
+ .time-grid-hour-label {
2234
+ position: relative;
2235
+ box-sizing: border-box;
2236
+ padding-right: 9px;
2237
+ color: var(--foreground-secondary);
2238
+ font-size: 11px;
2239
+ font-weight: 500;
2240
+ line-height: 1em;
2241
+ text-align: right;
2122
2242
  }
2123
- .menu-item .badge:last-child {
2124
- margin-right: -6px;
2243
+
2244
+ .time-grid-hour-label-text {
2245
+ position: absolute;
2246
+ top: 0;
2247
+ right: 9px;
2248
+ transform: translateY(-50%);
2249
+ background: var(--gray-25);
2250
+ padding: 0 2px;
2125
2251
  }
2126
2252
 
2127
- .menu-item-icon {
2253
+ .time-grid-days {
2254
+ display: grid;
2255
+ grid-auto-flow: column;
2256
+ grid-auto-columns: minmax(0, 1fr);
2257
+ gap: 1px;
2258
+ background: var(--gray-100);
2128
2259
  }
2129
2260
 
2130
- .menu-item-label {
2131
- flex-grow: 1;
2132
- font-weight: 400;
2133
- text-align: left;
2261
+ .time-grid-day {
2262
+ position: relative;
2263
+ background: var(--gray-25);
2264
+ background-image: repeating-linear-gradient(to bottom, transparent, transparent calc(var(--hour-height, 48px) - 1px), var(--gray-100) calc(var(--hour-height, 48px) - 1px), var(--gray-100) var(--hour-height, 48px));
2134
2265
  }
2135
- .menu-item-label:only-child {
2136
- margin-left: 0;
2137
- margin-right: 0;
2138
- min-width: unset;
2266
+ .time-grid-day.is-drop-target {
2267
+ box-shadow: inset 0 0 0 2px var(--primary-300);
2139
2268
  }
2140
2269
 
2141
- .menu-item-active {
2142
- background: var(--primary-600);
2143
- color: var(--primary-50);
2270
+ .time-grid-day-item {
2271
+ position: absolute;
2272
+ box-sizing: border-box;
2273
+ overflow: hidden;
2274
+ padding: 2px;
2144
2275
  }
2145
- .menu-item-active .menu-item-icon {
2146
- color: var(--primary-25);
2276
+ .time-grid-day-item.is-clipped-top {
2277
+ border-top: 2px dashed var(--warning-300);
2147
2278
  }
2148
- @media (hover: hover) {
2149
- .menu-item-active:hover {
2150
- background: var(--primary-600);
2151
- }
2279
+ .time-grid-day-item.is-clipped-bottom {
2280
+ border-bottom: 2px dashed var(--warning-300);
2152
2281
  }
2153
- .menu-item-active:active {
2154
- background: var(--primary-600);
2282
+ .time-grid-day-item.is-resizing {
2283
+ opacity: 0.8;
2155
2284
  }
2156
2285
 
2157
- .menu-item-destructive .menu-item-icon {
2158
- color: var(--danger-700);
2286
+ .time-grid-day-item-body {
2287
+ position: relative;
2288
+ height: 100%;
2289
+ width: 100%;
2159
2290
  }
2160
- .menu-item-destructive .menu-item-label {
2161
- color: var(--danger-700);
2291
+ .time-grid-day-item-body > button {
2292
+ display: block;
2293
+ width: 100%;
2294
+ height: 100%;
2162
2295
  }
2163
2296
 
2164
- .menu-item-highlighted {
2165
- background: var(--primary-100);
2166
- color: var(--primary-600);
2167
- }
2168
- .menu-item-highlighted .menu-item-icon {
2169
- color: var(--primary-700);
2297
+ .time-grid-day-item-handle {
2298
+ position: absolute;
2299
+ left: 0;
2300
+ right: 0;
2301
+ height: 6px;
2302
+ cursor: ns-resize;
2303
+ z-index: 2;
2304
+ background: transparent;
2170
2305
  }
2171
2306
  @media (hover: hover) {
2172
- .menu-item-highlighted:hover {
2173
- background: var(--primary-100);
2307
+ .time-grid-day-item-handle:hover {
2308
+ background: var(--primary-300);
2174
2309
  }
2175
2310
  }
2176
- .menu-item-highlighted:active {
2177
- background: var(--primary-100);
2311
+ .time-grid-day-item-handle.is-top {
2312
+ top: 0;
2178
2313
  }
2179
- .menu-item-highlighted .badge {
2180
- --surface-stroke: var(--primary-200);
2314
+ .time-grid-day-item-handle.is-bottom {
2315
+ bottom: 0;
2181
2316
  }
2182
2317
 
2183
- .menu-item-indented {
2184
- margin-left: 33px;
2318
+ .time-grid-drop-indicator {
2319
+ position: absolute;
2320
+ left: 0;
2321
+ right: 0;
2322
+ height: 2px;
2323
+ background: var(--primary-500);
2324
+ z-index: 5;
2325
+ pointer-events: none;
2185
2326
  }
2186
2327
 
2187
- .menu-collapsible {
2328
+ /* endregion */.date-picker {
2188
2329
  display: flex;
2330
+ max-height: 420px;
2189
2331
  flex-flow: column;
2332
+ border-radius: inherit;
2333
+ overflow: auto;
2334
+ user-select: none;
2335
+ z-index: 0;
2190
2336
  }
2191
2337
 
2192
- .menu-collapsible-opened {
2193
- }
2194
-
2195
- .menu-collapsible-body {
2196
- position: relative;
2197
- min-height: 0;
2198
- transition: height 300ms var(--swift-out), opacity 200ms var(--swift-out);
2199
- }
2200
- .menu-collapsible-body::before {
2201
- content: "";
2202
- position: absolute;
2203
- top: 3px;
2204
- bottom: 3px;
2205
- left: 21px;
2206
- width: 2px;
2207
- background: var(--surface-stroke);
2208
- }
2209
- .menu-collapsible-body.v-enter-from, .menu-collapsible-body.v-leave-to {
2210
- opacity: 0;
2211
- }
2212
- .menu-collapsible-body.v-enter-to, .menu-collapsible-body.v-leave-from {
2213
- opacity: 1;
2214
- }
2215
- .menu-collapsible-body.v-enter-active, .menu-collapsible-body.v-leave-active {
2216
- overflow: hidden;
2338
+ .date-picker-dates,
2339
+ .date-picker-months,
2340
+ .date-picker-years,
2341
+ .date-picker-header {
2342
+ padding: 15px;
2217
2343
  }
2218
2344
 
2219
- .menu-collapsible-content {
2345
+ .date-picker-header {
2346
+ position: sticky;
2220
2347
  display: flex;
2221
- padding-top: 3px;
2222
- padding-bottom: 3px;
2223
- padding-left: 35px;
2224
- flex-flow: column;
2225
- gap: 3px;
2348
+ top: 0;
2349
+ align-items: center;
2350
+ background: var(--gray-50);
2351
+ border-bottom: 1px solid var(--surface-stroke);
2352
+ z-index: 1;
2226
2353
  }
2227
2354
 
2228
- .menu-item-selectable-icon {
2355
+ .date-picker-header-view {
2356
+ display: flex;
2357
+ height: 42px;
2358
+ margin-left: auto;
2359
+ margin-right: auto;
2360
+ align-items: center;
2361
+ gap: 9px;
2362
+ font-size: 16px;
2363
+ font-weight: 600;
2229
2364
  }
2230
2365
 
2231
- .menu-item-selected .menu-item-selectable-icon {
2232
- color: var(--primary-600);
2366
+ .date-picker-header-view-button {
2367
+ padding: 0;
2368
+ background: unset;
2369
+ border: 0;
2370
+ cursor: pointer;
2371
+ text-transform: capitalize;
2233
2372
  }
2234
-
2235
- .menu-item-command {
2236
- margin-top: 1px;
2237
- margin-left: auto;
2238
- padding-left: 6px;
2239
- color: var(--foreground-secondary);
2240
- font: inherit;
2241
- font-size: 14px;
2242
- white-space: nowrap;
2373
+ .date-picker-header-view-button:first-child {
2374
+ color: var(--foreground-prominent);
2243
2375
  }
2244
-
2245
- .menu-item-command-icon {
2246
- margin-right: -6px;
2376
+ .date-picker-header-view-button:last-child {
2247
2377
  color: var(--foreground-secondary);
2248
2378
  }
2249
- .menu-item-command-icon.icon {
2250
- font-size: 16px;
2379
+ @media (hover: hover) {
2380
+ .date-picker-header-view-button:hover {
2381
+ color: var(--primary-600);
2382
+ }
2251
2383
  }
2252
2384
 
2253
- .menu-item-command + .menu-item-command-icon {
2254
- margin-left: -9px;
2385
+ .date-picker-date {
2386
+ display: flex;
2387
+ padding: 0;
2388
+ align-items: center;
2389
+ justify-content: center;
2390
+ aspect-ratio: 1;
2391
+ background: unset;
2392
+ border: 0;
2393
+ border-radius: var(--radius);
2394
+ color: var(--foreground-prominent);
2395
+ cursor: pointer;
2396
+ font-size: 14px;
2397
+ outline: 0;
2398
+ transition: var(--transition-default);
2399
+ transition-property: background, border-radius, color, opacity;
2255
2400
  }
2256
-
2257
- .menu-item-active .menu-item-command,
2258
- .menu-item-active .menu-item-command-icon {
2259
- color: var(--primary-300);
2401
+ @media (hover: hover) {
2402
+ .date-picker-date:hover {
2403
+ background: var(--gray-100);
2404
+ color: var(--foreground-prominent);
2405
+ }
2260
2406
  }
2261
-
2262
- .menu-item-image {
2263
- margin-left: -2px;
2264
- margin-right: -2px;
2265
- height: 24px;
2266
- width: 24px;
2267
- border-radius: 3px;
2407
+ .date-picker-date.is-disabled:not(.is-range-entry, .is-range-end, .is-range-start, .is-selection-entry, .is-selection-end, .is-selection-start) {
2408
+ opacity: 0.25;
2409
+ pointer-events: none;
2268
2410
  }
2269
-
2270
- .menu-item .avatar {
2271
- margin: -3px;
2272
- font-size: 24px;
2411
+ .date-picker-date:not(.is-disabled) {
2412
+ font-weight: 500;
2273
2413
  }
2274
-
2275
- .menu-group-horizontal .menu-item {
2276
- flex-basis: 0;
2277
- flex-grow: 1;
2414
+ .date-picker-date.is-selected {
2415
+ background: var(--primary-600);
2416
+ color: var(--primary-50);
2417
+ font-weight: 700;
2278
2418
  }
2279
- .menu-group-horizontal .menu-item:has(.menu-item-icon:only-child) {
2280
- justify-content: center;
2419
+ .date-picker-date.is-range-entry {
2420
+ background: var(--primary-200);
2421
+ border-radius: 0;
2422
+ color: var(--primary-950);
2281
2423
  }
2282
-
2283
- .menu-title {
2284
- padding: 0 12px;
2285
- color: var(--foreground-prominent);
2286
- font-size: 18px;
2424
+ .date-picker-date.is-range-end, .date-picker-date.is-range-start {
2425
+ background: var(--primary-600);
2426
+ color: var(--primary-50);
2287
2427
  font-weight: 700;
2288
2428
  }
2289
-
2290
- .menu-sub-header {
2291
- position: sticky;
2292
- display: flex;
2293
- top: 0;
2294
- margin-top: -9px;
2295
- margin-bottom: -3px;
2296
- padding: 12px 12px 6px;
2297
- align-items: center;
2298
- gap: 9px;
2299
- background: linear-gradient(to bottom, var(--surface) 75%, transparent);
2300
- pointer-events: none;
2301
- z-index: 1;
2302
- }
2303
-
2304
- .menu-sub-header-icon,
2305
- .menu-sub-header-label {
2306
- color: var(--foreground-secondary);
2429
+ .date-picker-date.is-range-entry:nth-child(7n+8), .date-picker-date.is-range-start {
2430
+ border-top-left-radius: var(--radius);
2431
+ border-bottom-left-radius: var(--radius);
2307
2432
  }
2308
-
2309
- .menu-sub-header-icon {
2310
- font-size: 16px;
2433
+ .date-picker-date.is-range-entry:nth-child(7n), .date-picker-date.is-range-end {
2434
+ border-top-right-radius: var(--radius);
2435
+ border-bottom-right-radius: var(--radius);
2311
2436
  }
2312
-
2313
- .menu-sub-header-label {
2314
- flex-grow: 1;
2315
- font-size: 14px;
2437
+ .date-picker-date.is-selection-entry {
2438
+ background: var(--gray-100);
2439
+ border-radius: 0;
2440
+ color: var(--foreground-prominent);
2316
2441
  }
2317
-
2318
- .menu-item + .menu-sub-header {
2319
- margin-top: 9px;
2442
+ .date-picker-date.is-selection-end, .date-picker-date.is-selection-start {
2443
+ background: var(--gray-200);
2444
+ font-weight: 700;
2320
2445
  }
2321
-
2322
- .menu-large .menu-item {
2323
- position: relative;
2324
- padding-left: 15px;
2325
- padding-right: 15px;
2446
+ .date-picker-date.is-selection-entry:nth-child(7n+8), .date-picker-date.is-selection-start {
2447
+ border-top-left-radius: var(--radius);
2448
+ border-bottom-left-radius: var(--radius);
2326
2449
  }
2327
- .menu-large .menu-item::after {
2328
- position: absolute;
2329
- display: block;
2330
- top: 12px;
2331
- right: 12px;
2332
- bottom: 12px;
2333
- width: 4px;
2334
- content: "";
2335
- background: var(--primary-600);
2336
- border-radius: var(--radius-full);
2337
- opacity: 0;
2338
- transition: opacity var(--transition-default);
2450
+ .date-picker-date.is-selection-entry:nth-child(7n), .date-picker-date.is-selection-end {
2451
+ border-top-right-radius: var(--radius);
2452
+ border-bottom-right-radius: var(--radius);
2339
2453
  }
2340
2454
 
2341
- .menu-large .menu-item:not(.menu-item-indented) {
2342
- min-height: 48px;
2343
- }
2344
- .menu-large .menu-item:not(.menu-item-indented)::after {
2345
- background: var(--primary-25);
2455
+ .date-picker-dates {
2456
+ position: relative;
2346
2457
  }
2347
2458
 
2348
- .menu-large .menu-item-active::after {
2349
- opacity: 1;
2350
- }
2351
- .menu-large .menu-item-active.menu-item-indented {
2352
- background: var(--gray-100);
2353
- }
2354
- .menu-large .menu-item-active.menu-item-indented .menu-item-icon,
2355
- .menu-large .menu-item-active.menu-item-indented .menu-item-label {
2356
- color: var(--foreground-prominent);
2459
+ .date-picker-dates-grid {
2460
+ display: grid;
2461
+ gap: 3px 0;
2462
+ grid-template-columns: repeat(7, 1fr);
2357
2463
  }
2358
2464
 
2359
- .base-pane > .menu {
2360
- margin-left: 9px;
2361
- margin-right: 9px;
2362
- }
2363
- .base-pane > .menu:first-child {
2364
- margin-top: 9px;
2365
- }
2366
- .base-pane > .menu:last-child {
2367
- margin-bottom: 9px;
2368
- }
2369
- .base-pane > .menu > :where(.divider, .separator) {
2370
- margin: 3px -9px;
2465
+ .date-picker-day {
2466
+ margin-bottom: 6px;
2467
+ color: var(--foreground-secondary);
2468
+ font-size: 12px;
2469
+ font-weight: 500;
2470
+ text-align: center;
2471
+ text-transform: uppercase;
2371
2472
  }
2372
2473
 
2373
- .expandable-body > .menu {
2374
- margin-left: 9px;
2375
- margin-right: 9px;
2376
- }
2377
- .expandable-body > .menu:last-child {
2378
- margin-bottom: 9px;
2474
+ .date-picker-months,
2475
+ .date-picker-years {
2476
+ display: grid;
2477
+ margin-left: auto;
2478
+ margin-right: auto;
2479
+ max-width: 300px;
2480
+ width: 100%;
2481
+ gap: 9px;
2482
+ grid-template-columns: repeat(3, 1fr);
2379
2483
  }
2380
- .expandable-body > .menu > :where(.divider, .separator) {
2381
- margin-left: 18px;
2382
- margin-right: 18px;
2484
+ .date-picker-months .button,
2485
+ .date-picker-years .button {
2486
+ contain: size layout;
2487
+ contain-intrinsic-size: 0 42px;
2488
+ content-visibility: auto;
2489
+ text-transform: capitalize;
2383
2490
  }.form-input-group > .button-group > .button, .form-input-group > :is(.form-input, .form-select, .button) {
2384
2491
  height: 100%;
2385
2492
  min-height: unset;
@@ -3182,1062 +3289,1167 @@
3182
3289
  .toggle-input::after {
3183
3290
  transition: 210ms var(--swift-out);
3184
3291
  transition-property: background, border-color, color, opacity, scale, translate, outline-color, outline-offset;
3185
- }.slider {
3186
- position: relative;
3292
+ }.chip {
3187
3293
  display: flex;
3188
- margin: 6px;
3189
- flex-flow: column;
3294
+ height: 36px;
3295
+ padding: 0 12px;
3296
+ align-items: center;
3297
+ flex-grow: 0;
3190
3298
  gap: 9px;
3191
- touch-action: pan-y;
3192
- }
3193
- .slider.is-disabled {
3194
- cursor: not-allowed;
3195
- }
3196
- .slider.is-dragging {
3197
- cursor: grabbing;
3198
- }
3199
-
3200
- .slider-thumb {
3201
- position: absolute;
3202
- top: 50%;
3203
- height: 24px;
3204
- width: 24px;
3205
- padding: 0;
3206
- background: var(--surface);
3207
- background-clip: padding-box;
3208
- border: 1px solid var(--surface-stroke-out);
3299
+ background: var(--gray-50);
3300
+ border: 1px solid var(--gray-200);
3209
3301
  border-radius: var(--radius-full);
3210
- box-shadow: var(--shadow-sm);
3211
- cursor: grab;
3212
- outline: 0;
3213
- translate: -50% -50%;
3302
+ color: var(--foreground);
3214
3303
  transition: var(--transition-default);
3215
- transition-property: outline-color, outline-offset;
3304
+ transition-property: background, border, color, outline-color, outline-offset;
3305
+ }
3306
+ .chip.is-selectable {
3307
+ cursor: pointer;
3216
3308
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
3217
3309
  outline-offset: 0;
3218
3310
  }
3219
- .slider-thumb:focus-visible {
3311
+ .chip.is-selectable:focus-visible {
3220
3312
  outline-color: var(--primary-600);
3221
3313
  outline-offset: 2px;
3222
3314
  }
3223
3315
  @media (hover: hover) {
3224
- .slider-thumb:hover {
3225
- background-color: var(--surface-hover);
3316
+ .chip.is-selectable:hover {
3317
+ background: var(--gray-100);
3226
3318
  }
3227
3319
  }
3228
- .slider-thumb.is-disabled {
3229
- background-color: var(--surface-disabled);
3230
- box-shadow: none;
3231
- pointer-events: none;
3320
+ .chip.is-selected {
3321
+ background: var(--primary-50);
3322
+ border-color: var(--primary-200);
3323
+ color: var(--primary-600);
3232
3324
  }
3233
- .slider-thumb.is-dragging {
3234
- box-shadow: var(--shadow-md);
3235
- cursor: grabbing;
3325
+ @media (hover: hover) {
3326
+ .chip.is-selected:hover {
3327
+ background: var(--primary-100);
3328
+ }
3236
3329
  }
3237
-
3238
- .slider-track {
3239
- position: relative;
3240
- height: 12px;
3241
- background: var(--gray-50);
3242
- background-clip: padding-box;
3243
- border-radius: var(--radius-half);
3244
- box-shadow: inset 0 0 0 1px var(--surface-stroke-out);
3330
+ .chip :is(span) {
3331
+ font-size: 14px;
3332
+ font-weight: 500;
3333
+ white-space: nowrap;
3334
+ }.command-palette-backdrop {
3335
+ position: fixed;
3336
+ inset: 0;
3337
+ background: var(--overlay);
3338
+ backdrop-filter: blur(3px) saturate(180%);
3339
+ animation: command-palette-backdrop-in 300ms var(--swift-out) both;
3340
+ z-index: 99000;
3245
3341
  }
3246
-
3247
- .slider-track-value {
3248
- position: absolute;
3249
- display: block;
3250
- top: 0;
3251
- height: inherit;
3252
- background: var(--primary-600);
3253
- border-radius: inherit;
3342
+ .command-palette-backdrop.is-closing {
3343
+ animation: command-palette-backdrop-out 210ms var(--swift-out) both;
3254
3344
  }
3255
3345
 
3256
- .slider.is-disabled .slider-track-value {
3257
- background: var(--gray-300);
3346
+ .command-palette-dialog {
3347
+ position: fixed;
3348
+ inset: 0;
3349
+ display: flex;
3350
+ padding-top: clamp(60px, 15vh, 160px);
3351
+ align-items: flex-start;
3352
+ justify-content: center;
3353
+ animation: command-palette-in 300ms var(--swift-out) both;
3354
+ z-index: 99001;
3258
3355
  }
3259
-
3260
- .tick {
3261
- position: absolute;
3262
- left: calc(var(--position) * 100% - 1px);
3263
- bottom: 0;
3264
- height: 9px;
3265
- width: 2px;
3266
- background: var(--gray-300);
3267
- border-radius: var(--radius-full);
3268
- color: var(--foreground-prominent);
3269
- font-size: 10px;
3270
- font-weight: 600;
3356
+ .command-palette-dialog.is-closing {
3357
+ animation: command-palette-out 210ms var(--swift-out) both;
3271
3358
  pointer-events: none;
3272
3359
  }
3273
3360
 
3274
- .tick-large {
3275
- }
3276
- .tick-large :is(span) {
3277
- position: relative;
3278
- display: inline-block;
3279
- translate: -50% -100%;
3280
- }
3281
-
3282
- .tick-small {
3283
- height: 6px;
3284
- opacity: 0.5;
3361
+ .command-palette {
3362
+ display: flex;
3363
+ overflow: hidden;
3364
+ width: min(600px, 100dvw - 48px);
3365
+ max-height: min(480px, 100dvh - 120px - clamp(60px, 15vh, 160px));
3366
+ flex-flow: column nowrap;
3367
+ background: var(--surface);
3368
+ background-clip: padding-box;
3369
+ border: 1px solid var(--surface-stroke-out);
3370
+ border-radius: var(--radius);
3371
+ box-shadow: var(--shadow-lg);
3372
+ transition: height 120ms var(--deceleration-curve);
3285
3373
  }
3286
3374
 
3287
- .ticks {
3288
- position: relative;
3289
- display: block;
3290
- height: 21px;
3291
- }.tree-node {
3375
+ .command-palette-search {
3292
3376
  display: flex;
3293
- width: 100%;
3294
- min-height: 36px;
3295
- padding: 0 8px;
3377
+ height: 54px;
3378
+ padding: 0 18px;
3296
3379
  align-items: center;
3297
- border-radius: var(--radius-half);
3298
- color: var(--foreground);
3299
- font-size: 14px;
3300
- gap: 8px;
3301
- outline: 0;
3302
- transition: 150ms var(--swift-out);
3303
- transition-property: background, color;
3304
- user-select: none;
3305
- }
3306
-
3307
- .tree-node-line-area {
3308
- display: flex;
3309
- align-self: stretch;
3310
3380
  flex-shrink: 0;
3381
+ gap: 12px;
3382
+ border-bottom: 1px solid var(--gray-100);
3311
3383
  }
3312
3384
 
3313
- .tree-indent {
3314
- position: relative;
3315
- width: 20px;
3316
- align-self: stretch;
3385
+ .command-palette-search-icon {
3317
3386
  flex-shrink: 0;
3318
- pointer-events: none;
3319
- }
3320
- .tree-indent.has-line::before {
3321
- content: "";
3322
- position: absolute;
3323
- top: 0;
3324
- bottom: 0;
3325
- left: 9px;
3326
- width: 1px;
3327
- background: var(--surface-stroke);
3387
+ color: var(--foreground-secondary);
3388
+ font-size: 16px;
3328
3389
  }
3329
3390
 
3330
- .tree-connector {
3331
- position: relative;
3332
- width: 20px;
3333
- align-self: stretch;
3334
- flex-shrink: 0;
3335
- pointer-events: none;
3336
- }
3337
- .tree-connector:not(.is-last)::before {
3338
- content: "";
3339
- position: absolute;
3340
- top: 0;
3341
- bottom: 0;
3342
- left: 9px;
3343
- width: 1px;
3344
- background: var(--surface-stroke);
3391
+ .command-palette-search-input {
3392
+ height: 100%;
3393
+ flex-grow: 1;
3394
+ background: transparent;
3395
+ border: 0;
3396
+ color: var(--foreground);
3397
+ font: inherit;
3398
+ font-size: 16px;
3399
+ outline: 0;
3345
3400
  }
3346
- .tree-connector::after {
3347
- content: "";
3348
- position: absolute;
3349
- top: 0;
3350
- bottom: 50%;
3351
- left: 9px;
3352
- right: 0;
3353
- border-left: 1px solid var(--surface-stroke);
3354
- border-bottom: 1px solid var(--surface-stroke);
3355
- border-bottom-left-radius: 6px;
3401
+ .command-palette-search-input::placeholder {
3402
+ color: var(--foreground-secondary);
3356
3403
  }
3357
3404
 
3358
- .tree-node-expand {
3359
- display: flex;
3360
- width: 16px;
3405
+ .command-palette-breadcrumb {
3406
+ padding: 0;
3361
3407
  flex-shrink: 0;
3362
- align-items: center;
3363
- justify-content: center;
3408
+ background: transparent;
3409
+ border: 0;
3410
+ cursor: pointer;
3364
3411
  color: var(--foreground-secondary);
3412
+ font: inherit;
3413
+ font-size: 15px;
3414
+ font-weight: 500;
3415
+ white-space: nowrap;
3416
+ transition: color 150ms;
3365
3417
  }
3366
- .tree-node-expand:not(:empty) {
3367
- cursor: pointer;
3418
+ @media (hover: hover) {
3419
+ .command-palette-breadcrumb:hover {
3420
+ color: var(--foreground);
3421
+ }
3368
3422
  }
3369
3423
 
3370
- .tree-node-color-dot {
3371
- display: block;
3372
- width: 8px;
3373
- height: 8px;
3374
- border-radius: 50%;
3424
+ .command-palette-breadcrumb-separator {
3375
3425
  flex-shrink: 0;
3376
- }
3377
-
3378
- .tree-node-icon {
3426
+ opacity: 0.5;
3379
3427
  color: var(--foreground-secondary);
3380
- flex-shrink: 0;
3428
+ font-size: 14px;
3381
3429
  }
3382
3430
 
3383
- .tree-node-label {
3384
- flex: 1;
3385
- overflow: hidden;
3386
- text-overflow: ellipsis;
3387
- white-space: nowrap;
3388
- }.divider {
3389
- position: relative;
3390
- display: grid;
3391
- contain: paint;
3392
- margin-top: 18px;
3393
- margin-bottom: 18px;
3394
- align-items: center;
3431
+ .command-palette-tabs {
3432
+ display: flex;
3433
+ overflow-x: auto;
3434
+ scrollbar-width: none;
3435
+ padding: 6px 15px;
3395
3436
  flex-shrink: 0;
3437
+ gap: 3px;
3438
+ border-bottom: 1px solid var(--gray-100);
3396
3439
  }
3397
-
3398
- .divider-content-start {
3399
- justify-items: start;
3400
- }
3401
-
3402
- .divider-content-center {
3403
- justify-items: center;
3404
- }
3405
-
3406
- .divider-content-end {
3407
- justify-items: end;
3440
+ .command-palette-tabs::-webkit-scrollbar {
3441
+ display: none;
3408
3442
  }
3409
3443
 
3410
- .divider-content {
3411
- position: relative;
3444
+ .command-palette-tab {
3412
3445
  display: flex;
3446
+ height: 30px;
3447
+ padding: 0 10px;
3448
+ align-items: center;
3449
+ gap: 6px;
3450
+ background: transparent;
3451
+ border: 0;
3452
+ border-radius: var(--radius-half);
3453
+ cursor: pointer;
3454
+ color: var(--foreground-secondary);
3455
+ font: inherit;
3456
+ font-size: 13px;
3457
+ font-weight: 500;
3458
+ white-space: nowrap;
3459
+ transition: background 150ms, color 150ms;
3413
3460
  }
3414
- .divider-content::before, .divider-content::after {
3415
- position: absolute;
3416
- display: block;
3417
- top: 50%;
3418
- translate: 0 -50%;
3419
- }
3420
- .divider-content::before {
3421
- left: -100dvh;
3422
- right: calc(100% + 15px);
3423
- }
3424
- .divider-content::after {
3425
- left: calc(100% + 15px);
3426
- right: -100dvh;
3461
+ @media (hover: hover) {
3462
+ .command-palette-tab:hover {
3463
+ background: var(--gray-100);
3464
+ color: var(--foreground);
3465
+ }
3427
3466
  }
3428
3467
 
3429
- .divider-line {
3430
- width: 100%;
3431
- border: 0;
3468
+ .command-palette-tab-active {
3469
+ background: var(--primary-100);
3470
+ color: var(--primary-700);
3432
3471
  }
3433
-
3434
- .divider-content::before,
3435
- .divider-content::after,
3436
- .divider-line {
3437
- height: 1px;
3438
- content: "";
3439
- background: var(--gray-100);
3472
+ @media (hover: hover) {
3473
+ .command-palette-tab-active:hover {
3474
+ background: var(--primary-100);
3475
+ color: var(--primary-700);
3476
+ }
3440
3477
  }
3441
3478
 
3442
- .separator {
3443
- background: var(--gray-200);
3479
+ .command-palette-tab-icon {
3480
+ font-size: 13px;
3444
3481
  }
3445
3482
 
3446
- .separator-horizontal {
3447
- height: 1px;
3483
+ .command-palette-results {
3484
+ overflow-y: auto;
3485
+ overscroll-behavior: contain;
3486
+ scroll-padding-block: 42px 6px;
3487
+ scrollbar-width: thin;
3488
+ padding: 6px;
3489
+ flex-grow: 1;
3448
3490
  }
3449
3491
 
3450
- .separator-vertical {
3451
- width: 1px;
3452
- }.calendar {
3492
+ .command-palette-loading {
3453
3493
  display: flex;
3454
- flex-flow: column;
3455
- box-shadow: var(--shadow-sm);
3456
- contain: paint;
3494
+ padding: 24px;
3495
+ align-items: center;
3496
+ justify-content: center;
3457
3497
  }
3458
3498
 
3459
- .calendar-actions {
3499
+ .command-palette-empty {
3500
+ display: flex;
3501
+ padding: 24px;
3460
3502
  align-items: center;
3503
+ justify-content: center;
3504
+ color: var(--foreground-secondary);
3505
+ font-size: 14px;
3461
3506
  }
3462
3507
 
3463
- .calendar-loader {
3508
+ .command-palette-group {
3509
+ display: flex;
3510
+ padding: 9px 10px 3px;
3511
+ align-items: center;
3512
+ gap: 6px;
3513
+ color: var(--foreground-secondary);
3514
+ font-size: 12px;
3515
+ font-weight: 600;
3516
+ text-transform: uppercase;
3517
+ letter-spacing: 0.05em;
3518
+ pointer-events: none;
3464
3519
  }
3465
3520
 
3466
- .calendar-current {
3467
- display: flex;
3468
- gap: 9px;
3521
+ .command-palette-group-icon {
3522
+ font-size: 12px;
3469
3523
  }
3470
3524
 
3471
- .calendar-current-value {
3472
- padding: 0;
3473
- background: none;
3525
+ .command-palette-item {
3526
+ display: flex;
3527
+ width: 100%;
3528
+ padding: 8px 10px;
3529
+ align-items: center;
3530
+ gap: 10px;
3531
+ background: transparent;
3474
3532
  border: 0;
3533
+ border-radius: var(--radius-half);
3475
3534
  cursor: pointer;
3476
- font-size: 30px;
3477
- letter-spacing: -0.05em;
3478
- line-height: 1.5em;
3479
- text-transform: capitalize;
3535
+ color: var(--foreground);
3536
+ font: inherit;
3537
+ font-size: 14px;
3538
+ text-align: left;
3539
+ transition: background 100ms;
3480
3540
  }
3481
3541
  @media (hover: hover) {
3482
- .calendar-current-value:hover {
3483
- color: var(--primary-600);
3542
+ .command-palette-item:hover {
3543
+ background: var(--gray-100);
3484
3544
  }
3485
3545
  }
3546
+ .command-palette-item:active {
3547
+ background: var(--gray-200);
3548
+ }
3486
3549
 
3487
- .calendar-current-month {
3488
- color: var(--foreground-prominent);
3489
- font-weight: 700;
3550
+ .command-palette-item-highlighted {
3551
+ background: var(--gray-100);
3552
+ }
3553
+ @media (hover: hover) {
3554
+ .command-palette-item-highlighted:hover {
3555
+ background: var(--gray-100);
3556
+ }
3490
3557
  }
3491
3558
 
3492
- .calendar-current-year {
3559
+ .command-palette-item-icon {
3560
+ display: flex;
3561
+ width: 30px;
3562
+ height: 30px;
3563
+ align-items: center;
3564
+ align-self: flex-start;
3565
+ flex-shrink: 0;
3566
+ justify-content: center;
3567
+ background: var(--gray-100);
3568
+ border-radius: var(--radius-half);
3493
3569
  color: var(--foreground);
3570
+ transition: background 100ms, color 100ms;
3571
+ }
3572
+ .command-palette-item-icon .icon {
3573
+ font-size: 16px;
3494
3574
  }
3495
3575
 
3496
- .calendar-cells {
3497
- display: grid;
3576
+ .command-palette-item-highlighted .command-palette-item-icon {
3577
+ background: var(--gray-200);
3578
+ }
3579
+
3580
+ .command-palette-item-content {
3581
+ overflow: hidden;
3498
3582
  flex-grow: 1;
3499
- gap: 1px;
3500
- grid-template-columns: repeat(7, 1fr);
3501
- grid-template-rows: min-content repeat(6, auto);
3502
- background: var(--gray-100);
3503
3583
  }
3504
3584
 
3505
- .calendar-cell {
3506
- padding: 12px 18px;
3507
- background: var(--gray-25);
3585
+ .command-palette-item-label {
3586
+ overflow: hidden;
3587
+ white-space: nowrap;
3588
+ text-overflow: ellipsis;
3508
3589
  }
3509
3590
 
3510
- .calendar-day {
3511
- padding-left: 0;
3512
- padding-right: 0;
3591
+ .command-palette-item-sub-label {
3592
+ overflow: hidden;
3593
+ margin-top: 1px;
3513
3594
  color: var(--foreground-secondary);
3514
3595
  font-size: 12px;
3515
- font-weight: 400;
3516
- line-height: 1em;
3517
- text-align: center;
3518
- text-transform: capitalize;
3596
+ white-space: nowrap;
3597
+ text-overflow: ellipsis;
3598
+ transition: color 100ms;
3519
3599
  }
3520
3600
 
3521
- .calendar-entry {
3522
- position: relative;
3523
- min-height: 105px;
3524
- padding-bottom: 39px;
3601
+ .command-palette-item-highlighted .command-palette-item-sub-label {
3602
+ color: var(--primary-500);
3525
3603
  }
3526
- .calendar-entry.is-disabled {
3527
- background: var(--gray-50);
3604
+
3605
+ .command-palette-item-sub-action-indicator {
3606
+ flex-shrink: 0;
3528
3607
  color: var(--foreground-secondary);
3529
- pointer-events: none;
3530
- }
3531
- .calendar-entry.is-disabled .calendar-entry-date {
3532
- opacity: 0.25;
3533
- }
3534
- .calendar-entry.is-disabled .calendar-events {
3535
- opacity: 0.75;
3536
- pointer-events: none;
3608
+ font-size: 12px;
3609
+ transition: color 100ms;
3537
3610
  }
3538
3611
 
3539
- .calendar-entry-date {
3540
- position: absolute;
3541
- right: 18px;
3542
- bottom: 15px;
3543
- color: var(--foreground);
3544
- font-size: 15px;
3545
- font-weight: 700;
3546
- line-height: 1em;
3612
+ .command-palette-item-highlighted .command-palette-item-sub-action-indicator {
3613
+ color: var(--primary-500);
3547
3614
  }
3548
3615
 
3549
- .calendar-events {
3616
+ @keyframes command-palette-in {
3617
+ from {
3618
+ opacity: 0;
3619
+ scale: 1.05;
3620
+ }
3621
+ to {
3622
+ opacity: 1;
3623
+ scale: 1;
3624
+ }
3625
+ }
3626
+ @keyframes command-palette-out {
3627
+ from {
3628
+ opacity: 1;
3629
+ }
3630
+ to {
3631
+ opacity: 0;
3632
+ }
3633
+ }
3634
+ @keyframes command-palette-backdrop-in {
3635
+ from {
3636
+ opacity: 0;
3637
+ }
3638
+ to {
3639
+ opacity: 1;
3640
+ }
3641
+ }
3642
+ @keyframes command-palette-backdrop-out {
3643
+ from {
3644
+ opacity: 1;
3645
+ }
3646
+ to {
3647
+ opacity: 0;
3648
+ }
3649
+ }.comment {
3550
3650
  display: grid;
3551
- grid-auto-rows: 1fr;
3552
- gap: 3px;
3651
+ max-width: 100%;
3652
+ gap: 3px 15px;
3653
+ grid-template-columns: 1fr auto;
3654
+ grid-template-rows: repeat(2, auto);
3553
3655
  }
3554
-
3555
- .calendar-event {
3556
- margin-left: -9px;
3557
- margin-right: -9px;
3558
- padding: 6px 9px;
3559
- background: var(--primary-100);
3560
- border: 0;
3561
- color: var(--primary-800);
3562
- cursor: pointer;
3563
- font-size: 14px;
3564
- line-height: 1.3em;
3565
- text-align: left;
3566
- /** note: This works in all browsers. */
3567
- display: -webkit-box;
3568
- overflow: hidden;
3569
- -webkit-line-clamp: 2;
3570
- -webkit-box-orient: vertical;
3656
+ .comment .avatar {
3657
+ align-self: end;
3658
+ grid-column: 2;
3659
+ grid-row: 1;
3571
3660
  }
3572
- .calendar-event.is-single {
3573
- border-radius: var(--radius-half);
3661
+ .comment .comment-content {
3662
+ grid-column: 1;
3663
+ grid-row: 1;
3574
3664
  }
3575
- .calendar-event.is-middle {
3576
- margin-left: -22px;
3577
- margin-right: -22px;
3665
+ .comment .comment-footer {
3666
+ grid-column: 1;
3667
+ grid-row: 2;
3578
3668
  }
3579
- .calendar-event.is-start {
3580
- margin-right: -18px;
3581
- border-top-left-radius: var(--radius-half);
3582
- border-bottom-left-radius: var(--radius-half);
3669
+ .comment.is-received {
3670
+ grid-template-columns: auto 1fr;
3583
3671
  }
3584
- .calendar-event.is-end {
3585
- margin-left: -18px;
3586
- border-top-right-radius: var(--radius-half);
3587
- border-bottom-right-radius: var(--radius-half);
3672
+ .comment.is-received .avatar {
3673
+ grid-column: 1;
3588
3674
  }
3589
- .calendar-event:not(.is-single):not(.is-start) span {
3590
- opacity: 0;
3675
+ .comment.is-received .comment-content {
3676
+ grid-column: 2;
3591
3677
  }
3592
- @media (hover: hover) {
3593
- .calendar-event:hover {
3594
- background: var(--primary-200);
3595
- }
3596
- }.date-picker {
3597
- display: flex;
3598
- max-height: 420px;
3599
- flex-flow: column;
3600
- border-radius: inherit;
3601
- overflow: auto;
3602
- user-select: none;
3603
- z-index: 0;
3678
+ .comment.is-received .comment-footer {
3679
+ grid-column: 2;
3604
3680
  }
3605
3681
 
3606
- .date-picker-dates,
3607
- .date-picker-months,
3608
- .date-picker-years,
3609
- .date-picker-header {
3610
- padding: 15px;
3682
+ .comment-content {
3683
+ min-width: 0;
3684
+ padding: 12px 18px;
3685
+ background: linear-gradient(to bottom, var(--gray-25), var(--gray-50));
3686
+ border: 1px solid var(--gray-200);
3687
+ border-radius: calc(var(--radius) * 2);
3688
+ box-shadow: var(--shadow-xs);
3611
3689
  }
3612
3690
 
3613
- .date-picker-header {
3614
- position: sticky;
3615
- display: flex;
3616
- top: 0;
3617
- align-items: center;
3618
- background: var(--gray-50);
3619
- border-bottom: 1px solid var(--surface-stroke);
3620
- z-index: 1;
3691
+ .comment:not(.is-received) .comment-content {
3692
+ border-bottom-right-radius: var(--radius);
3621
3693
  }
3622
3694
 
3623
- .date-picker-header-view {
3624
- display: flex;
3625
- height: 42px;
3626
- margin-left: auto;
3627
- margin-right: auto;
3628
- align-items: center;
3629
- gap: 9px;
3630
- font-size: 16px;
3631
- font-weight: 600;
3695
+ .comment.is-received .comment-content {
3696
+ background: linear-gradient(to bottom, var(--gray-50), var(--gray-100));
3697
+ border-color: var(--gray-200);
3698
+ border-bottom-left-radius: var(--radius);
3632
3699
  }
3633
3700
 
3634
- .date-picker-header-view-button {
3635
- padding: 0;
3636
- background: unset;
3637
- border: 0;
3638
- cursor: pointer;
3639
- text-transform: capitalize;
3701
+ .comment.is-typing .comment-content {
3702
+ width: min-content;
3640
3703
  }
3641
- .date-picker-header-view-button:first-child {
3642
- color: var(--foreground-prominent);
3704
+
3705
+ .comment-typing {
3706
+ display: block;
3707
+ margin: 6px;
3708
+ height: 6px;
3709
+ width: 6px;
3710
+ border-radius: 6px;
3711
+ animation: comment-typing 1s linear infinite both;
3643
3712
  }
3644
- .date-picker-header-view-button:last-child {
3713
+
3714
+ .comment-footer {
3715
+ display: flex;
3716
+ align-items: center;
3717
+ gap: 12px;
3718
+ justify-content: flex-end;
3719
+ font-size: 12px;
3720
+ font-weight: 500;
3721
+ }
3722
+ .comment-footer span {
3723
+ margin-right: auto;
3724
+ }
3725
+ .comment-footer time {
3645
3726
  color: var(--foreground-secondary);
3646
3727
  }
3647
- @media (hover: hover) {
3648
- .date-picker-header-view-button:hover {
3649
- color: var(--primary-600);
3650
- }
3728
+
3729
+ [dark] .comment-content {
3730
+ background: linear-gradient(to bottom, var(--gray-50), var(--gray-25));
3651
3731
  }
3652
3732
 
3653
- .date-picker-date {
3654
- display: flex;
3655
- padding: 0;
3656
- align-items: center;
3657
- justify-content: center;
3658
- aspect-ratio: 1;
3659
- background: unset;
3660
- border: 0;
3661
- border-radius: var(--radius);
3662
- color: var(--foreground-prominent);
3663
- cursor: pointer;
3664
- font-size: 14px;
3733
+ [dark] .comment.is-received .comment-content {
3734
+ background: linear-gradient(to bottom, var(--gray-100), var(--gray-50));
3735
+ }
3736
+
3737
+ @keyframes comment-typing {
3738
+ 0%, 80%, 100% {
3739
+ background: var(--gray-200);
3740
+ box-shadow: -9px 0 var(--gray-200), 9px 0 var(--gray-200);
3741
+ translate: 0 0;
3742
+ }
3743
+ 20% {
3744
+ background: var(--gray-200);
3745
+ box-shadow: -9px -4px var(--gray-300), 9px 0 var(--gray-200);
3746
+ translate: 0 0;
3747
+ }
3748
+ 40% {
3749
+ background: var(--gray-300);
3750
+ box-shadow: -9px 4px var(--gray-200), 9px 4px var(--gray-200);
3751
+ translate: 0 -4px;
3752
+ }
3753
+ 60% {
3754
+ background: var(--gray-200);
3755
+ box-shadow: -9px 0 var(--gray-200), 9px -4px var(--gray-300);
3756
+ translate: 0 0;
3757
+ }
3758
+ }.slider {
3759
+ position: relative;
3760
+ display: flex;
3761
+ margin: 6px;
3762
+ flex-flow: column;
3763
+ gap: 9px;
3764
+ touch-action: pan-y;
3765
+ }
3766
+ .slider.is-disabled {
3767
+ cursor: not-allowed;
3768
+ }
3769
+ .slider.is-dragging {
3770
+ cursor: grabbing;
3771
+ }
3772
+
3773
+ .slider-thumb {
3774
+ position: absolute;
3775
+ top: 50%;
3776
+ height: 24px;
3777
+ width: 24px;
3778
+ padding: 0;
3779
+ background: var(--surface);
3780
+ background-clip: padding-box;
3781
+ border: 1px solid var(--surface-stroke-out);
3782
+ border-radius: var(--radius-full);
3783
+ box-shadow: var(--shadow-sm);
3784
+ cursor: grab;
3665
3785
  outline: 0;
3786
+ translate: -50% -50%;
3666
3787
  transition: var(--transition-default);
3667
- transition-property: background, border-radius, color, opacity;
3788
+ transition-property: outline-color, outline-offset;
3789
+ outline: 2px solid rgb(from var(--primary-600) r g b/0);
3790
+ outline-offset: 0;
3791
+ }
3792
+ .slider-thumb:focus-visible {
3793
+ outline-color: var(--primary-600);
3794
+ outline-offset: 2px;
3668
3795
  }
3669
3796
  @media (hover: hover) {
3670
- .date-picker-date:hover {
3671
- background: var(--gray-100);
3672
- color: var(--foreground-prominent);
3797
+ .slider-thumb:hover {
3798
+ background-color: var(--surface-hover);
3673
3799
  }
3674
3800
  }
3675
- .date-picker-date.is-disabled:not(.is-range-entry, .is-range-end, .is-range-start, .is-selection-entry, .is-selection-end, .is-selection-start) {
3676
- opacity: 0.25;
3801
+ .slider-thumb.is-disabled {
3802
+ background-color: var(--surface-disabled);
3803
+ box-shadow: none;
3677
3804
  pointer-events: none;
3678
3805
  }
3679
- .date-picker-date:not(.is-disabled) {
3680
- font-weight: 500;
3681
- }
3682
- .date-picker-date.is-selected {
3683
- background: var(--primary-600);
3684
- color: var(--primary-50);
3685
- font-weight: 700;
3806
+ .slider-thumb.is-dragging {
3807
+ box-shadow: var(--shadow-md);
3808
+ cursor: grabbing;
3686
3809
  }
3687
- .date-picker-date.is-range-entry {
3688
- background: var(--primary-200);
3689
- border-radius: 0;
3690
- color: var(--primary-950);
3810
+
3811
+ .slider-track {
3812
+ position: relative;
3813
+ height: 12px;
3814
+ background: var(--gray-50);
3815
+ background-clip: padding-box;
3816
+ border-radius: var(--radius-half);
3817
+ box-shadow: inset 0 0 0 1px var(--surface-stroke-out);
3691
3818
  }
3692
- .date-picker-date.is-range-end, .date-picker-date.is-range-start {
3819
+
3820
+ .slider-track-value {
3821
+ position: absolute;
3822
+ display: block;
3823
+ top: 0;
3824
+ height: inherit;
3693
3825
  background: var(--primary-600);
3694
- color: var(--primary-50);
3695
- font-weight: 700;
3696
- }
3697
- .date-picker-date.is-range-entry:nth-child(7n+8), .date-picker-date.is-range-start {
3698
- border-top-left-radius: var(--radius);
3699
- border-bottom-left-radius: var(--radius);
3826
+ border-radius: inherit;
3700
3827
  }
3701
- .date-picker-date.is-range-entry:nth-child(7n), .date-picker-date.is-range-end {
3702
- border-top-right-radius: var(--radius);
3703
- border-bottom-right-radius: var(--radius);
3828
+
3829
+ .slider.is-disabled .slider-track-value {
3830
+ background: var(--gray-300);
3704
3831
  }
3705
- .date-picker-date.is-selection-entry {
3706
- background: var(--gray-100);
3707
- border-radius: 0;
3832
+
3833
+ .tick {
3834
+ position: absolute;
3835
+ left: calc(var(--position) * 100% - 1px);
3836
+ bottom: 0;
3837
+ height: 9px;
3838
+ width: 2px;
3839
+ background: var(--gray-300);
3840
+ border-radius: var(--radius-full);
3708
3841
  color: var(--foreground-prominent);
3842
+ font-size: 10px;
3843
+ font-weight: 600;
3844
+ pointer-events: none;
3709
3845
  }
3710
- .date-picker-date.is-selection-end, .date-picker-date.is-selection-start {
3711
- background: var(--gray-200);
3712
- font-weight: 700;
3846
+
3847
+ .tick-large {
3713
3848
  }
3714
- .date-picker-date.is-selection-entry:nth-child(7n+8), .date-picker-date.is-selection-start {
3715
- border-top-left-radius: var(--radius);
3716
- border-bottom-left-radius: var(--radius);
3849
+ .tick-large :is(span) {
3850
+ position: relative;
3851
+ display: inline-block;
3852
+ translate: -50% -100%;
3717
3853
  }
3718
- .date-picker-date.is-selection-entry:nth-child(7n), .date-picker-date.is-selection-end {
3719
- border-top-right-radius: var(--radius);
3720
- border-bottom-right-radius: var(--radius);
3854
+
3855
+ .tick-small {
3856
+ height: 6px;
3857
+ opacity: 0.5;
3721
3858
  }
3722
3859
 
3723
- .date-picker-dates {
3860
+ .ticks {
3861
+ position: relative;
3862
+ display: block;
3863
+ height: 21px;
3864
+ }.coordinate-picker {
3724
3865
  position: relative;
3866
+ aspect-ratio: 5/3;
3867
+ background: var(--gray-50);
3868
+ border: 1px solid var(--surface-stroke-out);
3869
+ border-radius: var(--radius-half);
3870
+ z-index: 0;
3725
3871
  }
3726
3872
 
3727
- .date-picker-dates-grid {
3728
- display: grid;
3729
- gap: 3px 0;
3730
- grid-template-columns: repeat(7, 1fr);
3873
+ .coordinate-picker-thumb {
3874
+ z-index: 1;
3731
3875
  }
3732
-
3733
- .date-picker-day {
3734
- margin-bottom: 6px;
3735
- color: var(--foreground-secondary);
3736
- font-size: 12px;
3737
- font-weight: 500;
3738
- text-align: center;
3739
- text-transform: uppercase;
3876
+ .coordinate-picker-thumb.is-disabled {
3877
+ counter-reset: t;
3740
3878
  }
3741
-
3742
- .date-picker-months,
3743
- .date-picker-years {
3744
- display: grid;
3745
- margin-left: auto;
3746
- margin-right: auto;
3747
- max-width: 300px;
3748
- width: 100%;
3749
- gap: 9px;
3750
- grid-template-columns: repeat(3, 1fr);
3879
+ .coordinate-picker-thumb.is-dragging {
3880
+ counter-reset: t;
3881
+ }.filter {
3882
+ max-height: 50dvh;
3883
+ max-width: 100%;
3884
+ padding: 9px;
3885
+ width: 270px;
3886
+ overflow: auto;
3887
+ scrollbar-width: none;
3888
+ transition: height 150ms var(--deceleration-curve);
3889
+ z-index: 0;
3751
3890
  }
3752
- .date-picker-months .button,
3753
- .date-picker-years .button {
3754
- contain: size layout;
3755
- contain-intrinsic-size: 0 42px;
3756
- content-visibility: auto;
3757
- text-transform: capitalize;
3758
- }.chip {
3759
- display: flex;
3760
- height: 36px;
3761
- padding: 0 12px;
3762
- align-items: center;
3763
- flex-grow: 0;
3764
- gap: 9px;
3765
- background: var(--gray-50);
3766
- border: 1px solid var(--gray-200);
3767
- border-radius: var(--radius-full);
3768
- color: var(--foreground);
3769
- transition: var(--transition-default);
3770
- transition-property: background, border, color, outline-color, outline-offset;
3891
+ .filter::-webkit-scrollbar {
3892
+ display: none;
3893
+ height: 0;
3894
+ width: 0;
3771
3895
  }
3772
- .chip.is-selectable {
3773
- cursor: pointer;
3774
- outline: 2px solid rgb(from var(--primary-600) r g b/0);
3775
- outline-offset: 0;
3896
+ .filter .menu > :where(.divider, .separator) {
3897
+ margin: 3px -9px;
3776
3898
  }
3777
- .chip.is-selectable:focus-visible {
3778
- outline-color: var(--primary-600);
3779
- outline-offset: 2px;
3899
+ .filter .menu > .menu-group > .menu-sub-header {
3900
+ top: 51px;
3780
3901
  }
3781
- @media (hover: hover) {
3782
- .chip.is-selectable:hover {
3783
- background: var(--gray-100);
3784
- }
3902
+ .filter .menu > .menu-group:has(.filter-search) > .menu-sub-header {
3903
+ top: 105px;
3785
3904
  }
3786
- .chip.is-selected {
3787
- background: var(--primary-50);
3788
- border-color: var(--primary-200);
3789
- color: var(--primary-600);
3905
+ .filter .menu .menu-item-label {
3906
+ min-width: 0;
3907
+ overflow: hidden;
3908
+ text-overflow: ellipsis;
3909
+ white-space: nowrap;
3790
3910
  }
3791
- @media (hover: hover) {
3792
- .chip.is-selected:hover {
3793
- background: var(--primary-100);
3794
- }
3911
+ .filter .pane-body {
3912
+ margin: -9px;
3795
3913
  }
3796
- .chip :is(span) {
3797
- font-size: 14px;
3914
+
3915
+ .filter-badge {
3916
+ padding-left: 6px;
3917
+ padding-right: 6px;
3918
+ background: var(--primary-50);
3919
+ border: 1px dashed var(--primary-300);
3798
3920
  font-weight: 500;
3799
- white-space: nowrap;
3800
- }.command-palette-backdrop {
3801
- position: fixed;
3802
- inset: 0;
3803
- background: var(--overlay);
3804
- backdrop-filter: blur(3px) saturate(180%);
3805
- animation: command-palette-backdrop-in 300ms var(--swift-out) both;
3806
- z-index: 99000;
3807
3921
  }
3808
- .command-palette-backdrop.is-closing {
3809
- animation: command-palette-backdrop-out 210ms var(--swift-out) both;
3922
+ .filter-badge .badge-label {
3923
+ color: var(--primary-900);
3810
3924
  }
3811
3925
 
3812
- .command-palette-dialog {
3813
- position: fixed;
3814
- inset: 0;
3815
- display: flex;
3816
- padding-top: clamp(60px, 15vh, 160px);
3817
- align-items: flex-start;
3926
+ .filter-button {
3927
+ border: 1px solid var(--surface-stroke);
3928
+ box-shadow: none;
3929
+ }
3930
+ .filter-button .badge {
3931
+ border-radius: var(--radius-half);
3932
+ }
3933
+ .filter-button .button-icon {
3934
+ color: var(--primary-700);
3935
+ font-size: 16px;
3936
+ }
3937
+
3938
+ .filter-header {
3939
+ position: sticky;
3940
+ margin: -9px -9px 3px;
3941
+ padding: 9px;
3942
+ top: -9px;
3943
+ background: var(--surface);
3944
+ border-bottom: 1px solid var(--surface-stroke);
3945
+ z-index: 2;
3946
+ }
3947
+ .filter-header:first-child {
3948
+ border-top-left-radius: var(--radius);
3949
+ border-top-right-radius: var(--radius);
3950
+ }
3951
+
3952
+ .filter-back {
3953
+ flex-grow: 1;
3954
+ }
3955
+
3956
+ .filter-reset {
3957
+ width: 42px;
3818
3958
  justify-content: center;
3819
- animation: command-palette-in 300ms var(--swift-out) both;
3820
- z-index: 99001;
3821
3959
  }
3822
- .command-palette-dialog.is-closing {
3823
- animation: command-palette-out 210ms var(--swift-out) both;
3824
- pointer-events: none;
3960
+
3961
+ .filter-date-picker {
3962
+ margin: -9px;
3825
3963
  }
3826
3964
 
3827
- .command-palette {
3965
+ .filter-search {
3966
+ position: sticky;
3967
+ margin: -9px -9px 0;
3968
+ padding: 9px;
3969
+ background: linear-gradient(to bottom, var(--surface) 75%, transparent);
3970
+ z-index: 1;
3971
+ }
3972
+
3973
+ .filter-header + .menu-group .filter-search {
3974
+ top: 52px;
3975
+ }
3976
+
3977
+ .filter-bar {
3828
3978
  display: flex;
3829
- overflow: hidden;
3830
- width: min(600px, 100dvw - 48px);
3831
- max-height: min(480px, 100dvh - 120px - clamp(60px, 15vh, 160px));
3832
- flex-flow: column nowrap;
3833
- background: var(--surface);
3834
- background-clip: padding-box;
3835
- border: 1px solid var(--surface-stroke-out);
3836
- border-radius: var(--radius);
3837
- box-shadow: var(--shadow-lg);
3838
- transition: height 120ms var(--deceleration-curve);
3979
+ flex-flow: row nowrap;
3980
+ flex-grow: 1;
3981
+ gap: 15px;
3839
3982
  }
3840
3983
 
3841
- .command-palette-search {
3984
+ .filter-bar-search {
3985
+ max-width: 300px;
3986
+ }.menu {
3842
3987
  display: flex;
3843
- height: 54px;
3844
- padding: 0 18px;
3845
- align-items: center;
3846
- flex-shrink: 0;
3847
- gap: 12px;
3848
- border-bottom: 1px solid var(--gray-100);
3988
+ flex-flow: column;
3849
3989
  }
3850
3990
 
3851
- .command-palette-search-icon {
3852
- flex-shrink: 0;
3853
- color: var(--foreground-secondary);
3854
- font-size: 16px;
3991
+ .menu-normal {
3992
+ gap: 6px;
3855
3993
  }
3856
3994
 
3857
- .command-palette-search-input {
3858
- height: 100%;
3859
- flex-grow: 1;
3860
- background: transparent;
3861
- border: 0;
3862
- color: var(--foreground);
3863
- font: inherit;
3864
- font-size: 16px;
3865
- outline: 0;
3995
+ .menu-large {
3996
+ gap: 9px;
3866
3997
  }
3867
- .command-palette-search-input::placeholder {
3868
- color: var(--foreground-secondary);
3998
+
3999
+ .menu-group {
4000
+ counter-reset: menu-group;
3869
4001
  }
3870
4002
 
3871
- .command-palette-breadcrumb {
3872
- padding: 0;
3873
- flex-shrink: 0;
3874
- background: transparent;
3875
- border: 0;
3876
- cursor: pointer;
3877
- color: var(--foreground-secondary);
3878
- font: inherit;
3879
- font-size: 15px;
3880
- font-weight: 500;
3881
- white-space: nowrap;
3882
- transition: color 150ms;
4003
+ .menu-group-horizontal {
4004
+ display: flex;
4005
+ gap: 3px;
4006
+ }
4007
+
4008
+ .menu-group-vertical {
4009
+ display: flex;
4010
+ flex-flow: column;
4011
+ gap: 1px;
4012
+ }
4013
+
4014
+ .menu-item {
4015
+ height: unset;
4016
+ min-height: 42px;
4017
+ gap: 15px;
4018
+ justify-content: flex-start;
4019
+ border: 0;
4020
+ box-shadow: none;
4021
+ color: var(--foreground);
4022
+ text-align: left;
3883
4023
  }
3884
4024
  @media (hover: hover) {
3885
- .command-palette-breadcrumb:hover {
3886
- color: var(--foreground);
4025
+ .menu-item:hover {
4026
+ background: var(--gray-100);
3887
4027
  }
3888
4028
  }
4029
+ .menu-item:active {
4030
+ background: var(--gray-200);
4031
+ }
4032
+ .menu-item .badge:last-child {
4033
+ margin-right: -6px;
4034
+ }
3889
4035
 
3890
- .command-palette-breadcrumb-separator {
3891
- flex-shrink: 0;
3892
- opacity: 0.5;
3893
- color: var(--foreground-secondary);
3894
- font-size: 14px;
4036
+ .menu-item-icon {
3895
4037
  }
3896
4038
 
3897
- .command-palette-tabs {
3898
- display: flex;
3899
- overflow-x: auto;
3900
- scrollbar-width: none;
3901
- padding: 6px 15px;
3902
- flex-shrink: 0;
3903
- gap: 3px;
3904
- border-bottom: 1px solid var(--gray-100);
4039
+ .menu-item-label {
4040
+ flex-grow: 1;
4041
+ font-weight: 400;
4042
+ text-align: left;
3905
4043
  }
3906
- .command-palette-tabs::-webkit-scrollbar {
3907
- display: none;
4044
+ .menu-item-label:only-child {
4045
+ margin-left: 0;
4046
+ margin-right: 0;
4047
+ min-width: unset;
3908
4048
  }
3909
4049
 
3910
- .command-palette-tab {
3911
- display: flex;
3912
- height: 30px;
3913
- padding: 0 10px;
3914
- align-items: center;
3915
- gap: 6px;
3916
- background: transparent;
3917
- border: 0;
3918
- border-radius: var(--radius-half);
3919
- cursor: pointer;
3920
- color: var(--foreground-secondary);
3921
- font: inherit;
3922
- font-size: 13px;
3923
- font-weight: 500;
3924
- white-space: nowrap;
3925
- transition: background 150ms, color 150ms;
4050
+ .menu-item-active {
4051
+ background: var(--primary-600);
4052
+ color: var(--primary-50);
4053
+ }
4054
+ .menu-item-active .menu-item-icon {
4055
+ color: var(--primary-25);
3926
4056
  }
3927
4057
  @media (hover: hover) {
3928
- .command-palette-tab:hover {
3929
- background: var(--gray-100);
3930
- color: var(--foreground);
4058
+ .menu-item-active:hover {
4059
+ background: var(--primary-600);
3931
4060
  }
3932
4061
  }
4062
+ .menu-item-active:active {
4063
+ background: var(--primary-600);
4064
+ }
3933
4065
 
3934
- .command-palette-tab-active {
4066
+ .menu-item-destructive .menu-item-icon {
4067
+ color: var(--danger-700);
4068
+ }
4069
+ .menu-item-destructive .menu-item-label {
4070
+ color: var(--danger-700);
4071
+ }
4072
+
4073
+ .menu-item-highlighted {
3935
4074
  background: var(--primary-100);
4075
+ color: var(--primary-600);
4076
+ }
4077
+ .menu-item-highlighted .menu-item-icon {
3936
4078
  color: var(--primary-700);
3937
4079
  }
3938
4080
  @media (hover: hover) {
3939
- .command-palette-tab-active:hover {
4081
+ .menu-item-highlighted:hover {
3940
4082
  background: var(--primary-100);
3941
- color: var(--primary-700);
3942
4083
  }
3943
4084
  }
3944
-
3945
- .command-palette-tab-icon {
3946
- font-size: 13px;
4085
+ .menu-item-highlighted:active {
4086
+ background: var(--primary-100);
4087
+ }
4088
+ .menu-item-highlighted .badge {
4089
+ --surface-stroke: var(--primary-200);
3947
4090
  }
3948
4091
 
3949
- .command-palette-results {
3950
- overflow-y: auto;
3951
- overscroll-behavior: contain;
3952
- scroll-padding-block: 42px 6px;
3953
- scrollbar-width: thin;
3954
- padding: 6px;
3955
- flex-grow: 1;
4092
+ .menu-item-indented {
4093
+ margin-left: 33px;
3956
4094
  }
3957
4095
 
3958
- .command-palette-loading {
4096
+ .menu-collapsible {
3959
4097
  display: flex;
3960
- padding: 24px;
3961
- align-items: center;
3962
- justify-content: center;
4098
+ flex-flow: column;
3963
4099
  }
3964
4100
 
3965
- .command-palette-empty {
4101
+ .menu-collapsible-opened {
4102
+ }
4103
+
4104
+ .menu-collapsible-body {
4105
+ position: relative;
4106
+ min-height: 0;
4107
+ transition: height 300ms var(--swift-out), opacity 200ms var(--swift-out);
4108
+ }
4109
+ .menu-collapsible-body::before {
4110
+ content: "";
4111
+ position: absolute;
4112
+ top: 3px;
4113
+ bottom: 3px;
4114
+ left: 21px;
4115
+ width: 2px;
4116
+ background: var(--surface-stroke);
4117
+ }
4118
+ .menu-collapsible-body.v-enter-from, .menu-collapsible-body.v-leave-to {
4119
+ opacity: 0;
4120
+ }
4121
+ .menu-collapsible-body.v-enter-to, .menu-collapsible-body.v-leave-from {
4122
+ opacity: 1;
4123
+ }
4124
+ .menu-collapsible-body.v-enter-active, .menu-collapsible-body.v-leave-active {
4125
+ overflow: hidden;
4126
+ }
4127
+
4128
+ .menu-collapsible-content {
3966
4129
  display: flex;
3967
- padding: 24px;
3968
- align-items: center;
3969
- justify-content: center;
4130
+ padding-top: 3px;
4131
+ padding-bottom: 3px;
4132
+ padding-left: 35px;
4133
+ flex-flow: column;
4134
+ gap: 3px;
4135
+ }
4136
+
4137
+ .menu-item-selectable-icon {
4138
+ }
4139
+
4140
+ .menu-item-selected .menu-item-selectable-icon {
4141
+ color: var(--primary-600);
4142
+ }
4143
+
4144
+ .menu-item-command {
4145
+ margin-top: 1px;
4146
+ margin-left: auto;
4147
+ padding-left: 6px;
3970
4148
  color: var(--foreground-secondary);
4149
+ font: inherit;
3971
4150
  font-size: 14px;
4151
+ white-space: nowrap;
3972
4152
  }
3973
4153
 
3974
- .command-palette-group {
3975
- display: flex;
3976
- padding: 9px 10px 3px;
3977
- align-items: center;
3978
- gap: 6px;
4154
+ .menu-item-command-icon {
4155
+ margin-right: -6px;
3979
4156
  color: var(--foreground-secondary);
3980
- font-size: 12px;
3981
- font-weight: 600;
3982
- text-transform: uppercase;
3983
- letter-spacing: 0.05em;
3984
- pointer-events: none;
4157
+ }
4158
+ .menu-item-command-icon.icon {
4159
+ font-size: 16px;
3985
4160
  }
3986
4161
 
3987
- .command-palette-group-icon {
3988
- font-size: 12px;
4162
+ .menu-item-command + .menu-item-command-icon {
4163
+ margin-left: -9px;
3989
4164
  }
3990
4165
 
3991
- .command-palette-item {
3992
- display: flex;
3993
- width: 100%;
3994
- padding: 8px 10px;
3995
- align-items: center;
3996
- gap: 10px;
3997
- background: transparent;
3998
- border: 0;
3999
- border-radius: var(--radius-half);
4000
- cursor: pointer;
4001
- color: var(--foreground);
4002
- font: inherit;
4003
- font-size: 14px;
4004
- text-align: left;
4005
- transition: background 100ms;
4166
+ .menu-item-active .menu-item-command,
4167
+ .menu-item-active .menu-item-command-icon {
4168
+ color: var(--primary-300);
4006
4169
  }
4007
- @media (hover: hover) {
4008
- .command-palette-item:hover {
4009
- background: var(--gray-100);
4010
- }
4170
+
4171
+ .menu-item-image {
4172
+ margin-left: -2px;
4173
+ margin-right: -2px;
4174
+ height: 24px;
4175
+ width: 24px;
4176
+ border-radius: 3px;
4011
4177
  }
4012
- .command-palette-item:active {
4013
- background: var(--gray-200);
4178
+
4179
+ .menu-item .avatar {
4180
+ margin: -3px;
4181
+ font-size: 24px;
4014
4182
  }
4015
4183
 
4016
- .command-palette-item-highlighted {
4017
- background: var(--gray-100);
4184
+ .menu-group-horizontal .menu-item {
4185
+ flex-basis: 0;
4186
+ flex-grow: 1;
4018
4187
  }
4019
- @media (hover: hover) {
4020
- .command-palette-item-highlighted:hover {
4021
- background: var(--gray-100);
4022
- }
4188
+ .menu-group-horizontal .menu-item:has(.menu-item-icon:only-child) {
4189
+ justify-content: center;
4023
4190
  }
4024
4191
 
4025
- .command-palette-item-icon {
4192
+ .menu-title {
4193
+ padding: 0 12px;
4194
+ color: var(--foreground-prominent);
4195
+ font-size: 18px;
4196
+ font-weight: 700;
4197
+ }
4198
+
4199
+ .menu-sub-header {
4200
+ position: sticky;
4026
4201
  display: flex;
4027
- width: 30px;
4028
- height: 30px;
4202
+ top: 0;
4203
+ margin-top: -9px;
4204
+ margin-bottom: -3px;
4205
+ padding: 12px 12px 6px;
4029
4206
  align-items: center;
4030
- align-self: flex-start;
4031
- flex-shrink: 0;
4032
- justify-content: center;
4033
- background: var(--gray-100);
4034
- border-radius: var(--radius-half);
4035
- color: var(--foreground);
4036
- transition: background 100ms, color 100ms;
4207
+ gap: 9px;
4208
+ background: linear-gradient(to bottom, var(--surface) 75%, transparent);
4209
+ pointer-events: none;
4210
+ z-index: 1;
4037
4211
  }
4038
- .command-palette-item-icon .icon {
4039
- font-size: 16px;
4212
+
4213
+ .menu-sub-header-icon,
4214
+ .menu-sub-header-label {
4215
+ color: var(--foreground-secondary);
4040
4216
  }
4041
4217
 
4042
- .command-palette-item-highlighted .command-palette-item-icon {
4043
- background: var(--gray-200);
4218
+ .menu-sub-header-icon {
4219
+ font-size: 16px;
4044
4220
  }
4045
4221
 
4046
- .command-palette-item-content {
4047
- overflow: hidden;
4222
+ .menu-sub-header-label {
4048
4223
  flex-grow: 1;
4224
+ font-size: 14px;
4049
4225
  }
4050
4226
 
4051
- .command-palette-item-label {
4052
- overflow: hidden;
4053
- white-space: nowrap;
4054
- text-overflow: ellipsis;
4227
+ .menu-item + .menu-sub-header {
4228
+ margin-top: 9px;
4055
4229
  }
4056
4230
 
4057
- .command-palette-item-sub-label {
4058
- overflow: hidden;
4059
- margin-top: 1px;
4060
- color: var(--foreground-secondary);
4061
- font-size: 12px;
4062
- white-space: nowrap;
4063
- text-overflow: ellipsis;
4064
- transition: color 100ms;
4231
+ .menu-large .menu-item {
4232
+ position: relative;
4233
+ padding-left: 15px;
4234
+ padding-right: 15px;
4235
+ }
4236
+ .menu-large .menu-item::after {
4237
+ position: absolute;
4238
+ display: block;
4239
+ top: 12px;
4240
+ right: 12px;
4241
+ bottom: 12px;
4242
+ width: 4px;
4243
+ content: "";
4244
+ background: var(--primary-600);
4245
+ border-radius: var(--radius-full);
4246
+ opacity: 0;
4247
+ transition: opacity var(--transition-default);
4065
4248
  }
4066
4249
 
4067
- .command-palette-item-highlighted .command-palette-item-sub-label {
4068
- color: var(--primary-500);
4250
+ .menu-large .menu-item:not(.menu-item-indented) {
4251
+ min-height: 48px;
4252
+ }
4253
+ .menu-large .menu-item:not(.menu-item-indented)::after {
4254
+ background: var(--primary-25);
4069
4255
  }
4070
4256
 
4071
- .command-palette-item-sub-action-indicator {
4072
- flex-shrink: 0;
4073
- color: var(--foreground-secondary);
4074
- font-size: 12px;
4075
- transition: color 100ms;
4257
+ .menu-large .menu-item-active::after {
4258
+ opacity: 1;
4259
+ }
4260
+ .menu-large .menu-item-active.menu-item-indented {
4261
+ background: var(--gray-100);
4262
+ }
4263
+ .menu-large .menu-item-active.menu-item-indented .menu-item-icon,
4264
+ .menu-large .menu-item-active.menu-item-indented .menu-item-label {
4265
+ color: var(--foreground-prominent);
4076
4266
  }
4077
4267
 
4078
- .command-palette-item-highlighted .command-palette-item-sub-action-indicator {
4079
- color: var(--primary-500);
4268
+ .base-pane > .menu {
4269
+ margin-left: 9px;
4270
+ margin-right: 9px;
4271
+ }
4272
+ .base-pane > .menu:first-child {
4273
+ margin-top: 9px;
4274
+ }
4275
+ .base-pane > .menu:last-child {
4276
+ margin-bottom: 9px;
4277
+ }
4278
+ .base-pane > .menu > :where(.divider, .separator) {
4279
+ margin: 3px -9px;
4080
4280
  }
4081
4281
 
4082
- @keyframes command-palette-in {
4083
- from {
4084
- opacity: 0;
4085
- scale: 1.05;
4086
- }
4087
- to {
4088
- opacity: 1;
4089
- scale: 1;
4090
- }
4282
+ .expandable-body > .menu {
4283
+ margin-left: 9px;
4284
+ margin-right: 9px;
4091
4285
  }
4092
- @keyframes command-palette-out {
4093
- from {
4094
- opacity: 1;
4095
- }
4096
- to {
4097
- opacity: 0;
4098
- }
4286
+ .expandable-body > .menu:last-child {
4287
+ margin-bottom: 9px;
4099
4288
  }
4100
- @keyframes command-palette-backdrop-in {
4101
- from {
4102
- opacity: 0;
4103
- }
4104
- to {
4105
- opacity: 1;
4106
- }
4289
+ .expandable-body > .menu > :where(.divider, .separator) {
4290
+ margin-left: 18px;
4291
+ margin-right: 18px;
4292
+ }.tree-node {
4293
+ display: flex;
4294
+ width: 100%;
4295
+ min-height: 36px;
4296
+ padding: 0 8px;
4297
+ align-items: center;
4298
+ border-radius: var(--radius-half);
4299
+ color: var(--foreground);
4300
+ font-size: 14px;
4301
+ gap: 8px;
4302
+ outline: 0;
4303
+ transition: 150ms var(--swift-out);
4304
+ transition-property: background, color;
4305
+ user-select: none;
4107
4306
  }
4108
- @keyframes command-palette-backdrop-out {
4109
- from {
4110
- opacity: 1;
4111
- }
4112
- to {
4113
- opacity: 0;
4114
- }
4115
- }.comment {
4116
- display: grid;
4117
- max-width: 100%;
4118
- gap: 3px 15px;
4119
- grid-template-columns: 1fr auto;
4120
- grid-template-rows: repeat(2, auto);
4307
+
4308
+ .tree-node-line-area {
4309
+ display: flex;
4310
+ align-self: stretch;
4311
+ flex-shrink: 0;
4121
4312
  }
4122
- .comment .avatar {
4123
- align-self: end;
4124
- grid-column: 2;
4125
- grid-row: 1;
4313
+
4314
+ .tree-indent {
4315
+ position: relative;
4316
+ width: 20px;
4317
+ align-self: stretch;
4318
+ flex-shrink: 0;
4319
+ pointer-events: none;
4126
4320
  }
4127
- .comment .comment-content {
4128
- grid-column: 1;
4129
- grid-row: 1;
4321
+ .tree-indent.has-line::before {
4322
+ content: "";
4323
+ position: absolute;
4324
+ top: 0;
4325
+ bottom: 0;
4326
+ left: 9px;
4327
+ width: 1px;
4328
+ background: var(--surface-stroke);
4130
4329
  }
4131
- .comment .comment-footer {
4132
- grid-column: 1;
4133
- grid-row: 2;
4330
+
4331
+ .tree-connector {
4332
+ position: relative;
4333
+ width: 20px;
4334
+ align-self: stretch;
4335
+ flex-shrink: 0;
4336
+ pointer-events: none;
4134
4337
  }
4135
- .comment.is-received {
4136
- grid-template-columns: auto 1fr;
4338
+ .tree-connector:not(.is-last)::before {
4339
+ content: "";
4340
+ position: absolute;
4341
+ top: 0;
4342
+ bottom: 0;
4343
+ left: 9px;
4344
+ width: 1px;
4345
+ background: var(--surface-stroke);
4137
4346
  }
4138
- .comment.is-received .avatar {
4139
- grid-column: 1;
4347
+ .tree-connector::after {
4348
+ content: "";
4349
+ position: absolute;
4350
+ top: 0;
4351
+ bottom: 50%;
4352
+ left: 9px;
4353
+ right: 0;
4354
+ border-left: 1px solid var(--surface-stroke);
4355
+ border-bottom: 1px solid var(--surface-stroke);
4356
+ border-bottom-left-radius: 6px;
4140
4357
  }
4141
- .comment.is-received .comment-content {
4142
- grid-column: 2;
4358
+
4359
+ .tree-node-expand {
4360
+ display: flex;
4361
+ width: 16px;
4362
+ flex-shrink: 0;
4363
+ align-items: center;
4364
+ justify-content: center;
4365
+ color: var(--foreground-secondary);
4143
4366
  }
4144
- .comment.is-received .comment-footer {
4145
- grid-column: 2;
4367
+ .tree-node-expand:not(:empty) {
4368
+ cursor: pointer;
4146
4369
  }
4147
4370
 
4148
- .comment-content {
4149
- min-width: 0;
4150
- padding: 12px 18px;
4151
- background: linear-gradient(to bottom, var(--gray-25), var(--gray-50));
4152
- border: 1px solid var(--gray-200);
4153
- border-radius: calc(var(--radius) * 2);
4154
- box-shadow: var(--shadow-xs);
4371
+ .tree-node-color-dot {
4372
+ display: block;
4373
+ width: 8px;
4374
+ height: 8px;
4375
+ border-radius: 50%;
4376
+ flex-shrink: 0;
4155
4377
  }
4156
4378
 
4157
- .comment:not(.is-received) .comment-content {
4158
- border-bottom-right-radius: var(--radius);
4379
+ .tree-node-icon {
4380
+ color: var(--foreground-secondary);
4381
+ flex-shrink: 0;
4159
4382
  }
4160
4383
 
4161
- .comment.is-received .comment-content {
4162
- background: linear-gradient(to bottom, var(--gray-50), var(--gray-100));
4163
- border-color: var(--gray-200);
4164
- border-bottom-left-radius: var(--radius);
4384
+ .tree-node-label {
4385
+ flex: 1;
4386
+ overflow: hidden;
4387
+ text-overflow: ellipsis;
4388
+ white-space: nowrap;
4389
+ }.divider {
4390
+ position: relative;
4391
+ display: grid;
4392
+ contain: paint;
4393
+ margin-top: 18px;
4394
+ margin-bottom: 18px;
4395
+ align-items: center;
4396
+ flex-shrink: 0;
4165
4397
  }
4166
4398
 
4167
- .comment.is-typing .comment-content {
4168
- width: min-content;
4399
+ .divider-content-start {
4400
+ justify-items: start;
4169
4401
  }
4170
4402
 
4171
- .comment-typing {
4172
- display: block;
4173
- margin: 6px;
4174
- height: 6px;
4175
- width: 6px;
4176
- border-radius: 6px;
4177
- animation: comment-typing 1s linear infinite both;
4403
+ .divider-content-center {
4404
+ justify-items: center;
4405
+ }
4406
+
4407
+ .divider-content-end {
4408
+ justify-items: end;
4178
4409
  }
4179
4410
 
4180
- .comment-footer {
4411
+ .divider-content {
4412
+ position: relative;
4181
4413
  display: flex;
4182
- align-items: center;
4183
- gap: 12px;
4184
- justify-content: flex-end;
4185
- font-size: 12px;
4186
- font-weight: 500;
4187
4414
  }
4188
- .comment-footer span {
4189
- margin-right: auto;
4415
+ .divider-content::before, .divider-content::after {
4416
+ position: absolute;
4417
+ display: block;
4418
+ top: 50%;
4419
+ translate: 0 -50%;
4190
4420
  }
4191
- .comment-footer time {
4192
- color: var(--foreground-secondary);
4421
+ .divider-content::before {
4422
+ left: -100dvh;
4423
+ right: calc(100% + 15px);
4193
4424
  }
4194
-
4195
- [dark] .comment-content {
4196
- background: linear-gradient(to bottom, var(--gray-50), var(--gray-25));
4425
+ .divider-content::after {
4426
+ left: calc(100% + 15px);
4427
+ right: -100dvh;
4197
4428
  }
4198
4429
 
4199
- [dark] .comment.is-received .comment-content {
4200
- background: linear-gradient(to bottom, var(--gray-100), var(--gray-50));
4430
+ .divider-line {
4431
+ width: 100%;
4432
+ border: 0;
4201
4433
  }
4202
4434
 
4203
- @keyframes comment-typing {
4204
- 0%, 80%, 100% {
4205
- background: var(--gray-200);
4206
- box-shadow: -9px 0 var(--gray-200), 9px 0 var(--gray-200);
4207
- translate: 0 0;
4208
- }
4209
- 20% {
4210
- background: var(--gray-200);
4211
- box-shadow: -9px -4px var(--gray-300), 9px 0 var(--gray-200);
4212
- translate: 0 0;
4213
- }
4214
- 40% {
4215
- background: var(--gray-300);
4216
- box-shadow: -9px 4px var(--gray-200), 9px 4px var(--gray-200);
4217
- translate: 0 -4px;
4218
- }
4219
- 60% {
4220
- background: var(--gray-200);
4221
- box-shadow: -9px 0 var(--gray-200), 9px -4px var(--gray-300);
4222
- translate: 0 0;
4223
- }
4224
- }.coordinate-picker {
4225
- position: relative;
4226
- aspect-ratio: 5/3;
4227
- background: var(--gray-50);
4228
- border: 1px solid var(--surface-stroke-out);
4229
- border-radius: var(--radius-half);
4230
- z-index: 0;
4435
+ .divider-content::before,
4436
+ .divider-content::after,
4437
+ .divider-line {
4438
+ height: 1px;
4439
+ content: "";
4440
+ background: var(--gray-100);
4231
4441
  }
4232
4442
 
4233
- .coordinate-picker-thumb {
4234
- z-index: 1;
4443
+ .separator {
4444
+ background: var(--gray-200);
4235
4445
  }
4236
- .coordinate-picker-thumb.is-disabled {
4237
- counter-reset: t;
4446
+
4447
+ .separator-horizontal {
4448
+ height: 1px;
4238
4449
  }
4239
- .coordinate-picker-thumb.is-dragging {
4240
- counter-reset: t;
4450
+
4451
+ .separator-vertical {
4452
+ width: 1px;
4241
4453
  }.color-picker {
4242
4454
  --transparent: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMElEQVQ4T2N89uzZfwY8QFJSEp80A+OoAcMiDP7//483HTx//hx/Ohg1gIFx6IcBALl+VXknOCvFAAAAAElFTkSuQmCC);
4243
4455
  display: flex;
@@ -5242,41 +5454,52 @@ tfoot .table-cell {
5242
5454
 
5243
5455
  .info-body {
5244
5456
  align-items: center;
5245
- }/* region root */
5246
- .kanban {
5457
+ }.kanban {
5247
5458
  position: relative;
5248
- display: flex;
5249
- flex-flow: row;
5250
- gap: 15px;
5251
- block-size: 100%;
5252
- inline-size: 100%;
5459
+ display: grid;
5460
+ flex-grow: 1;
5461
+ grid-auto-flow: column;
5462
+ grid-auto-columns: minmax(300px, 1fr);
5463
+ grid-template-rows: auto 1fr auto;
5464
+ margin: -9px;
5465
+ padding: 9px;
5466
+ gap: 0 15px;
5253
5467
  overflow-x: auto;
5254
- padding-bottom: 6px;
5255
5468
  }
5256
5469
 
5257
5470
  .kanban-live-region {
5258
5471
  position: absolute;
5472
+ grid-row: 1;
5259
5473
  width: 1px;
5260
5474
  height: 1px;
5261
5475
  margin: -1px;
5262
5476
  padding: 0;
5263
5477
  border: 0;
5264
- overflow: hidden;
5265
5478
  clip: rect(0, 0, 0, 0);
5479
+ overflow: hidden;
5266
5480
  white-space: nowrap;
5267
5481
  }
5268
5482
 
5269
- /* endregion */
5270
- /* region column */
5271
5483
  .kanban-column {
5272
- display: flex;
5273
- flex-flow: column;
5274
- flex: 1 0 300px;
5275
- background: var(--gray-100);
5276
- border: 1px solid var(--gray-200);
5484
+ display: grid;
5485
+ grid-template-rows: subgrid;
5486
+ grid-row: span 2;
5487
+ min-width: 0;
5488
+ background: var(--gray-50);
5489
+ border: 1px solid var(--surface-stroke);
5277
5490
  border-radius: var(--radius);
5491
+ outline: 2px dashed transparent;
5492
+ outline-offset: 2px;
5278
5493
  overflow: hidden;
5279
- transition: opacity 180ms var(--swift-out);
5494
+ transition: 210ms var(--swift-out);
5495
+ transition-property: background, border, outline-color, opacity, z-index;
5496
+ z-index: 0;
5497
+ }
5498
+ .kanban-column.is-over {
5499
+ background: var(--primary-50);
5500
+ border-color: var(--primary-200);
5501
+ outline-color: var(--primary-600);
5502
+ z-index: 1;
5280
5503
  }
5281
5504
 
5282
5505
  .kanban-column.is-column-dragging {
@@ -5291,8 +5514,7 @@ tfoot .table-cell {
5291
5514
  display: flex;
5292
5515
  align-items: center;
5293
5516
  gap: 9px;
5294
- padding: 12px 15px;
5295
- border-bottom: 1px solid var(--gray-200);
5517
+ padding: 12px 12px 0;
5296
5518
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
5297
5519
  outline-offset: 0;
5298
5520
  }
@@ -5311,28 +5533,24 @@ tfoot .table-cell {
5311
5533
 
5312
5534
  .kanban-column-label {
5313
5535
  flex: 1;
5314
- font-size: 0.8125rem;
5536
+ font-size: 14px;
5315
5537
  font-weight: 600;
5316
5538
  color: var(--foreground);
5317
- letter-spacing: 0.01em;
5318
5539
  text-transform: uppercase;
5319
5540
  }
5320
5541
 
5321
5542
  .kanban-column-body {
5543
+ position: relative;
5322
5544
  display: flex;
5323
5545
  flex-flow: column;
5324
- gap: 9px;
5325
- padding: 9px;
5546
+ gap: 12px;
5547
+ padding: 12px;
5326
5548
  min-height: 60px;
5327
5549
  flex: 1;
5328
5550
  overflow-y: auto;
5329
5551
  transition: background 180ms var(--swift-out);
5330
5552
  }
5331
5553
 
5332
- .is-over .kanban-column-body {
5333
- background: rgb(from var(--primary-500) r g b/0.06);
5334
- }
5335
-
5336
5554
  .is-over.is-drop-disallowed .kanban-column-body {
5337
5555
  background: rgb(from var(--danger-500) r g b/0.06);
5338
5556
  cursor: not-allowed;
@@ -5368,55 +5586,52 @@ tfoot .table-cell {
5368
5586
  }
5369
5587
 
5370
5588
  .kanban-drop-indicator {
5371
- flex-shrink: 0;
5372
- height: 2px;
5589
+ position: absolute;
5590
+ top: -3px;
5591
+ inset-inline: 15px;
5592
+ height: 4px;
5373
5593
  border-radius: 999px;
5374
- background: transparent;
5375
- transition: background 180ms var(--swift-out);
5594
+ background: var(--primary-500);
5595
+ opacity: 0;
5596
+ pointer-events: none;
5597
+ transition: 300ms var(--swift-out);
5598
+ transition-property: background, opacity;
5599
+ will-change: transform;
5376
5600
  }
5377
5601
 
5378
- .is-drop-end-active {
5379
- background: var(--primary-500);
5602
+ .kanban-drop-indicator.is-visible {
5603
+ opacity: 1;
5380
5604
  }
5381
5605
 
5382
- .is-drop-end-active.is-drop-end-disallowed {
5606
+ .kanban-drop-indicator.is-disallowed {
5383
5607
  background: var(--danger-500);
5384
5608
  }
5385
5609
 
5386
- /* endregion */
5387
- /* region card */
5388
- .kanban-card {
5610
+ .kanban-item {
5389
5611
  position: relative;
5390
- padding: 12px;
5391
- background: var(--gray-25);
5392
- border: 1px solid var(--gray-200);
5393
- border-radius: var(--radius);
5612
+ display: block;
5613
+ background: transparent;
5614
+ border: 0;
5394
5615
  cursor: grab;
5395
5616
  scroll-margin: 9px;
5396
- transition: opacity 180ms var(--swift-out), box-shadow 180ms var(--swift-out), transform 180ms var(--swift-out);
5617
+ transition: opacity 180ms var(--swift-out), transform 180ms var(--swift-out);
5397
5618
  user-select: none;
5398
5619
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
5399
5620
  outline-offset: 0;
5400
5621
  }
5401
- .kanban-card:focus-visible {
5622
+ .kanban-item:focus-visible {
5402
5623
  outline-color: var(--primary-600);
5403
- outline-offset: -2;
5624
+ outline-offset: 2;
5404
5625
  }
5405
- .kanban-card:active {
5626
+ .kanban-item:active {
5406
5627
  cursor: grabbing;
5407
5628
  }
5408
- .kanban-card:hover {
5409
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
5410
- }
5411
5629
 
5412
- .kanban-card.is-disabled {
5630
+ .kanban-item.is-disabled {
5413
5631
  cursor: not-allowed;
5414
5632
  opacity: 0.6;
5415
5633
  }
5416
- .kanban-card.is-disabled:hover {
5417
- box-shadow: none;
5418
- }
5419
- .kanban-card.is-disabled:active {
5634
+ .kanban-item.is-disabled:active {
5420
5635
  cursor: not-allowed;
5421
5636
  }
5422
5637
 
@@ -5427,26 +5642,10 @@ tfoot .table-cell {
5427
5642
 
5428
5643
  .is-grabbed {
5429
5644
  transform: scale(1.04);
5430
- background: var(--surface);
5431
- box-shadow: 0 0 0 2px var(--primary-500), 0 8px 24px rgba(0, 0, 0, 0.15);
5645
+ outline: 2px solid var(--primary-500);
5646
+ outline-offset: 2px;
5432
5647
  z-index: 1;
5433
- }
5434
-
5435
- .is-drop-before::before {
5436
- content: "";
5437
- position: absolute;
5438
- inset-inline: 0;
5439
- top: -6px;
5440
- height: 2px;
5441
- border-radius: 999px;
5442
- background: var(--primary-500);
5443
- }
5444
-
5445
- .is-drop-before.is-drop-before-disallowed::before {
5446
- background: var(--danger-500);
5447
- }
5448
-
5449
- /* endregion */.item {
5648
+ }.item {
5450
5649
  display: flex;
5451
5650
  flex-flow: row nowrap;
5452
5651
  gap: 18px;
@@ -6494,13 +6693,24 @@ tfoot .table-cell {
6494
6693
  .stepper-steps-item-particles {
6495
6694
  }.tab {
6496
6695
  position: relative;
6696
+ display: flex;
6697
+ flex-flow: column;
6698
+ flex-grow: 1;
6699
+ }
6700
+
6701
+ .base-tab-bar {
6702
+ position: relative;
6703
+ z-index: 0;
6497
6704
  }
6498
6705
 
6499
- .tab-bar {
6706
+ .tab-bar-default {
6500
6707
  --tab-padding: 12px;
6501
- position: relative;
6502
6708
  box-shadow: inset 0 -2px var(--surface-stroke);
6503
- z-index: 0;
6709
+ }
6710
+
6711
+ .tab-bar-pills {
6712
+ padding: 3px;
6713
+ border-radius: var(--radius);
6504
6714
  }
6505
6715
 
6506
6716
  .tab-bar-arrow {
@@ -6534,81 +6744,142 @@ tfoot .table-cell {
6534
6744
  right: -6px;
6535
6745
  }
6536
6746
 
6537
- .tab-bar-tabs {
6747
+ .base-tab-bar-tabs {
6748
+ position: relative;
6749
+ display: flex;
6750
+ align-items: center;
6751
+ overflow: auto;
6752
+ scrollbar-width: none;
6753
+ }
6754
+
6755
+ .tab-bar-tabs-default {
6538
6756
  --mask-start: 0%;
6539
6757
  --mask-end: 100%;
6540
6758
  --mask: linear-gradient(to right, transparent, black var(--mask-start), black, black var(--mask-end), transparent);
6541
- display: flex;
6542
6759
  margin-left: -3px;
6543
6760
  margin-right: -3px;
6544
6761
  padding-left: 3px;
6545
6762
  padding-right: 3px;
6546
- align-items: center;
6547
6763
  gap: 27px;
6548
- overflow: auto;
6549
- scrollbar-width: none;
6550
6764
  -webkit-mask-image: var(--mask);
6551
6765
  mask-image: var(--mask);
6552
6766
  }
6553
- .tab-bar-tabs.is-start-masked {
6767
+ .tab-bar-tabs-default.is-start-masked {
6554
6768
  --mask-start: 60px;
6555
6769
  }
6556
- .tab-bar-tabs.is-end-masked {
6770
+ .tab-bar-tabs-default.is-end-masked {
6557
6771
  --mask-end: calc(100% - 60px);
6558
6772
  }
6559
6773
 
6560
- .tab-bar-item {
6774
+ .tab-bar-tabs-pills {
6775
+ gap: 0;
6776
+ }
6777
+
6778
+ .base-tab-bar-item {
6561
6779
  display: inline-flex;
6562
- padding: var(--tab-padding) 0;
6563
6780
  align-items: center;
6564
- gap: 9px;
6565
6781
  background: unset;
6566
6782
  border: 0;
6567
- border-bottom: 2px solid transparent;
6568
6783
  color: var(--foreground);
6569
6784
  contain: layout;
6570
6785
  cursor: pointer;
6571
6786
  font-weight: 500;
6572
6787
  outline: 0;
6573
- transition: var(--transition-default);
6574
- transition-property: border-color, color;
6575
6788
  white-space: nowrap;
6576
6789
  }
6577
- .tab-bar-item::before {
6790
+ .base-tab-bar-item::before {
6578
6791
  position: absolute;
6579
6792
  inset: 0;
6580
6793
  content: "";
6581
- border-radius: var(--radius);
6582
6794
  pointer-events: none;
6583
6795
  transition: var(--transition-default) outline-color, outline-offset;
6584
6796
  }
6585
- .tab-bar-item::before {
6797
+ .base-tab-bar-item::before {
6586
6798
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
6587
6799
  outline-offset: 0;
6588
6800
  }
6589
- .tab-bar-item:focus-visible::before {
6801
+ .base-tab-bar-item:focus-visible::before {
6590
6802
  outline-color: var(--primary-600);
6591
- outline-offset: 0;
6803
+ outline-offset: -2px;
6592
6804
  }
6593
- @media (hover: hover) {
6594
- .tab-bar-item:hover {
6595
- border-color: var(--foreground);
6596
- }
6805
+ .base-tab-bar-item::before {
6806
+ outline-offset: -2px;
6597
6807
  }
6598
- .tab-bar-item:disabled, .tab-bar-item[aria-disabled=true] {
6808
+ .base-tab-bar-item:disabled, .base-tab-bar-item[aria-disabled=true] {
6599
6809
  box-shadow: none;
6600
6810
  opacity: 0.5;
6601
6811
  pointer-events: none;
6602
6812
  }
6603
6813
 
6604
- .tab-bar-item-active {
6605
- border-color: var(--primary-600);
6814
+ .tab-bar-item-default {
6815
+ padding: var(--tab-padding) 0;
6816
+ gap: 9px;
6817
+ border-bottom: 2px solid transparent;
6818
+ transition: var(--transition-default);
6819
+ transition-property: border-color, color;
6820
+ }
6821
+ .tab-bar-item-default::before {
6822
+ border-radius: var(--radius);
6823
+ }
6824
+ @media (hover: hover) {
6825
+ .tab-bar-item-default:hover {
6826
+ border-color: var(--foreground);
6827
+ }
6828
+ }
6829
+
6830
+ .tab-bar-item-default-active {
6831
+ color: var(--foreground-prominent);
6832
+ }
6833
+
6834
+ .tab-bar-item-pills {
6835
+ position: relative;
6836
+ height: 36px;
6837
+ padding: 0 12px;
6838
+ gap: 6px;
6839
+ border-radius: calc(var(--radius) - 2px);
6840
+ transition: color 300ms var(--swift-out);
6841
+ z-index: 1;
6842
+ }
6843
+ .tab-bar-item-pills::before {
6844
+ border-radius: calc(var(--radius) - 2px);
6845
+ }
6846
+ @media (hover: hover) {
6847
+ .tab-bar-item-pills:hover {
6848
+ color: var(--foreground-prominent);
6849
+ }
6850
+ }
6851
+
6852
+ .tab-bar-item-pills-active {
6606
6853
  color: var(--foreground-prominent);
6854
+ cursor: default;
6855
+ }
6856
+
6857
+ .base-tab-bar-highlight {
6858
+ position: absolute;
6859
+ pointer-events: none;
6860
+ transition: 300ms var(--swift-out);
6861
+ transition-property: left, width;
6862
+ }
6863
+
6864
+ .tab-bar-highlight-default {
6865
+ bottom: 0;
6866
+ height: 2px;
6867
+ background: var(--primary-600);
6868
+ z-index: 1;
6869
+ }
6870
+
6871
+ .tab-bar-highlight-pills {
6872
+ top: 0;
6873
+ bottom: 0;
6874
+ background: var(--gray-100);
6875
+ border-radius: calc(var(--radius) - 2px);
6876
+ z-index: 0;
6607
6877
  }
6608
6878
 
6609
6879
  .tabs {
6610
6880
  display: flex;
6611
6881
  flex-flow: column;
6882
+ flex-grow: 1;
6612
6883
  overflow: visible;
6613
6884
  }
6614
6885
 
@@ -6616,46 +6887,54 @@ tfoot .table-cell {
6616
6887
  margin-bottom: 18px;
6617
6888
  }
6618
6889
 
6619
- .base-pane-structure > .tab-bar,
6620
- .base-pane-structure > .tabs > .tab-bar,
6621
- .base-pane-structure > .form > .tab-bar,
6622
- .base-pane-structure > .form > .tabs > .tab-bar {
6890
+ .base-pane-structure > .tab-bar-default,
6891
+ .base-pane-structure > .tabs > .tab-bar-default,
6892
+ .base-pane-structure > .form > .tab-bar-default,
6893
+ .base-pane-structure > .form > .tabs > .tab-bar-default {
6623
6894
  --tab-padding: 18px;
6624
6895
  padding-left: 18px;
6625
6896
  padding-right: 18px;
6626
6897
  background: var(--gray-50);
6627
6898
  }
6628
- .base-pane-structure > .tab-bar:first-child,
6629
- .base-pane-structure > .tabs > .tab-bar:first-child,
6630
- .base-pane-structure > .form > .tab-bar:first-child,
6631
- .base-pane-structure > .form > .tabs > .tab-bar:first-child {
6899
+ .base-pane-structure > .tab-bar-default:first-child,
6900
+ .base-pane-structure > .tabs > .tab-bar-default:first-child,
6901
+ .base-pane-structure > .form > .tab-bar-default:first-child,
6902
+ .base-pane-structure > .form > .tabs > .tab-bar-default:first-child {
6632
6903
  border-radius: var(--radius) var(--radius) 0 0;
6633
6904
  }
6634
- .base-pane-structure > .tab-bar:not(:first-child),
6635
- .base-pane-structure > .tabs > .tab-bar:not(:first-child),
6636
- .base-pane-structure > .form > .tab-bar:not(:first-child),
6637
- .base-pane-structure > .form > .tabs > .tab-bar:not(:first-child) {
6905
+ .base-pane-structure > .tab-bar-default:not(:first-child),
6906
+ .base-pane-structure > .tabs > .tab-bar-default:not(:first-child),
6907
+ .base-pane-structure > .form > .tab-bar-default:not(:first-child),
6908
+ .base-pane-structure > .form > .tabs > .tab-bar-default:not(:first-child) {
6638
6909
  border-top: 1px solid var(--surface-stroke);
6639
6910
  }
6640
6911
 
6641
- .base-pane-structure > .pane-header + .tab-bar,
6642
- .base-pane-structure > .pane-header + .tabs > .tab-bar,
6643
- .base-pane-structure > .form > .pane-header + .tab-bar,
6644
- .base-pane-structure > .form > .pane-header + .tabs > .tab-bar {
6645
- padding-top: 6px;
6646
- }
6647
- .base-pane-structure > .pane-header + .tab-bar:not(:first-child),
6648
- .base-pane-structure > .pane-header + .tabs > .tab-bar:not(:first-child),
6649
- .base-pane-structure > .form > .pane-header + .tab-bar:not(:first-child),
6650
- .base-pane-structure > .form > .pane-header + .tabs > .tab-bar:not(:first-child) {
6912
+ .base-pane-structure > .pane-header + .tab-bar-default:not(:first-child),
6913
+ .base-pane-structure > .pane-header + .tabs > .tab-bar-default:not(:first-child),
6914
+ .base-pane-structure > .form > .pane-header + .tab-bar-default:not(:first-child),
6915
+ .base-pane-structure > .form > .pane-header + .tabs > .tab-bar-default:not(:first-child) {
6651
6916
  border-top: 0;
6652
6917
  }
6653
6918
 
6654
- .pane-header:has(+ .tab-bar),
6655
- .pane-header:has(+ .tabs > .tab-bar) {
6919
+ .pane-header:has(+ .tab-bar-default),
6920
+ .pane-header:has(+ .tabs > .tab-bar-default) {
6656
6921
  background: var(--gray-50);
6657
6922
  }
6658
6923
 
6924
+ .base-pane-structure > .tab-bar-pills,
6925
+ .base-pane-structure > .tabs > .tab-bar-pills,
6926
+ .base-pane-structure > .form > .tab-bar-pills,
6927
+ .base-pane-structure > .form > .tabs > .tab-bar-pills {
6928
+ padding-left: 6px;
6929
+ padding-right: 6px;
6930
+ }
6931
+ .base-pane-structure > .tab-bar-pills:first-child,
6932
+ .base-pane-structure > .tabs > .tab-bar-pills:first-child,
6933
+ .base-pane-structure > .form > .tab-bar-pills:first-child,
6934
+ .base-pane-structure > .form > .tabs > .tab-bar-pills:first-child {
6935
+ padding-top: 6px;
6936
+ }
6937
+
6659
6938
  .base-pane-structure > .tabs > .tabs-bar {
6660
6939
  margin-bottom: 0;
6661
6940
  }.timeline {