@flux-ui/components 3.0.0-next.57 → 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 (306) 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/FluxKanban.vue.d.ts +17 -5
  14. package/dist/component/FluxKanbanColumn.vue.d.ts +13 -2
  15. package/dist/component/{FluxKanbanCard.vue.d.ts → FluxKanbanItem.vue.d.ts} +2 -1
  16. package/dist/component/FluxMenuItem.vue.d.ts +1 -1
  17. package/dist/component/FluxNotice.vue.d.ts +1 -1
  18. package/dist/component/FluxPaneHeader.vue.d.ts +1 -1
  19. package/dist/component/FluxPressable.vue.d.ts +1 -1
  20. package/dist/component/FluxPrompt.vue.d.ts +3 -3
  21. package/dist/component/FluxSplitButton.vue.d.ts +1 -1
  22. package/dist/component/FluxStack.vue.d.ts +1 -1
  23. package/dist/component/FluxTab.vue.d.ts +1 -1
  24. package/dist/component/FluxTabBar.vue.d.ts +4 -1
  25. package/dist/component/FluxTabs.vue.d.ts +4 -1
  26. package/dist/component/FluxTimelineItem.vue.d.ts +1 -1
  27. package/dist/component/calendar/FluxCalendarItemDisplay.vue.d.ts +9 -0
  28. package/dist/component/calendar/FluxCalendarMonthView.vue.d.ts +19 -0
  29. package/dist/component/calendar/FluxCalendarTimeGridView.vue.d.ts +36 -0
  30. package/dist/component/calendar/index.d.ts +3 -0
  31. package/dist/component/index.d.ts +2 -2
  32. package/dist/component/primitive/DialogLayout.vue.d.ts +1 -1
  33. package/dist/component/primitive/SelectBase.vue.d.ts +3 -3
  34. package/dist/composable/index.d.ts +3 -0
  35. package/dist/composable/private/index.d.ts +5 -8
  36. package/dist/composable/private/useAsyncFilterOptions.d.ts +1 -1
  37. package/dist/composable/private/useKanban.d.ts +14 -4
  38. package/dist/composable/private/useKanbanAutoScroll.d.ts +13 -0
  39. package/dist/composable/useCalendarInjection.d.ts +2 -0
  40. package/dist/composable/useKanbanInjection.d.ts +2 -0
  41. package/dist/composable/useTabBarInjection.d.ts +2 -0
  42. package/dist/data/di.d.ts +80 -9
  43. package/dist/data/i18n.d.ts +4 -0
  44. package/dist/index.css +1603 -1204
  45. package/dist/index.js +4567 -2819
  46. package/dist/index.js.map +1 -1
  47. package/package.json +6 -6
  48. package/src/component/FluxAction.vue +1 -1
  49. package/src/component/FluxActionBar.vue +2 -2
  50. package/src/component/FluxActionPane.vue +1 -1
  51. package/src/component/FluxAdaptiveGroup.vue +2 -2
  52. package/src/component/FluxAdaptiveSlot.vue +2 -2
  53. package/src/component/FluxAlert.vue +1 -1
  54. package/src/component/FluxAnimatedColors.vue +1 -1
  55. package/src/component/FluxAspectRatio.vue +1 -1
  56. package/src/component/FluxAvatar.vue +2 -2
  57. package/src/component/FluxBadge.vue +2 -2
  58. package/src/component/FluxBorderShine.vue +1 -1
  59. package/src/component/FluxBoxedIcon.vue +1 -1
  60. package/src/component/FluxButton.vue +2 -2
  61. package/src/component/FluxButtonGroup.vue +1 -1
  62. package/src/component/FluxButtonStack.vue +1 -1
  63. package/src/component/FluxCalendar.vue +588 -179
  64. package/src/component/FluxCalendarItem.vue +79 -0
  65. package/src/component/FluxCheckbox.vue +2 -2
  66. package/src/component/FluxChip.vue +2 -2
  67. package/src/component/FluxClickablePane.vue +2 -2
  68. package/src/component/FluxColorPicker.vue +2 -2
  69. package/src/component/FluxColorSelect.vue +3 -3
  70. package/src/component/FluxColumn.vue +1 -1
  71. package/src/component/FluxCommandPalette.vue +4 -4
  72. package/src/component/FluxCommandPaletteGroup.vue +1 -1
  73. package/src/component/FluxCommandPaletteItem.vue +1 -1
  74. package/src/component/FluxComment.vue +2 -2
  75. package/src/component/FluxConfirm.vue +1 -1
  76. package/src/component/FluxContainer.vue +1 -1
  77. package/src/component/FluxDataTable.vue +1 -2
  78. package/src/component/FluxDatePicker.vue +3 -3
  79. package/src/component/FluxDestructiveButton.vue +1 -1
  80. package/src/component/FluxDisabled.vue +1 -1
  81. package/src/component/FluxDivider.vue +2 -2
  82. package/src/component/FluxDotPattern.vue +1 -1
  83. package/src/component/FluxDropZone.vue +4 -4
  84. package/src/component/FluxExpandable.vue +3 -3
  85. package/src/component/FluxExpandableGroup.vue +2 -2
  86. package/src/component/FluxFader.vue +1 -1
  87. package/src/component/FluxFaderItem.vue +1 -1
  88. package/src/component/FluxFilter.vue +2 -2
  89. package/src/component/FluxFilterBar.vue +5 -6
  90. package/src/component/FluxFilterBase.vue +2 -2
  91. package/src/component/FluxFilterDate.vue +2 -2
  92. package/src/component/FluxFilterDateRange.vue +2 -2
  93. package/src/component/FluxFilterOption.vue +2 -2
  94. package/src/component/FluxFilterOptionAsync.vue +1 -1
  95. package/src/component/FluxFilterOptions.vue +2 -2
  96. package/src/component/FluxFilterOptionsAsync.vue +1 -1
  97. package/src/component/FluxFilterRange.vue +2 -2
  98. package/src/component/FluxFilterWindow.vue +3 -3
  99. package/src/component/FluxFlickeringGrid.vue +1 -1
  100. package/src/component/FluxFlyout.vue +2 -2
  101. package/src/component/FluxFocalPointEditor.vue +3 -3
  102. package/src/component/FluxFocalPointImage.vue +1 -1
  103. package/src/component/FluxForm.vue +1 -1
  104. package/src/component/FluxFormColumn.vue +1 -1
  105. package/src/component/FluxFormDateInput.vue +3 -3
  106. package/src/component/FluxFormDateRangeInput.vue +4 -4
  107. package/src/component/FluxFormDateTimeInput.vue +3 -3
  108. package/src/component/FluxFormField.vue +3 -3
  109. package/src/component/FluxFormFieldAddition.vue +1 -1
  110. package/src/component/FluxFormGrid.vue +1 -1
  111. package/src/component/FluxFormInput.vue +3 -3
  112. package/src/component/FluxFormInputAddition.vue +2 -2
  113. package/src/component/FluxFormInputGroup.vue +2 -2
  114. package/src/component/FluxFormPinInput.vue +3 -3
  115. package/src/component/FluxFormRangeSlider.vue +3 -3
  116. package/src/component/FluxFormRow.vue +1 -1
  117. package/src/component/FluxFormSection.vue +1 -1
  118. package/src/component/FluxFormSelect.vue +4 -4
  119. package/src/component/FluxFormSelectAsync.vue +6 -6
  120. package/src/component/FluxFormSlider.vue +2 -2
  121. package/src/component/FluxFormTextArea.vue +2 -2
  122. package/src/component/FluxFormTimeZonePicker.vue +4 -4
  123. package/src/component/FluxFormTreeViewSelect.vue +9 -12
  124. package/src/component/FluxGallery.vue +3 -3
  125. package/src/component/FluxGalleryItem.vue +1 -1
  126. package/src/component/FluxGrid.vue +1 -1
  127. package/src/component/FluxGridColumn.vue +1 -1
  128. package/src/component/FluxGridPattern.vue +1 -1
  129. package/src/component/FluxIcon.vue +2 -2
  130. package/src/component/FluxInfo.vue +2 -2
  131. package/src/component/FluxItem.vue +1 -1
  132. package/src/component/FluxItemActions.vue +1 -1
  133. package/src/component/FluxItemContent.vue +1 -1
  134. package/src/component/FluxItemMedia.vue +1 -1
  135. package/src/component/FluxItemStack.vue +1 -1
  136. package/src/component/FluxKanban.vue +78 -7
  137. package/src/component/FluxKanbanColumn.vue +225 -32
  138. package/src/component/FluxKanbanItem.vue +162 -0
  139. package/src/component/FluxLayerPane.vue +1 -1
  140. package/src/component/FluxLayerPaneSecondary.vue +1 -1
  141. package/src/component/FluxLegend.vue +1 -1
  142. package/src/component/FluxLink.vue +1 -1
  143. package/src/component/FluxMenu.vue +1 -1
  144. package/src/component/FluxMenuCollapsible.vue +3 -3
  145. package/src/component/FluxMenuGroup.vue +1 -1
  146. package/src/component/FluxMenuItem.vue +2 -2
  147. package/src/component/FluxMenuSubHeader.vue +1 -1
  148. package/src/component/FluxMenuTitle.vue +1 -1
  149. package/src/component/FluxNotice.vue +3 -3
  150. package/src/component/FluxOverflowBar.vue +1 -1
  151. package/src/component/FluxOverlay.vue +3 -3
  152. package/src/component/FluxOverlayProvider.vue +2 -2
  153. package/src/component/FluxPagination.vue +3 -3
  154. package/src/component/FluxPaginationBar.vue +2 -2
  155. package/src/component/FluxPaginationButton.vue +1 -1
  156. package/src/component/FluxPane.vue +1 -1
  157. package/src/component/FluxPaneBody.vue +1 -1
  158. package/src/component/FluxPaneFooter.vue +1 -1
  159. package/src/component/FluxPaneGroup.vue +1 -1
  160. package/src/component/FluxPaneHeader.vue +2 -2
  161. package/src/component/FluxPaneIllustration.vue +1 -1
  162. package/src/component/FluxPaneMedia.vue +1 -1
  163. package/src/component/FluxPercentageBar.vue +1 -1
  164. package/src/component/FluxPersona.vue +1 -1
  165. package/src/component/FluxPlaceholder.vue +1 -1
  166. package/src/component/FluxPressable.vue +1 -1
  167. package/src/component/FluxPrimaryButton.vue +1 -1
  168. package/src/component/FluxPrimaryLinkButton.vue +1 -1
  169. package/src/component/FluxProgressBar.vue +2 -2
  170. package/src/component/FluxPrompt.vue +1 -1
  171. package/src/component/FluxPublishButton.vue +1 -1
  172. package/src/component/FluxQuantitySelector.vue +2 -2
  173. package/src/component/FluxRemove.vue +2 -2
  174. package/src/component/FluxRoot.vue +2 -2
  175. package/src/component/FluxRow.vue +1 -1
  176. package/src/component/FluxSecondaryButton.vue +1 -1
  177. package/src/component/FluxSecondaryLinkButton.vue +1 -1
  178. package/src/component/FluxSegmentedControl.vue +1 -1
  179. package/src/component/FluxSeparator.vue +1 -1
  180. package/src/component/FluxSlideOver.vue +3 -3
  181. package/src/component/FluxSnackbar.vue +2 -2
  182. package/src/component/FluxSnackbarProvider.vue +2 -2
  183. package/src/component/FluxSpacer.vue +1 -1
  184. package/src/component/FluxSpinner.vue +1 -1
  185. package/src/component/FluxSplitButton.vue +2 -2
  186. package/src/component/FluxStack.vue +2 -2
  187. package/src/component/FluxStatistic.vue +2 -2
  188. package/src/component/FluxStepper.vue +1 -1
  189. package/src/component/FluxStepperStep.vue +1 -1
  190. package/src/component/FluxStepperSteps.vue +2 -2
  191. package/src/component/FluxTab.vue +2 -2
  192. package/src/component/FluxTabBar.vue +75 -7
  193. package/src/component/FluxTabBarItem.vue +35 -4
  194. package/src/component/FluxTable.vue +3 -4
  195. package/src/component/FluxTableActions.vue +1 -1
  196. package/src/component/FluxTableBar.vue +3 -3
  197. package/src/component/FluxTableCell.vue +3 -3
  198. package/src/component/FluxTableHeader.vue +3 -3
  199. package/src/component/FluxTableRow.vue +1 -1
  200. package/src/component/FluxTabs.vue +10 -4
  201. package/src/component/FluxTag.vue +2 -2
  202. package/src/component/FluxTicks.vue +1 -1
  203. package/src/component/FluxTimeline.vue +1 -1
  204. package/src/component/FluxTimelineItem.vue +2 -2
  205. package/src/component/FluxToggle.vue +2 -2
  206. package/src/component/FluxToolbar.vue +2 -2
  207. package/src/component/FluxTooltip.vue +1 -1
  208. package/src/component/FluxTooltipProvider.vue +3 -3
  209. package/src/component/FluxTreeView.vue +3 -4
  210. package/src/component/FluxWindow.vue +1 -1
  211. package/src/component/calendar/FluxCalendarItemDisplay.vue +117 -0
  212. package/src/component/calendar/FluxCalendarMonthView.vue +134 -0
  213. package/src/component/calendar/FluxCalendarTimeGridView.vue +550 -0
  214. package/src/component/calendar/index.ts +3 -0
  215. package/src/component/index.ts +2 -2
  216. package/src/component/primitive/CoordinatePicker.vue +2 -2
  217. package/src/component/primitive/CoordinatePickerThumb.vue +2 -2
  218. package/src/component/primitive/DialogLayout.vue +1 -1
  219. package/src/component/primitive/FilterBadge.vue +2 -2
  220. package/src/component/primitive/FilterItem.vue +1 -1
  221. package/src/component/primitive/FilterMenuRenderer.ts +2 -2
  222. package/src/component/primitive/FilterOptionBase.vue +6 -6
  223. package/src/component/primitive/SelectBase.vue +13 -13
  224. package/src/component/primitive/SliderBase.vue +3 -3
  225. package/src/component/primitive/SliderThumb.vue +2 -2
  226. package/src/component/primitive/SliderTrack.vue +1 -1
  227. package/src/component/primitive/TreeNodeRenderer.vue +3 -4
  228. package/src/component/primitive/VNodeRenderer.ts +1 -2
  229. package/src/composable/index.ts +3 -0
  230. package/src/composable/private/index.ts +5 -8
  231. package/src/composable/private/useAsyncFilterOptions.ts +9 -15
  232. package/src/composable/private/useCommandPalette.ts +2 -2
  233. package/src/composable/private/useDateFlyout.ts +1 -1
  234. package/src/composable/private/useDropdownPopup.ts +1 -1
  235. package/src/composable/private/useFilterOption.ts +2 -2
  236. package/src/composable/private/useFormSelect.ts +2 -3
  237. package/src/composable/private/useKanban.ts +528 -25
  238. package/src/composable/private/useKanbanAutoScroll.ts +95 -0
  239. package/src/composable/private/useTranslate.ts +1 -2
  240. package/src/composable/private/useTreeView.ts +1 -1
  241. package/src/composable/useAdaptiveGroupInjection.ts +1 -1
  242. package/src/composable/useBreakpoints.ts +1 -2
  243. package/src/composable/useCalendarInjection.ts +6 -0
  244. package/src/composable/useDisabled.ts +1 -2
  245. package/src/composable/useDisabledInjection.ts +1 -1
  246. package/src/composable/useExpandableGroupInjection.ts +1 -1
  247. package/src/composable/useFilterInjection.ts +1 -1
  248. package/src/composable/useFlyoutInjection.ts +1 -1
  249. package/src/composable/useFormFieldInjection.ts +1 -1
  250. package/src/composable/useKanbanInjection.ts +12 -0
  251. package/src/composable/useTabBarInjection.ts +10 -0
  252. package/src/composable/useTableInjection.ts +1 -1
  253. package/src/composable/useTooltipInjection.ts +1 -1
  254. package/src/css/component/Action.module.scss +1 -1
  255. package/src/css/component/AdaptiveSlot.module.scss +5 -7
  256. package/src/css/component/Avatar.module.scss +1 -1
  257. package/src/css/component/Badge.module.scss +1 -1
  258. package/src/css/component/Button.module.scss +1 -1
  259. package/src/css/component/Calendar.module.scss +274 -44
  260. package/src/css/component/Chip.module.scss +1 -1
  261. package/src/css/component/Color.module.scss +1 -1
  262. package/src/css/component/CommandPalette.module.scss +1 -1
  263. package/src/css/component/DatePicker.module.scss +1 -1
  264. package/src/css/component/Expandable.module.scss +1 -1
  265. package/src/css/component/Form.module.scss +1 -1
  266. package/src/css/component/Gallery.module.scss +1 -1
  267. package/src/css/component/Grid.module.scss +1 -1
  268. package/src/css/component/Item.module.scss +1 -1
  269. package/src/css/component/Kanban.module.scss +189 -0
  270. package/src/css/component/Layout.module.scss +1 -1
  271. package/src/css/component/Menu.module.scss +1 -1
  272. package/src/css/component/Notice.module.scss +1 -1
  273. package/src/css/component/Overlay.module.scss +4 -4
  274. package/src/css/component/Pagination.module.scss +1 -1
  275. package/src/css/component/Pane.module.scss +2 -1
  276. package/src/css/component/Placeholder.module.scss +1 -1
  277. package/src/css/component/Remove.module.scss +1 -1
  278. package/src/css/component/SegmentedControl.module.scss +1 -1
  279. package/src/css/component/Snackbar.module.scss +1 -1
  280. package/src/css/component/Tab.module.scss +138 -34
  281. package/src/css/component/Table.module.scss +1 -1
  282. package/src/css/component/TreeView.module.scss +1 -1
  283. package/src/css/component/TreeViewSelect.module.scss +1 -1
  284. package/src/css/component/base/Button.module.scss +1 -1
  285. package/src/css/component/primitive/Slider.module.scss +1 -1
  286. package/src/css/component/primitive/TreeNode.module.scss +1 -1
  287. package/src/css/variables.scss +2 -2
  288. package/src/data/di.ts +94 -8
  289. package/src/data/filter.ts +4 -4
  290. package/src/data/i18n.ts +4 -0
  291. package/src/data/store.ts +1 -2
  292. package/src/transition/FluxBreakthroughTransition.vue +1 -1
  293. package/src/transition/FluxFadeTransition.vue +1 -1
  294. package/src/transition/FluxOverlayTransition.vue +1 -1
  295. package/src/transition/FluxRouteTransition.vue +1 -1
  296. package/src/transition/FluxSlideOverTransition.vue +1 -1
  297. package/src/transition/FluxTooltipTransition.vue +1 -1
  298. package/src/transition/FluxVerticalWindowTransition.vue +1 -1
  299. package/src/transition/FluxWindowTransition.vue +1 -1
  300. package/src/util/createDialogRenderer.ts +3 -4
  301. package/src/util/createLabelForDateRange.ts +1 -1
  302. package/src/component/FluxCalendarEvent.vue +0 -42
  303. package/src/component/FluxKanbanCard.vue +0 -105
  304. package/src/css/component/FluxKanban.module.scss +0 -7
  305. package/src/css/component/FluxKanbanCard.module.scss +0 -35
  306. package/src/css/component/FluxKanbanColumn.module.scss +0 -49
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;
3640
- }
3641
- .date-picker-header-view-button:first-child {
3642
- color: var(--foreground-prominent);
3643
- }
3644
- .date-picker-header-view-button:last-child {
3645
- color: var(--foreground-secondary);
3701
+ .comment.is-typing .comment-content {
3702
+ width: min-content;
3646
3703
  }
3647
- @media (hover: hover) {
3648
- .date-picker-header-view-button:hover {
3649
- color: var(--primary-600);
3650
- }
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;
3651
3712
  }
3652
3713
 
3653
- .date-picker-date {
3714
+ .comment-footer {
3654
3715
  display: flex;
3655
- padding: 0;
3656
3716
  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;
3665
- outline: 0;
3666
- transition: var(--transition-default);
3667
- transition-property: background, border-radius, color, opacity;
3717
+ gap: 12px;
3718
+ justify-content: flex-end;
3719
+ font-size: 12px;
3720
+ font-weight: 500;
3668
3721
  }
3669
- @media (hover: hover) {
3670
- .date-picker-date:hover {
3671
- background: var(--gray-100);
3672
- color: var(--foreground-prominent);
3673
- }
3674
- }
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;
3677
- pointer-events: none;
3678
- }
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;
3686
- }
3687
- .date-picker-date.is-range-entry {
3688
- background: var(--primary-200);
3689
- border-radius: 0;
3690
- color: var(--primary-950);
3691
- }
3692
- .date-picker-date.is-range-end, .date-picker-date.is-range-start {
3693
- 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);
3700
- }
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);
3704
- }
3705
- .date-picker-date.is-selection-entry {
3706
- background: var(--gray-100);
3707
- border-radius: 0;
3708
- color: var(--foreground-prominent);
3722
+ .comment-footer span {
3723
+ margin-right: auto;
3709
3724
  }
3710
- .date-picker-date.is-selection-end, .date-picker-date.is-selection-start {
3711
- background: var(--gray-200);
3712
- font-weight: 700;
3725
+ .comment-footer time {
3726
+ color: var(--foreground-secondary);
3713
3727
  }
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);
3728
+
3729
+ [dark] .comment-content {
3730
+ background: linear-gradient(to bottom, var(--gray-50), var(--gray-25));
3717
3731
  }
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);
3732
+
3733
+ [dark] .comment.is-received .comment-content {
3734
+ background: linear-gradient(to bottom, var(--gray-100), var(--gray-50));
3721
3735
  }
3722
3736
 
3723
- .date-picker-dates {
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 {
3724
3759
  position: relative;
3760
+ display: flex;
3761
+ margin: 6px;
3762
+ flex-flow: column;
3763
+ gap: 9px;
3764
+ touch-action: pan-y;
3725
3765
  }
3726
-
3727
- .date-picker-dates-grid {
3728
- display: grid;
3729
- gap: 3px 0;
3730
- grid-template-columns: repeat(7, 1fr);
3766
+ .slider.is-disabled {
3767
+ cursor: not-allowed;
3731
3768
  }
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;
3769
+ .slider.is-dragging {
3770
+ cursor: grabbing;
3740
3771
  }
3741
3772
 
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);
3751
- }
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);
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);
3767
3782
  border-radius: var(--radius-full);
3768
- color: var(--foreground);
3783
+ box-shadow: var(--shadow-sm);
3784
+ cursor: grab;
3785
+ outline: 0;
3786
+ translate: -50% -50%;
3769
3787
  transition: var(--transition-default);
3770
- transition-property: background, border, color, outline-color, outline-offset;
3771
- }
3772
- .chip.is-selectable {
3773
- cursor: pointer;
3788
+ transition-property: outline-color, outline-offset;
3774
3789
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
3775
3790
  outline-offset: 0;
3776
3791
  }
3777
- .chip.is-selectable:focus-visible {
3792
+ .slider-thumb:focus-visible {
3778
3793
  outline-color: var(--primary-600);
3779
3794
  outline-offset: 2px;
3780
3795
  }
3781
3796
  @media (hover: hover) {
3782
- .chip.is-selectable:hover {
3783
- background: var(--gray-100);
3797
+ .slider-thumb:hover {
3798
+ background-color: var(--surface-hover);
3784
3799
  }
3785
3800
  }
3786
- .chip.is-selected {
3787
- background: var(--primary-50);
3788
- border-color: var(--primary-200);
3789
- color: var(--primary-600);
3801
+ .slider-thumb.is-disabled {
3802
+ background-color: var(--surface-disabled);
3803
+ box-shadow: none;
3804
+ pointer-events: none;
3790
3805
  }
3791
- @media (hover: hover) {
3792
- .chip.is-selected:hover {
3793
- background: var(--primary-100);
3794
- }
3806
+ .slider-thumb.is-dragging {
3807
+ box-shadow: var(--shadow-md);
3808
+ cursor: grabbing;
3795
3809
  }
3796
- .chip :is(span) {
3797
- font-size: 14px;
3798
- 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;
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);
3807
3818
  }
3808
- .command-palette-backdrop.is-closing {
3809
- animation: command-palette-backdrop-out 210ms var(--swift-out) both;
3819
+
3820
+ .slider-track-value {
3821
+ position: absolute;
3822
+ display: block;
3823
+ top: 0;
3824
+ height: inherit;
3825
+ background: var(--primary-600);
3826
+ border-radius: inherit;
3810
3827
  }
3811
3828
 
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;
3818
- justify-content: center;
3819
- animation: command-palette-in 300ms var(--swift-out) both;
3820
- z-index: 99001;
3829
+ .slider.is-disabled .slider-track-value {
3830
+ background: var(--gray-300);
3821
3831
  }
3822
- .command-palette-dialog.is-closing {
3823
- animation: command-palette-out 210ms var(--swift-out) both;
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);
3841
+ color: var(--foreground-prominent);
3842
+ font-size: 10px;
3843
+ font-weight: 600;
3824
3844
  pointer-events: none;
3825
3845
  }
3826
3846
 
3827
- .command-palette {
3828
- 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);
3847
+ .tick-large {
3839
3848
  }
3840
-
3841
- .command-palette-search {
3842
- 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);
3849
+ .tick-large :is(span) {
3850
+ position: relative;
3851
+ display: inline-block;
3852
+ translate: -50% -100%;
3849
3853
  }
3850
3854
 
3851
- .command-palette-search-icon {
3852
- flex-shrink: 0;
3853
- color: var(--foreground-secondary);
3854
- font-size: 16px;
3855
+ .tick-small {
3856
+ height: 6px;
3857
+ opacity: 0.5;
3855
3858
  }
3856
3859
 
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;
3866
- }
3867
- .command-palette-search-input::placeholder {
3868
- color: var(--foreground-secondary);
3860
+ .ticks {
3861
+ position: relative;
3862
+ display: block;
3863
+ height: 21px;
3864
+ }.coordinate-picker {
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;
3869
3871
  }
3870
3872
 
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;
3883
- }
3884
- @media (hover: hover) {
3885
- .command-palette-breadcrumb:hover {
3886
- color: var(--foreground);
3887
- }
3873
+ .coordinate-picker-thumb {
3874
+ z-index: 1;
3888
3875
  }
3889
-
3890
- .command-palette-breadcrumb-separator {
3891
- flex-shrink: 0;
3892
- opacity: 0.5;
3893
- color: var(--foreground-secondary);
3894
- font-size: 14px;
3876
+ .coordinate-picker-thumb.is-disabled {
3877
+ counter-reset: t;
3895
3878
  }
3896
-
3897
- .command-palette-tabs {
3898
- display: flex;
3899
- overflow-x: auto;
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;
3900
3887
  scrollbar-width: none;
3901
- padding: 6px 15px;
3902
- flex-shrink: 0;
3903
- gap: 3px;
3904
- border-bottom: 1px solid var(--gray-100);
3888
+ transition: height 150ms var(--deceleration-curve);
3889
+ z-index: 0;
3905
3890
  }
3906
- .command-palette-tabs::-webkit-scrollbar {
3891
+ .filter::-webkit-scrollbar {
3907
3892
  display: none;
3893
+ height: 0;
3894
+ width: 0;
3895
+ }
3896
+ .filter .menu > :where(.divider, .separator) {
3897
+ margin: 3px -9px;
3898
+ }
3899
+ .filter .menu > .menu-group > .menu-sub-header {
3900
+ top: 51px;
3901
+ }
3902
+ .filter .menu > .menu-group:has(.filter-search) > .menu-sub-header {
3903
+ top: 105px;
3904
+ }
3905
+ .filter .menu .menu-item-label {
3906
+ min-width: 0;
3907
+ overflow: hidden;
3908
+ text-overflow: ellipsis;
3909
+ white-space: nowrap;
3910
+ }
3911
+ .filter .pane-body {
3912
+ margin: -9px;
3908
3913
  }
3909
3914
 
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;
3915
+ .filter-badge {
3916
+ padding-left: 6px;
3917
+ padding-right: 6px;
3918
+ background: var(--primary-50);
3919
+ border: 1px dashed var(--primary-300);
3923
3920
  font-weight: 500;
3924
- white-space: nowrap;
3925
- transition: background 150ms, color 150ms;
3926
3921
  }
3927
- @media (hover: hover) {
3928
- .command-palette-tab:hover {
3929
- background: var(--gray-100);
3930
- color: var(--foreground);
3931
- }
3922
+ .filter-badge .badge-label {
3923
+ color: var(--primary-900);
3932
3924
  }
3933
3925
 
3934
- .command-palette-tab-active {
3935
- background: var(--primary-100);
3936
- color: var(--primary-700);
3926
+ .filter-button {
3927
+ border: 1px solid var(--surface-stroke);
3928
+ box-shadow: none;
3937
3929
  }
3938
- @media (hover: hover) {
3939
- .command-palette-tab-active:hover {
3940
- background: var(--primary-100);
3941
- color: var(--primary-700);
3942
- }
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;
3943
3936
  }
3944
3937
 
3945
- .command-palette-tab-icon {
3946
- font-size: 13px;
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);
3947
3950
  }
3948
3951
 
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;
3952
+ .filter-back {
3955
3953
  flex-grow: 1;
3956
3954
  }
3957
3955
 
3958
- .command-palette-loading {
3959
- display: flex;
3960
- padding: 24px;
3961
- align-items: center;
3956
+ .filter-reset {
3957
+ width: 42px;
3962
3958
  justify-content: center;
3963
3959
  }
3964
3960
 
3965
- .command-palette-empty {
3961
+ .filter-date-picker {
3962
+ margin: -9px;
3963
+ }
3964
+
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 {
3966
3978
  display: flex;
3967
- padding: 24px;
3968
- align-items: center;
3969
- justify-content: center;
3970
- color: var(--foreground-secondary);
3971
- font-size: 14px;
3979
+ flex-flow: row nowrap;
3980
+ flex-grow: 1;
3981
+ gap: 15px;
3972
3982
  }
3973
3983
 
3974
- .command-palette-group {
3984
+ .filter-bar-search {
3985
+ max-width: 300px;
3986
+ }.menu {
3975
3987
  display: flex;
3976
- padding: 9px 10px 3px;
3977
- align-items: center;
3988
+ flex-flow: column;
3989
+ }
3990
+
3991
+ .menu-normal {
3978
3992
  gap: 6px;
3979
- 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;
3985
3993
  }
3986
3994
 
3987
- .command-palette-group-icon {
3988
- font-size: 12px;
3995
+ .menu-large {
3996
+ gap: 9px;
3989
3997
  }
3990
3998
 
3991
- .command-palette-item {
3999
+ .menu-group {
4000
+ counter-reset: menu-group;
4001
+ }
4002
+
4003
+ .menu-group-horizontal {
3992
4004
  display: flex;
3993
- width: 100%;
3994
- padding: 8px 10px;
3995
- align-items: center;
3996
- gap: 10px;
3997
- background: transparent;
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;
3998
4019
  border: 0;
3999
- border-radius: var(--radius-half);
4000
- cursor: pointer;
4020
+ box-shadow: none;
4001
4021
  color: var(--foreground);
4002
- font: inherit;
4003
- font-size: 14px;
4004
4022
  text-align: left;
4005
- transition: background 100ms;
4006
4023
  }
4007
4024
  @media (hover: hover) {
4008
- .command-palette-item:hover {
4025
+ .menu-item:hover {
4009
4026
  background: var(--gray-100);
4010
4027
  }
4011
4028
  }
4012
- .command-palette-item:active {
4029
+ .menu-item:active {
4013
4030
  background: var(--gray-200);
4014
4031
  }
4015
-
4016
- .command-palette-item-highlighted {
4017
- background: var(--gray-100);
4032
+ .menu-item .badge:last-child {
4033
+ margin-right: -6px;
4018
4034
  }
4019
- @media (hover: hover) {
4020
- .command-palette-item-highlighted:hover {
4021
- background: var(--gray-100);
4022
- }
4035
+
4036
+ .menu-item-icon {
4023
4037
  }
4024
4038
 
4025
- .command-palette-item-icon {
4026
- display: flex;
4027
- width: 30px;
4028
- height: 30px;
4029
- 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;
4039
+ .menu-item-label {
4040
+ flex-grow: 1;
4041
+ font-weight: 400;
4042
+ text-align: left;
4037
4043
  }
4038
- .command-palette-item-icon .icon {
4039
- font-size: 16px;
4044
+ .menu-item-label:only-child {
4045
+ margin-left: 0;
4046
+ margin-right: 0;
4047
+ min-width: unset;
4040
4048
  }
4041
4049
 
4042
- .command-palette-item-highlighted .command-palette-item-icon {
4043
- background: var(--gray-200);
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);
4056
+ }
4057
+ @media (hover: hover) {
4058
+ .menu-item-active:hover {
4059
+ background: var(--primary-600);
4060
+ }
4061
+ }
4062
+ .menu-item-active:active {
4063
+ background: var(--primary-600);
4044
4064
  }
4045
4065
 
4046
- .command-palette-item-content {
4047
- overflow: hidden;
4048
- flex-grow: 1;
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);
4049
4071
  }
4050
4072
 
4051
- .command-palette-item-label {
4052
- overflow: hidden;
4053
- white-space: nowrap;
4054
- text-overflow: ellipsis;
4073
+ .menu-item-highlighted {
4074
+ background: var(--primary-100);
4075
+ color: var(--primary-600);
4076
+ }
4077
+ .menu-item-highlighted .menu-item-icon {
4078
+ color: var(--primary-700);
4079
+ }
4080
+ @media (hover: hover) {
4081
+ .menu-item-highlighted:hover {
4082
+ background: var(--primary-100);
4083
+ }
4084
+ }
4085
+ .menu-item-highlighted:active {
4086
+ background: var(--primary-100);
4087
+ }
4088
+ .menu-item-highlighted .badge {
4089
+ --surface-stroke: var(--primary-200);
4055
4090
  }
4056
4091
 
4057
- .command-palette-item-sub-label {
4092
+ .menu-item-indented {
4093
+ margin-left: 33px;
4094
+ }
4095
+
4096
+ .menu-collapsible {
4097
+ display: flex;
4098
+ flex-flow: column;
4099
+ }
4100
+
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 {
4058
4125
  overflow: hidden;
4126
+ }
4127
+
4128
+ .menu-collapsible-content {
4129
+ display: flex;
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 {
4059
4145
  margin-top: 1px;
4146
+ margin-left: auto;
4147
+ padding-left: 6px;
4060
4148
  color: var(--foreground-secondary);
4061
- font-size: 12px;
4149
+ font: inherit;
4150
+ font-size: 14px;
4062
4151
  white-space: nowrap;
4063
- text-overflow: ellipsis;
4064
- transition: color 100ms;
4065
4152
  }
4066
4153
 
4067
- .command-palette-item-highlighted .command-palette-item-sub-label {
4068
- color: var(--primary-500);
4154
+ .menu-item-command-icon {
4155
+ margin-right: -6px;
4156
+ color: var(--foreground-secondary);
4157
+ }
4158
+ .menu-item-command-icon.icon {
4159
+ font-size: 16px;
4069
4160
  }
4070
4161
 
4071
- .command-palette-item-sub-action-indicator {
4072
- flex-shrink: 0;
4073
- color: var(--foreground-secondary);
4074
- font-size: 12px;
4075
- transition: color 100ms;
4162
+ .menu-item-command + .menu-item-command-icon {
4163
+ margin-left: -9px;
4076
4164
  }
4077
4165
 
4078
- .command-palette-item-highlighted .command-palette-item-sub-action-indicator {
4079
- color: var(--primary-500);
4166
+ .menu-item-active .menu-item-command,
4167
+ .menu-item-active .menu-item-command-icon {
4168
+ color: var(--primary-300);
4080
4169
  }
4081
4170
 
4082
- @keyframes command-palette-in {
4083
- from {
4084
- opacity: 0;
4085
- scale: 1.05;
4086
- }
4087
- to {
4088
- opacity: 1;
4089
- scale: 1;
4090
- }
4171
+ .menu-item-image {
4172
+ margin-left: -2px;
4173
+ margin-right: -2px;
4174
+ height: 24px;
4175
+ width: 24px;
4176
+ border-radius: 3px;
4091
4177
  }
4092
- @keyframes command-palette-out {
4093
- from {
4094
- opacity: 1;
4095
- }
4096
- to {
4097
- opacity: 0;
4098
- }
4178
+
4179
+ .menu-item .avatar {
4180
+ margin: -3px;
4181
+ font-size: 24px;
4099
4182
  }
4100
- @keyframes command-palette-backdrop-in {
4101
- from {
4102
- opacity: 0;
4103
- }
4104
- to {
4105
- opacity: 1;
4106
- }
4183
+
4184
+ .menu-group-horizontal .menu-item {
4185
+ flex-basis: 0;
4186
+ flex-grow: 1;
4107
4187
  }
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);
4188
+ .menu-group-horizontal .menu-item:has(.menu-item-icon:only-child) {
4189
+ justify-content: center;
4121
4190
  }
4122
- .comment .avatar {
4123
- align-self: end;
4124
- grid-column: 2;
4125
- grid-row: 1;
4191
+
4192
+ .menu-title {
4193
+ padding: 0 12px;
4194
+ color: var(--foreground-prominent);
4195
+ font-size: 18px;
4196
+ font-weight: 700;
4126
4197
  }
4127
- .comment .comment-content {
4128
- grid-column: 1;
4129
- grid-row: 1;
4198
+
4199
+ .menu-sub-header {
4200
+ position: sticky;
4201
+ display: flex;
4202
+ top: 0;
4203
+ margin-top: -9px;
4204
+ margin-bottom: -3px;
4205
+ padding: 12px 12px 6px;
4206
+ align-items: center;
4207
+ gap: 9px;
4208
+ background: linear-gradient(to bottom, var(--surface) 75%, transparent);
4209
+ pointer-events: none;
4210
+ z-index: 1;
4130
4211
  }
4131
- .comment .comment-footer {
4132
- grid-column: 1;
4133
- grid-row: 2;
4212
+
4213
+ .menu-sub-header-icon,
4214
+ .menu-sub-header-label {
4215
+ color: var(--foreground-secondary);
4134
4216
  }
4135
- .comment.is-received {
4136
- grid-template-columns: auto 1fr;
4217
+
4218
+ .menu-sub-header-icon {
4219
+ font-size: 16px;
4137
4220
  }
4138
- .comment.is-received .avatar {
4139
- grid-column: 1;
4221
+
4222
+ .menu-sub-header-label {
4223
+ flex-grow: 1;
4224
+ font-size: 14px;
4140
4225
  }
4141
- .comment.is-received .comment-content {
4142
- grid-column: 2;
4226
+
4227
+ .menu-item + .menu-sub-header {
4228
+ margin-top: 9px;
4143
4229
  }
4144
- .comment.is-received .comment-footer {
4145
- grid-column: 2;
4230
+
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);
4146
4248
  }
4147
4249
 
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);
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);
4155
4255
  }
4156
4256
 
4157
- .comment:not(.is-received) .comment-content {
4158
- border-bottom-right-radius: var(--radius);
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);
4159
4266
  }
4160
4267
 
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);
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;
4165
4280
  }
4166
4281
 
4167
- .comment.is-typing .comment-content {
4168
- width: min-content;
4282
+ .expandable-body > .menu {
4283
+ margin-left: 9px;
4284
+ margin-right: 9px;
4285
+ }
4286
+ .expandable-body > .menu:last-child {
4287
+ margin-bottom: 9px;
4288
+ }
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;
4169
4306
  }
4170
4307
 
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;
4308
+ .tree-node-line-area {
4309
+ display: flex;
4310
+ align-self: stretch;
4311
+ flex-shrink: 0;
4178
4312
  }
4179
4313
 
4180
- .comment-footer {
4314
+ .tree-indent {
4315
+ position: relative;
4316
+ width: 20px;
4317
+ align-self: stretch;
4318
+ flex-shrink: 0;
4319
+ pointer-events: none;
4320
+ }
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);
4329
+ }
4330
+
4331
+ .tree-connector {
4332
+ position: relative;
4333
+ width: 20px;
4334
+ align-self: stretch;
4335
+ flex-shrink: 0;
4336
+ pointer-events: none;
4337
+ }
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);
4346
+ }
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;
4357
+ }
4358
+
4359
+ .tree-node-expand {
4181
4360
  display: flex;
4361
+ width: 16px;
4362
+ flex-shrink: 0;
4182
4363
  align-items: center;
4183
- gap: 12px;
4184
- justify-content: flex-end;
4185
- font-size: 12px;
4186
- font-weight: 500;
4364
+ justify-content: center;
4365
+ color: var(--foreground-secondary);
4187
4366
  }
4188
- .comment-footer span {
4189
- margin-right: auto;
4367
+ .tree-node-expand:not(:empty) {
4368
+ cursor: pointer;
4190
4369
  }
4191
- .comment-footer time {
4370
+
4371
+ .tree-node-color-dot {
4372
+ display: block;
4373
+ width: 8px;
4374
+ height: 8px;
4375
+ border-radius: 50%;
4376
+ flex-shrink: 0;
4377
+ }
4378
+
4379
+ .tree-node-icon {
4192
4380
  color: var(--foreground-secondary);
4381
+ flex-shrink: 0;
4193
4382
  }
4194
4383
 
4195
- [dark] .comment-content {
4196
- background: linear-gradient(to bottom, var(--gray-50), var(--gray-25));
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;
4197
4397
  }
4198
4398
 
4199
- [dark] .comment.is-received .comment-content {
4200
- background: linear-gradient(to bottom, var(--gray-100), var(--gray-50));
4399
+ .divider-content-start {
4400
+ justify-items: start;
4201
4401
  }
4202
4402
 
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 {
4403
+ .divider-content-center {
4404
+ justify-items: center;
4405
+ }
4406
+
4407
+ .divider-content-end {
4408
+ justify-items: end;
4409
+ }
4410
+
4411
+ .divider-content {
4225
4412
  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;
4413
+ display: flex;
4414
+ }
4415
+ .divider-content::before, .divider-content::after {
4416
+ position: absolute;
4417
+ display: block;
4418
+ top: 50%;
4419
+ translate: 0 -50%;
4420
+ }
4421
+ .divider-content::before {
4422
+ left: -100dvh;
4423
+ right: calc(100% + 15px);
4424
+ }
4425
+ .divider-content::after {
4426
+ left: calc(100% + 15px);
4427
+ right: -100dvh;
4428
+ }
4429
+
4430
+ .divider-line {
4431
+ width: 100%;
4432
+ border: 0;
4231
4433
  }
4232
4434
 
4233
- .coordinate-picker-thumb {
4234
- z-index: 1;
4435
+ .divider-content::before,
4436
+ .divider-content::after,
4437
+ .divider-line {
4438
+ height: 1px;
4439
+ content: "";
4440
+ background: var(--gray-100);
4235
4441
  }
4236
- .coordinate-picker-thumb.is-disabled {
4237
- counter-reset: t;
4442
+
4443
+ .separator {
4444
+ background: var(--gray-200);
4238
4445
  }
4239
- .coordinate-picker-thumb.is-dragging {
4240
- counter-reset: t;
4446
+
4447
+ .separator-horizontal {
4448
+ height: 1px;
4449
+ }
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;
@@ -5243,89 +5455,196 @@ tfoot .table-cell {
5243
5455
  .info-body {
5244
5456
  align-items: center;
5245
5457
  }.kanban {
5246
- display: flex;
5247
- flex-flow: row;
5248
- gap: 15px;
5249
- overflow-x: auto;
5250
- padding-bottom: 6px;
5251
- }.kanban-card {
5252
5458
  position: relative;
5253
- padding: 12px;
5254
- background: var(--gray-25);
5255
- border: 1px solid var(--gray-200);
5256
- border-radius: var(--radius);
5257
- cursor: grab;
5258
- transition: opacity 180ms var(--swift-out), box-shadow 180ms var(--swift-out);
5259
- user-select: none;
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;
5467
+ overflow-x: auto;
5260
5468
  }
5261
- .kanban-card:active {
5262
- cursor: grabbing;
5469
+
5470
+ .kanban-live-region {
5471
+ position: absolute;
5472
+ grid-row: 1;
5473
+ width: 1px;
5474
+ height: 1px;
5475
+ margin: -1px;
5476
+ padding: 0;
5477
+ border: 0;
5478
+ clip: rect(0, 0, 0, 0);
5479
+ overflow: hidden;
5480
+ white-space: nowrap;
5263
5481
  }
5264
- .kanban-card:hover {
5265
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
5482
+
5483
+ .kanban-column {
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);
5490
+ border-radius: var(--radius);
5491
+ outline: 2px dashed transparent;
5492
+ outline-offset: 2px;
5493
+ overflow: hidden;
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;
5266
5503
  }
5267
5504
 
5268
- .is-dragging {
5505
+ .kanban-column.is-column-dragging {
5269
5506
  opacity: 0.4;
5270
- cursor: grabbing;
5271
5507
  }
5272
5508
 
5273
- .is-drop-before::before {
5274
- content: "";
5275
- position: absolute;
5276
- inset-inline: 0;
5277
- top: -6px;
5278
- height: 2px;
5279
- border-radius: 999px;
5280
- background: var(--primary-500);
5281
- }.kanban-column {
5282
- display: flex;
5283
- flex-flow: column;
5284
- flex-shrink: 0;
5285
- width: 280px;
5286
- background: var(--gray-100);
5287
- border: 1px solid var(--gray-200);
5288
- border-radius: var(--radius);
5289
- overflow: hidden;
5509
+ .kanban-column.is-column-drop-before {
5510
+ box-shadow: -3px 0 0 var(--primary-500);
5290
5511
  }
5291
5512
 
5292
5513
  .kanban-column-header {
5293
5514
  display: flex;
5294
5515
  align-items: center;
5295
5516
  gap: 9px;
5296
- padding: 12px 15px;
5297
- border-bottom: 1px solid var(--gray-200);
5517
+ padding: 12px 12px 0;
5518
+ outline: 2px solid rgb(from var(--primary-600) r g b/0);
5519
+ outline-offset: 0;
5520
+ }
5521
+ .kanban-column-header:focus-visible {
5522
+ outline-color: var(--primary-600);
5523
+ outline-offset: -2;
5524
+ }
5525
+
5526
+ .kanban-column.is-reorderable .kanban-column-header {
5527
+ cursor: grab;
5528
+ }
5529
+
5530
+ .kanban-column.is-reorderable .kanban-column-header:active {
5531
+ cursor: grabbing;
5298
5532
  }
5299
5533
 
5300
5534
  .kanban-column-label {
5301
5535
  flex: 1;
5302
- font-size: 0.8125rem;
5536
+ font-size: 14px;
5303
5537
  font-weight: 600;
5304
5538
  color: var(--foreground);
5305
- letter-spacing: 0.01em;
5306
5539
  text-transform: uppercase;
5307
5540
  }
5308
5541
 
5309
5542
  .kanban-column-body {
5543
+ position: relative;
5310
5544
  display: flex;
5311
5545
  flex-flow: column;
5312
- gap: 9px;
5313
- padding: 9px;
5546
+ gap: 12px;
5547
+ padding: 12px;
5314
5548
  min-height: 60px;
5315
5549
  flex: 1;
5316
5550
  overflow-y: auto;
5317
5551
  transition: background 180ms var(--swift-out);
5318
5552
  }
5319
5553
 
5320
- .is-over .kanban-column-body {
5321
- background: rgb(from var(--primary-500) r g b/0.06);
5554
+ .is-over.is-drop-disallowed .kanban-column-body {
5555
+ background: rgb(from var(--danger-500) r g b/0.06);
5556
+ cursor: not-allowed;
5557
+ }
5558
+
5559
+ .is-board-dragging .kanban-column:not(.is-over):not(.is-disabled) .kanban-column-body {
5560
+ background: rgb(from var(--primary-500) r g b/0.02);
5561
+ }
5562
+
5563
+ .kanban-column.is-disabled {
5564
+ opacity: 0.6;
5565
+ cursor: not-allowed;
5566
+ }
5567
+
5568
+ .kanban-column.is-disabled .kanban-column-body {
5569
+ pointer-events: none;
5570
+ }
5571
+
5572
+ .kanban-column-empty {
5573
+ display: flex;
5574
+ flex: 1;
5575
+ align-items: center;
5576
+ justify-content: center;
5577
+ padding: 18px 12px;
5578
+ font-size: 0.8125rem;
5579
+ color: var(--gray-500);
5580
+ text-align: center;
5581
+ }
5582
+
5583
+ .kanban-column-footer {
5584
+ padding: 9px 15px;
5585
+ border-top: 1px solid var(--gray-200);
5322
5586
  }
5323
5587
 
5324
5588
  .kanban-drop-indicator {
5325
- height: 2px;
5589
+ position: absolute;
5590
+ top: -3px;
5591
+ inset-inline: 15px;
5592
+ height: 4px;
5326
5593
  border-radius: 999px;
5327
5594
  background: var(--primary-500);
5328
- flex-shrink: 0;
5595
+ opacity: 0;
5596
+ pointer-events: none;
5597
+ transition: 300ms var(--swift-out);
5598
+ transition-property: background, opacity;
5599
+ will-change: transform;
5600
+ }
5601
+
5602
+ .kanban-drop-indicator.is-visible {
5603
+ opacity: 1;
5604
+ }
5605
+
5606
+ .kanban-drop-indicator.is-disallowed {
5607
+ background: var(--danger-500);
5608
+ }
5609
+
5610
+ .kanban-item {
5611
+ position: relative;
5612
+ display: block;
5613
+ background: transparent;
5614
+ border: 0;
5615
+ cursor: grab;
5616
+ scroll-margin: 9px;
5617
+ transition: opacity 180ms var(--swift-out), transform 180ms var(--swift-out);
5618
+ user-select: none;
5619
+ outline: 2px solid rgb(from var(--primary-600) r g b/0);
5620
+ outline-offset: 0;
5621
+ }
5622
+ .kanban-item:focus-visible {
5623
+ outline-color: var(--primary-600);
5624
+ outline-offset: 2;
5625
+ }
5626
+ .kanban-item:active {
5627
+ cursor: grabbing;
5628
+ }
5629
+
5630
+ .kanban-item.is-disabled {
5631
+ cursor: not-allowed;
5632
+ opacity: 0.6;
5633
+ }
5634
+ .kanban-item.is-disabled:active {
5635
+ cursor: not-allowed;
5636
+ }
5637
+
5638
+ .is-dragging {
5639
+ opacity: 0.4;
5640
+ cursor: grabbing;
5641
+ }
5642
+
5643
+ .is-grabbed {
5644
+ transform: scale(1.04);
5645
+ outline: 2px solid var(--primary-500);
5646
+ outline-offset: 2px;
5647
+ z-index: 1;
5329
5648
  }.item {
5330
5649
  display: flex;
5331
5650
  flex-flow: row nowrap;
@@ -6374,13 +6693,24 @@ tfoot .table-cell {
6374
6693
  .stepper-steps-item-particles {
6375
6694
  }.tab {
6376
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;
6377
6704
  }
6378
6705
 
6379
- .tab-bar {
6706
+ .tab-bar-default {
6380
6707
  --tab-padding: 12px;
6381
- position: relative;
6382
6708
  box-shadow: inset 0 -2px var(--surface-stroke);
6383
- z-index: 0;
6709
+ }
6710
+
6711
+ .tab-bar-pills {
6712
+ padding: 3px;
6713
+ border-radius: var(--radius);
6384
6714
  }
6385
6715
 
6386
6716
  .tab-bar-arrow {
@@ -6414,81 +6744,142 @@ tfoot .table-cell {
6414
6744
  right: -6px;
6415
6745
  }
6416
6746
 
6417
- .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 {
6418
6756
  --mask-start: 0%;
6419
6757
  --mask-end: 100%;
6420
6758
  --mask: linear-gradient(to right, transparent, black var(--mask-start), black, black var(--mask-end), transparent);
6421
- display: flex;
6422
6759
  margin-left: -3px;
6423
6760
  margin-right: -3px;
6424
6761
  padding-left: 3px;
6425
6762
  padding-right: 3px;
6426
- align-items: center;
6427
6763
  gap: 27px;
6428
- overflow: auto;
6429
- scrollbar-width: none;
6430
6764
  -webkit-mask-image: var(--mask);
6431
6765
  mask-image: var(--mask);
6432
6766
  }
6433
- .tab-bar-tabs.is-start-masked {
6767
+ .tab-bar-tabs-default.is-start-masked {
6434
6768
  --mask-start: 60px;
6435
6769
  }
6436
- .tab-bar-tabs.is-end-masked {
6770
+ .tab-bar-tabs-default.is-end-masked {
6437
6771
  --mask-end: calc(100% - 60px);
6438
6772
  }
6439
6773
 
6440
- .tab-bar-item {
6774
+ .tab-bar-tabs-pills {
6775
+ gap: 0;
6776
+ }
6777
+
6778
+ .base-tab-bar-item {
6441
6779
  display: inline-flex;
6442
- padding: var(--tab-padding) 0;
6443
6780
  align-items: center;
6444
- gap: 9px;
6445
6781
  background: unset;
6446
6782
  border: 0;
6447
- border-bottom: 2px solid transparent;
6448
6783
  color: var(--foreground);
6449
6784
  contain: layout;
6450
6785
  cursor: pointer;
6451
6786
  font-weight: 500;
6452
6787
  outline: 0;
6453
- transition: var(--transition-default);
6454
- transition-property: border-color, color;
6455
6788
  white-space: nowrap;
6456
6789
  }
6457
- .tab-bar-item::before {
6790
+ .base-tab-bar-item::before {
6458
6791
  position: absolute;
6459
6792
  inset: 0;
6460
6793
  content: "";
6461
- border-radius: var(--radius);
6462
6794
  pointer-events: none;
6463
6795
  transition: var(--transition-default) outline-color, outline-offset;
6464
6796
  }
6465
- .tab-bar-item::before {
6797
+ .base-tab-bar-item::before {
6466
6798
  outline: 2px solid rgb(from var(--primary-600) r g b/0);
6467
6799
  outline-offset: 0;
6468
6800
  }
6469
- .tab-bar-item:focus-visible::before {
6801
+ .base-tab-bar-item:focus-visible::before {
6470
6802
  outline-color: var(--primary-600);
6471
- outline-offset: 0;
6803
+ outline-offset: -2px;
6472
6804
  }
6473
- @media (hover: hover) {
6474
- .tab-bar-item:hover {
6475
- border-color: var(--foreground);
6476
- }
6805
+ .base-tab-bar-item::before {
6806
+ outline-offset: -2px;
6477
6807
  }
6478
- .tab-bar-item:disabled, .tab-bar-item[aria-disabled=true] {
6808
+ .base-tab-bar-item:disabled, .base-tab-bar-item[aria-disabled=true] {
6479
6809
  box-shadow: none;
6480
6810
  opacity: 0.5;
6481
6811
  pointer-events: none;
6482
6812
  }
6483
6813
 
6484
- .tab-bar-item-active {
6485
- 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 {
6486
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;
6487
6877
  }
6488
6878
 
6489
6879
  .tabs {
6490
6880
  display: flex;
6491
6881
  flex-flow: column;
6882
+ flex-grow: 1;
6492
6883
  overflow: visible;
6493
6884
  }
6494
6885
 
@@ -6496,46 +6887,54 @@ tfoot .table-cell {
6496
6887
  margin-bottom: 18px;
6497
6888
  }
6498
6889
 
6499
- .base-pane-structure > .tab-bar,
6500
- .base-pane-structure > .tabs > .tab-bar,
6501
- .base-pane-structure > .form > .tab-bar,
6502
- .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 {
6503
6894
  --tab-padding: 18px;
6504
6895
  padding-left: 18px;
6505
6896
  padding-right: 18px;
6506
6897
  background: var(--gray-50);
6507
6898
  }
6508
- .base-pane-structure > .tab-bar:first-child,
6509
- .base-pane-structure > .tabs > .tab-bar:first-child,
6510
- .base-pane-structure > .form > .tab-bar:first-child,
6511
- .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 {
6512
6903
  border-radius: var(--radius) var(--radius) 0 0;
6513
6904
  }
6514
- .base-pane-structure > .tab-bar:not(:first-child),
6515
- .base-pane-structure > .tabs > .tab-bar:not(:first-child),
6516
- .base-pane-structure > .form > .tab-bar:not(:first-child),
6517
- .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) {
6518
6909
  border-top: 1px solid var(--surface-stroke);
6519
6910
  }
6520
6911
 
6521
- .base-pane-structure > .pane-header + .tab-bar,
6522
- .base-pane-structure > .pane-header + .tabs > .tab-bar,
6523
- .base-pane-structure > .form > .pane-header + .tab-bar,
6524
- .base-pane-structure > .form > .pane-header + .tabs > .tab-bar {
6525
- padding-top: 6px;
6526
- }
6527
- .base-pane-structure > .pane-header + .tab-bar:not(:first-child),
6528
- .base-pane-structure > .pane-header + .tabs > .tab-bar:not(:first-child),
6529
- .base-pane-structure > .form > .pane-header + .tab-bar:not(:first-child),
6530
- .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) {
6531
6916
  border-top: 0;
6532
6917
  }
6533
6918
 
6534
- .pane-header:has(+ .tab-bar),
6535
- .pane-header:has(+ .tabs > .tab-bar) {
6919
+ .pane-header:has(+ .tab-bar-default),
6920
+ .pane-header:has(+ .tabs > .tab-bar-default) {
6536
6921
  background: var(--gray-50);
6537
6922
  }
6538
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
+
6539
6938
  .base-pane-structure > .tabs > .tabs-bar {
6540
6939
  margin-bottom: 0;
6541
6940
  }.timeline {