@xleddyl/443-components-vue 0.2.3 → 0.4.0

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 (236) hide show
  1. package/README.md +106 -19
  2. package/dist/chart/BarChart.vue.d.ts +2 -2
  3. package/dist/chart/ChartLegend.vue.d.ts +4 -4
  4. package/dist/chart/ChartPanel.vue.d.ts +2 -2
  5. package/dist/chart/ChartSummary.vue.d.ts +2 -2
  6. package/dist/chart/DoughnutChart.vue.d.ts +2 -2
  7. package/dist/chart/LineChart.vue.d.ts +2 -2
  8. package/dist/components/core/Button.vue.d.ts +2 -2
  9. package/dist/components/core/FieldBoundary.vue +14 -0
  10. package/dist/components/core/FieldBoundary.vue.d.ts +15 -0
  11. package/dist/components/core/FieldMessage.vue +28 -0
  12. package/dist/components/core/FieldMessage.vue.d.ts +409 -0
  13. package/dist/components/core/Form.vue +109 -11
  14. package/dist/components/core/Form.vue.d.ts +45 -6
  15. package/dist/components/core/FormAlerts.vue +30 -0
  16. package/dist/components/core/FormAlerts.vue.d.ts +393 -0
  17. package/dist/components/core/FormField.vue +54 -17
  18. package/dist/components/core/FormField.vue.d.ts +5 -4
  19. package/dist/components/core/Icon.vue.d.ts +2 -2
  20. package/dist/components/core/Input.vue.d.ts +4 -4
  21. package/dist/components/core/Kbd.vue.d.ts +2 -2
  22. package/dist/components/core/Root.vue.d.ts +6 -6
  23. package/dist/components/core/Spinner.vue +13 -1
  24. package/dist/components/core/Spinner.vue.d.ts +4 -2
  25. package/dist/components/core/Textarea.vue.d.ts +4 -4
  26. package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
  27. package/dist/components/core/index.d.ts +3 -0
  28. package/dist/components/core/index.mjs +3 -0
  29. package/dist/components/data/Avatar.vue.d.ts +2 -2
  30. package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
  31. package/dist/components/data/Badge.vue.d.ts +2 -2
  32. package/dist/components/data/DescriptionList.vue.d.ts +2 -2
  33. package/dist/components/data/FilterPill.vue +35 -0
  34. package/dist/components/data/FilterPill.vue.d.ts +445 -0
  35. package/dist/components/data/FilterPills.vue +100 -27
  36. package/dist/components/data/FilterPills.vue.d.ts +47 -411
  37. package/dist/components/data/Pagination.vue.d.ts +4 -4
  38. package/dist/components/data/SelectionBar.vue +81 -0
  39. package/dist/components/data/SelectionBar.vue.d.ts +427 -0
  40. package/dist/components/data/Stat.vue.d.ts +8 -8
  41. package/dist/components/data/Tag.vue.d.ts +4 -4
  42. package/dist/components/data/Timeline.vue.d.ts +2 -2
  43. package/dist/components/data/Tree.vue +245 -21
  44. package/dist/components/data/Tree.vue.d.ts +40 -10
  45. package/dist/components/data/index.d.ts +3 -0
  46. package/dist/components/data/index.mjs +3 -0
  47. package/dist/components/data/types.d.ts +26 -2
  48. package/dist/components/feedback/Alert.vue.d.ts +18 -18
  49. package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
  50. package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
  51. package/dist/components/feedback/Meter.vue.d.ts +2 -2
  52. package/dist/components/feedback/Progress.vue.d.ts +2 -2
  53. package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
  54. package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
  55. package/dist/components/forms/Calendar.vue.d.ts +4 -4
  56. package/dist/components/forms/CheckboxGroup.vue +2 -1
  57. package/dist/components/forms/ColorInput.vue.d.ts +6 -6
  58. package/dist/components/forms/DateInput.vue.d.ts +14 -14
  59. package/dist/components/forms/DatePicker.vue.d.ts +6 -6
  60. package/dist/components/forms/FileInput.vue +160 -34
  61. package/dist/components/forms/FileInput.vue.d.ts +43 -15
  62. package/dist/components/forms/InputAddon.vue.d.ts +2 -2
  63. package/dist/components/forms/InputGroup.vue.d.ts +2 -2
  64. package/dist/components/forms/NumberInput.vue.d.ts +6 -6
  65. package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
  66. package/dist/components/forms/PinInput.vue.d.ts +6 -6
  67. package/dist/components/forms/Radio.vue.d.ts +2 -2
  68. package/dist/components/forms/RadioGroup.vue +2 -1
  69. package/dist/components/forms/SegmentedControl.vue +33 -8
  70. package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
  71. package/dist/components/forms/Slider.vue.d.ts +6 -6
  72. package/dist/components/forms/Switch.vue.d.ts +6 -6
  73. package/dist/components/forms/TimeInput.vue.d.ts +16 -16
  74. package/dist/components/forms/types.d.ts +17 -0
  75. package/dist/components/layout/Accordion.vue +25 -5
  76. package/dist/components/layout/Accordion.vue.d.ts +11 -8
  77. package/dist/components/layout/AppShell.vue +1 -1
  78. package/dist/components/layout/AppShell.vue.d.ts +7 -7
  79. package/dist/components/layout/Breadcrumbs.vue +28 -20
  80. package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
  81. package/dist/components/layout/Card.vue +22 -3
  82. package/dist/components/layout/Card.vue.d.ts +10 -4
  83. package/dist/components/layout/CopyButton.vue.d.ts +4 -4
  84. package/dist/components/layout/Grid.vue.d.ts +2 -2
  85. package/dist/components/layout/NavLink.vue.d.ts +8 -8
  86. package/dist/components/layout/PageHeader.vue +10 -1
  87. package/dist/components/layout/PageHeader.vue.d.ts +17 -9
  88. package/dist/components/layout/Separator.vue.d.ts +2 -2
  89. package/dist/components/layout/Sidebar.vue.d.ts +2 -2
  90. package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
  91. package/dist/components/layout/Stack.vue.d.ts +6 -6
  92. package/dist/components/layout/Tabs.vue +37 -7
  93. package/dist/components/layout/Tabs.vue.d.ts +11 -4
  94. package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
  95. package/dist/components/layout/Toolbar.vue.d.ts +2 -2
  96. package/dist/components/layout/types.d.ts +8 -1
  97. package/dist/components/overlays/CommandPalette.vue +35 -8
  98. package/dist/components/overlays/CommandPalette.vue.d.ts +273 -497
  99. package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
  100. package/dist/components/overlays/ConfirmHost.vue +5 -1
  101. package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
  102. package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
  103. package/dist/components/overlays/Drawer.vue +4 -2
  104. package/dist/components/overlays/Drawer.vue.d.ts +8 -6
  105. package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
  106. package/dist/components/overlays/HoverCard.vue +2 -1
  107. package/dist/components/overlays/HoverCard.vue.d.ts +8 -8
  108. package/dist/components/overlays/Modal.vue +5 -3
  109. package/dist/components/overlays/Modal.vue.d.ts +8 -6
  110. package/dist/components/overlays/Popover.vue +2 -1
  111. package/dist/components/overlays/Popover.vue.d.ts +8 -8
  112. package/dist/components/overlays/Toaster.vue.d.ts +4 -4
  113. package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
  114. package/dist/components/overlays/types.d.ts +11 -5
  115. package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
  116. package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
  117. package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
  118. package/dist/components/templates/Brand.vue +34 -5
  119. package/dist/components/templates/Brand.vue.d.ts +20 -15
  120. package/dist/components/templates/DashboardLayout.vue +49 -10
  121. package/dist/components/templates/DashboardLayout.vue.d.ts +332 -553
  122. package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
  123. package/dist/components/templates/DetailPage.vue.d.ts +4 -4
  124. package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
  125. package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
  126. package/dist/components/templates/ListPage.vue +17 -11
  127. package/dist/components/templates/ListPage.vue.d.ts +3 -3
  128. package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
  129. package/dist/components/templates/SaveBar.vue.d.ts +4 -4
  130. package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
  131. package/dist/components/templates/SettingsModal.vue +5 -2
  132. package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
  133. package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
  134. package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
  135. package/dist/components/templates/types.d.ts +25 -2
  136. package/dist/composables/core.d.ts +1 -0
  137. package/dist/composables/core.mjs +1 -0
  138. package/dist/composables/useField.d.ts +8 -1
  139. package/dist/composables/useField.mjs +41 -10
  140. package/dist/composables/useFieldBoundary.d.ts +2 -0
  141. package/dist/composables/useFieldBoundary.mjs +9 -0
  142. package/dist/composables/useFileDrop.d.ts +20 -0
  143. package/dist/composables/useFileDrop.mjs +115 -7
  144. package/dist/composables/useForm.d.ts +36 -19
  145. package/dist/composables/useForm.mjs +258 -51
  146. package/dist/editor/RichTextEditor.vue +32 -4
  147. package/dist/editor/RichTextEditor.vue.d.ts +11 -6
  148. package/dist/editor/rich-text-editor.css +1 -1
  149. package/dist/editor/types.d.ts +3 -0
  150. package/dist/grid/GridToolbar.vue.d.ts +4 -4
  151. package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
  152. package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
  153. package/dist/grid/cells/DateCell.vue.d.ts +2 -2
  154. package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
  155. package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
  156. package/dist/internal/core/ButtonElement.d.ts +2 -0
  157. package/dist/internal/core/ButtonElement.mjs +8 -0
  158. package/dist/internal/data/tree.d.ts +8 -0
  159. package/dist/internal/data/tree.mjs +41 -0
  160. package/dist/internal/forms/files.d.ts +9 -0
  161. package/dist/internal/forms/files.mjs +32 -1
  162. package/dist/internal/forms/standard-schema.d.ts +17 -0
  163. package/dist/internal/forms/standard-schema.mjs +40 -0
  164. package/dist/internal/keys.d.ts +2 -1
  165. package/dist/internal/keys.mjs +1 -0
  166. package/dist/internal/overlays/DialogFrame.vue +17 -7
  167. package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
  168. package/dist/internal/overlays/MenuList.vue +2 -0
  169. package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
  170. package/dist/internal/overlays/OverlayView.vue +2 -0
  171. package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
  172. package/dist/internal/overlays/dialog.d.ts +4 -1
  173. package/dist/internal/overlays/dialog.mjs +39 -5
  174. package/dist/internal/overlays/stack.d.ts +2 -1
  175. package/dist/locale/en.mjs +19 -2
  176. package/dist/locale/it.mjs +19 -2
  177. package/dist/locale/types.d.ts +17 -0
  178. package/dist/nuxt/module.d.ts +1 -0
  179. package/dist/nuxt/module.mjs +6 -3
  180. package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
  181. package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
  182. package/dist/styles/base.css +2 -0
  183. package/dist/styles/core/button.css +1 -13
  184. package/dist/styles/core/field-message.css +34 -0
  185. package/dist/styles/core/form-field.css +0 -23
  186. package/dist/styles/core/form.css +11 -0
  187. package/dist/styles/core/kbd.css +2 -2
  188. package/dist/styles/core/spinner.css +19 -0
  189. package/dist/styles/core.css +1 -0
  190. package/dist/styles/data/avatar.css +1 -1
  191. package/dist/styles/data/badge.css +1 -1
  192. package/dist/styles/data/filter-pills.css +40 -4
  193. package/dist/styles/data/pagination.css +0 -1
  194. package/dist/styles/data/selection-bar.css +89 -0
  195. package/dist/styles/data/stat.css +1 -6
  196. package/dist/styles/data/table.css +1 -3
  197. package/dist/styles/data/tag.css +1 -4
  198. package/dist/styles/data/tree.css +163 -2
  199. package/dist/styles/data.css +1 -0
  200. package/dist/styles/feedback/alert.css +0 -1
  201. package/dist/styles/feedback/empty-state.css +0 -1
  202. package/dist/styles/forms/calendar.css +1 -1
  203. package/dist/styles/forms/color-input.css +1 -1
  204. package/dist/styles/forms/combobox.css +0 -1
  205. package/dist/styles/forms/date-picker.css +1 -1
  206. package/dist/styles/forms/file-input.css +17 -1
  207. package/dist/styles/forms/number-input.css +1 -1
  208. package/dist/styles/forms/password-input.css +1 -5
  209. package/dist/styles/forms/segmented.css +8 -0
  210. package/dist/styles/forms/select.css +1 -1
  211. package/dist/styles/forms/slider.css +2 -2
  212. package/dist/styles/forms/switch.css +0 -1
  213. package/dist/styles/layout/accordion.css +22 -1
  214. package/dist/styles/layout/app-shell.css +4 -0
  215. package/dist/styles/layout/breadcrumbs.css +16 -1
  216. package/dist/styles/layout/card.css +20 -6
  217. package/dist/styles/layout/copy-button.css +2 -2
  218. package/dist/styles/layout/nav-link.css +2 -3
  219. package/dist/styles/layout/sidebar-nav.css +1 -1
  220. package/dist/styles/layout/sidebar.css +2 -2
  221. package/dist/styles/layout/tabs.css +65 -3
  222. package/dist/styles/layout/theme-switch.css +1 -3
  223. package/dist/styles/overlays/command.css +21 -3
  224. package/dist/styles/overlays/confirm.css +0 -1
  225. package/dist/styles/overlays/menu.css +3 -5
  226. package/dist/styles/overlays/modal.css +38 -0
  227. package/dist/styles/overlays/toast.css +0 -1
  228. package/dist/styles/templates/auth-layout.css +0 -1
  229. package/dist/styles/templates/brand.css +15 -0
  230. package/dist/styles/templates/empty-page.css +4 -4
  231. package/dist/styles/templates/form-page.css +1 -1
  232. package/dist/styles/templates/list-page.css +2 -6
  233. package/dist/styles/templates/page.css +1 -1
  234. package/dist/styles/templates/settings-modal.css +2 -3
  235. package/dist/styles/tokens.css +1 -1
  236. package/package.json +1 -1
@@ -0,0 +1,89 @@
1
+ .k-selection-bar {
2
+ display: flex;
3
+ min-width: 0;
4
+ }
5
+
6
+ .k-selection-bar:not(.is-visible) {
7
+ display: contents;
8
+ }
9
+
10
+ .k-selection-bar-sticky {
11
+ position: sticky;
12
+ top: 0;
13
+ z-index: 15;
14
+ }
15
+
16
+ .k-selection-bar-floating {
17
+ position: sticky;
18
+ bottom: 1rem;
19
+ z-index: 15;
20
+ justify-content: center;
21
+ pointer-events: none;
22
+ }
23
+
24
+ .k-selection-bar-panel {
25
+ display: flex;
26
+ flex: 1;
27
+ flex-wrap: wrap;
28
+ align-items: center;
29
+ gap: 0.375rem 0.5rem;
30
+ min-width: 0;
31
+ min-height: var(--k-size-sm);
32
+ animation: k-pop 200ms var(--k-ease-out);
33
+ }
34
+
35
+ .k-selection-bar-sticky .k-selection-bar-panel {
36
+ padding: 0.375rem 0.375rem 0.375rem 0.75rem;
37
+ border: 1px solid var(--k-accent-line);
38
+ border-radius: var(--k-radius-md);
39
+ background: color-mix(in oklab, var(--k-accent-soft) 60%, var(--k-surface));
40
+ box-shadow: var(--k-shadow-sm);
41
+ }
42
+
43
+ .k-selection-bar-floating .k-selection-bar-panel {
44
+ flex: 0 1 auto;
45
+ width: min(100%, 40rem);
46
+ padding: 0.5rem 0.5rem 0.5rem 0.875rem;
47
+ border-radius: var(--k-radius-lg);
48
+ background: var(--k-elevated);
49
+ box-shadow: var(--k-shadow-overlay);
50
+ pointer-events: auto;
51
+ animation: k-rise 320ms var(--k-ease-out) both;
52
+ }
53
+
54
+ .k-selection-bar-count {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ gap: 0.5rem;
58
+ font-size: 0.8125rem;
59
+ font-weight: 600;
60
+ font-variant-numeric: tabular-nums;
61
+ white-space: nowrap;
62
+ color: var(--k-text);
63
+ }
64
+
65
+ .k-selection-bar-dot {
66
+ width: 0.5rem;
67
+ height: 0.5rem;
68
+ flex: none;
69
+ border-radius: var(--k-radius-full);
70
+ background: var(--k-accent);
71
+ box-shadow: 0 0 0 3px var(--k-accent-soft);
72
+ }
73
+
74
+ .k-selection-bar-actions {
75
+ display: flex;
76
+ flex-wrap: wrap;
77
+ align-items: center;
78
+ gap: 0.375rem;
79
+ margin-left: auto;
80
+ }
81
+
82
+ .k-selection-bar-clear {
83
+ flex: none;
84
+ margin-left: auto;
85
+ }
86
+
87
+ .k-selection-bar-actions + .k-selection-bar-clear {
88
+ margin-left: 0;
89
+ }
@@ -57,11 +57,7 @@
57
57
  background: var(--k-subtle);
58
58
  box-shadow: inset 0 0 0 1px var(--k-line);
59
59
  color: var(--k-accent-text);
60
- transition: transform var(--k-duration-lg) var(--k-ease-spring);
61
- }
62
-
63
- .k-stat.is-interactive:hover .k-stat-icon {
64
- transform: scale(1.08) rotate(-4deg);
60
+ transition: transform var(--k-duration-lg) var(--k-ease-out);
65
61
  }
66
62
 
67
63
  .k-stat-body {
@@ -141,7 +137,6 @@
141
137
 
142
138
  .k-stat-delta-icon {
143
139
  stroke-width: 2.25;
144
- animation: k-icon-pop 400ms var(--k-ease-spring) 200ms backwards;
145
140
  }
146
141
 
147
142
  .k-stat-delta.is-up .k-stat-delta-icon {
@@ -111,7 +111,7 @@
111
111
  transition:
112
112
  opacity var(--k-duration) var(--k-ease),
113
113
  color var(--k-duration) var(--k-ease),
114
- transform var(--k-duration-lg) var(--k-ease-spring);
114
+ transform var(--k-duration-lg) var(--k-ease-out);
115
115
  }
116
116
 
117
117
  .k-table-sort:hover .k-table-sort-icon,
@@ -122,7 +122,6 @@
122
122
 
123
123
  .k-table-th.is-sorted .k-table-sort-icon {
124
124
  color: var(--k-accent-text);
125
- animation: k-icon-pop 300ms var(--k-ease-spring);
126
125
  }
127
126
 
128
127
  .k-table-th.is-align-end .k-table-sort {
@@ -255,7 +254,6 @@
255
254
  margin-top: -0.125rem;
256
255
  border: solid var(--k-accent-contrast);
257
256
  border-width: 0 0 2px 2px;
258
- rotate: -45deg;
259
257
  opacity: 0;
260
258
  scale: 0.4;
261
259
  transition:
@@ -108,9 +108,6 @@
108
108
  }
109
109
 
110
110
  .k-tag-remove > .k-icon {
111
- transition: transform var(--k-duration-lg) var(--k-ease-spring);
111
+ transition: transform var(--k-duration-lg) var(--k-ease-out);
112
112
  }
113
113
 
114
- .k-tag-remove:hover:not(:disabled) > .k-icon {
115
- transform: rotate(90deg);
116
- }
@@ -107,13 +107,174 @@
107
107
  overflow: hidden;
108
108
  text-overflow: ellipsis;
109
109
  white-space: nowrap;
110
- font-family: var(--k-font-mono);
111
- font-size: 0.71875rem;
110
+ font-size: 0.75rem;
112
111
  color: var(--k-text-dimmed);
113
112
  }
114
113
 
114
+ .k-tree-description-mono {
115
+ font-family: var(--k-font-mono);
116
+ }
117
+
118
+ .k-tree-description-text {
119
+ color: var(--k-text-muted);
120
+ }
121
+
115
122
  .k-tree-meta {
116
123
  flex-shrink: 0;
117
124
  font-size: 0.75rem;
118
125
  color: var(--k-text-dimmed);
119
126
  }
127
+
128
+ .k-tree.is-invalid.is-bordered {
129
+ border-color: var(--k-danger);
130
+ }
131
+
132
+ .k-tree.is-disabled {
133
+ opacity: 0.6;
134
+ }
135
+
136
+ .k-tree-check {
137
+ --k-icon-size: 0.875rem;
138
+ display: grid;
139
+ place-items: center;
140
+ width: 1rem;
141
+ flex: none;
142
+ color: var(--k-accent-text);
143
+ }
144
+
145
+ .k-tree-check > .k-icon {
146
+ stroke-width: 2.25;
147
+ }
148
+
149
+ .k-tree-empty {
150
+ padding: 0.75rem 1rem;
151
+ font-size: 0.8125rem;
152
+ color: var(--k-text-dimmed);
153
+ }
154
+
155
+ .k-tree-handle {
156
+ display: grid;
157
+ place-items: center;
158
+ width: 1rem;
159
+ height: 1.5rem;
160
+ flex: none;
161
+ margin-right: -0.25rem;
162
+ border-radius: var(--k-radius-xs);
163
+ color: var(--k-text-dimmed);
164
+ cursor: grab;
165
+ opacity: 0.6;
166
+ transition:
167
+ opacity var(--k-duration) var(--k-ease),
168
+ color var(--k-duration) var(--k-ease),
169
+ background-color var(--k-duration) var(--k-ease);
170
+ }
171
+
172
+ .k-tree-handle > svg {
173
+ width: 0.875rem;
174
+ height: 0.875rem;
175
+ }
176
+
177
+ .k-tree-row:is(:hover, :focus-visible) > .k-tree-handle:not(.is-disabled) {
178
+ opacity: 1;
179
+ }
180
+
181
+ .k-tree-handle:hover:not(.is-disabled) {
182
+ background: var(--k-hover);
183
+ color: var(--k-text);
184
+ }
185
+
186
+ .k-tree-handle:active {
187
+ cursor: grabbing;
188
+ }
189
+
190
+ .k-tree-handle.is-disabled {
191
+ opacity: 0.25;
192
+ cursor: not-allowed;
193
+ }
194
+
195
+ .k-tree-row.is-moving {
196
+ opacity: 0.45;
197
+ }
198
+
199
+ .k-tree-row[data-drop='before'] {
200
+ box-shadow: inset 0 2px 0 var(--k-accent);
201
+ }
202
+
203
+ .k-tree-row[data-drop='after'] {
204
+ box-shadow: inset 0 -2px 0 var(--k-accent);
205
+ }
206
+
207
+ .k-tree-row[data-drop='inside'] {
208
+ background: var(--k-accent-soft);
209
+ box-shadow: inset 0 0 0 1px var(--k-accent-line);
210
+ }
211
+
212
+ .k-tree-sm {
213
+ gap: 1px;
214
+ }
215
+
216
+ .k-tree-sm:not(.is-bordered) {
217
+ overflow: visible;
218
+ background: transparent;
219
+ }
220
+
221
+ .k-tree-sm.is-bordered {
222
+ padding: 0.25rem;
223
+ border-radius: var(--k-radius-md);
224
+ }
225
+
226
+ .k-tree-sm .k-tree-row {
227
+ gap: 0.375rem;
228
+ min-height: 1.875rem;
229
+ padding: 0.25rem 0.5rem 0.25rem calc(0.25rem + var(--k-tree-level, 0) * 1rem);
230
+ border-radius: var(--k-radius-sm);
231
+ color: var(--k-text-toned);
232
+ cursor: pointer;
233
+ }
234
+
235
+ .k-tree-sm .k-tree-row + .k-tree-row {
236
+ border-top: 0;
237
+ }
238
+
239
+ .k-tree-sm .k-tree-row:hover:not([aria-disabled='true']) {
240
+ background: var(--k-hover);
241
+ }
242
+
243
+ .k-tree-sm .k-tree-row[aria-selected='true'] {
244
+ background: var(--k-accent-soft);
245
+ }
246
+
247
+ .k-tree-sm .k-tree-row[aria-disabled='true'] {
248
+ opacity: 0.4;
249
+ }
250
+
251
+ .k-tree-sm .k-tree-toggle {
252
+ width: 1rem;
253
+ height: 1rem;
254
+ }
255
+
256
+ .k-tree-sm .k-tree-icon {
257
+ --k-icon-size: 1rem;
258
+ width: auto;
259
+ height: auto;
260
+ background: none;
261
+ box-shadow: none;
262
+ color: inherit;
263
+ }
264
+
265
+ .k-tree-sm .k-tree-label {
266
+ font-weight: 450;
267
+ color: inherit;
268
+ }
269
+
270
+ .k-tree-sm .k-tree-row[aria-selected='true'] :is(.k-tree-label, .k-tree-icon) {
271
+ color: var(--k-accent-text);
272
+ }
273
+
274
+ .k-tree-sm .k-tree-empty {
275
+ padding: 0.375rem 0.5rem;
276
+ }
277
+
278
+ .k-tree-sm .k-tree-row[data-drop='inside'] {
279
+ background: var(--k-accent-soft);
280
+ }
@@ -8,3 +8,4 @@
8
8
  @import './data/timeline.css';
9
9
  @import './data/tree.css';
10
10
  @import './data/filter-pills.css';
11
+ @import './data/selection-bar.css';
@@ -70,7 +70,6 @@
70
70
  }
71
71
 
72
72
  .k-alert-icon > .k-icon {
73
- animation: k-icon-pop var(--k-duration-xl) var(--k-ease-spring) 120ms backwards;
74
73
  }
75
74
 
76
75
  .k-alert-body {
@@ -51,7 +51,6 @@
51
51
  var(--k-shadow-raised),
52
52
  0 6px 16px -6px var(--k-shadow-tint-strong);
53
53
  color: var(--k-text-muted);
54
- animation: k-float 4s ease-in-out infinite;
55
54
  }
56
55
 
57
56
  .k-empty-sm .k-empty-icon {
@@ -31,7 +31,7 @@
31
31
  width: var(--k-calendar-cell);
32
32
  height: 1.5rem;
33
33
  padding: 0;
34
- font-size: 0.6875rem;
34
+ font-size: 0.75rem;
35
35
  font-weight: 500;
36
36
  text-align: center;
37
37
  color: var(--k-text-dimmed);
@@ -94,7 +94,7 @@
94
94
  background: var(--k-swatch);
95
95
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--k-text) 14%, transparent);
96
96
  transition:
97
- scale var(--k-duration-lg) var(--k-ease-spring),
97
+ scale var(--k-duration-lg) var(--k-ease-out),
98
98
  box-shadow var(--k-duration) var(--k-ease);
99
99
  }
100
100
 
@@ -221,7 +221,6 @@
221
221
  .k-combobox-option-selected {
222
222
  --k-icon-size: 0.875rem;
223
223
  color: var(--k-accent-text);
224
- animation: k-icon-pop var(--k-duration-lg) var(--k-ease-spring);
225
224
  }
226
225
 
227
226
  .k-combobox-check {
@@ -31,7 +31,7 @@
31
31
  color: var(--k-text-dimmed);
32
32
  transition:
33
33
  color var(--k-duration) var(--k-ease),
34
- transform var(--k-duration-lg) var(--k-ease-spring);
34
+ transform var(--k-duration-lg) var(--k-ease-out);
35
35
  }
36
36
 
37
37
  .k-date-picker-trigger:hover:not(:disabled) .k-date-picker-icon {
@@ -78,7 +78,7 @@
78
78
  box-shadow: var(--k-shadow-raised);
79
79
  color: var(--k-text-muted);
80
80
  transition:
81
- transform var(--k-duration-lg) var(--k-ease-spring),
81
+ transform var(--k-duration-lg) var(--k-ease-out),
82
82
  color var(--k-duration) var(--k-ease);
83
83
  }
84
84
 
@@ -120,6 +120,14 @@
120
120
  color: var(--k-text-muted);
121
121
  }
122
122
 
123
+ .k-file-input-actions {
124
+ display: flex;
125
+ flex-wrap: wrap;
126
+ align-items: center;
127
+ justify-content: center;
128
+ gap: 0.375rem;
129
+ }
130
+
123
131
  .k-file-input-native {
124
132
  position: absolute;
125
133
  width: 1px;
@@ -191,3 +199,11 @@
191
199
  color: var(--k-text-muted);
192
200
  font-variant-numeric: tabular-nums;
193
201
  }
202
+
203
+ .k-file-input.is-loading .k-file-input-dropzone {
204
+ cursor: progress;
205
+ }
206
+
207
+ .k-file-input.is-loading .k-file-input-dropzone-icon {
208
+ color: var(--k-accent-text);
209
+ }
@@ -67,7 +67,7 @@
67
67
  }
68
68
 
69
69
  .k-number-input-step > .k-icon {
70
- transition: transform var(--k-duration-lg) var(--k-ease-spring);
70
+ transition: transform var(--k-duration-lg) var(--k-ease-out);
71
71
  }
72
72
 
73
73
  .k-number-input-step:hover:not(:disabled) {
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  .k-password-input-action > .k-icon {
38
- transition: transform var(--k-duration-lg) var(--k-ease-spring);
38
+ transition: transform var(--k-duration) var(--k-ease-out);
39
39
  }
40
40
 
41
41
  .k-password-input-action:hover:not(:disabled) {
@@ -47,10 +47,6 @@
47
47
  transform: scale(0.85);
48
48
  }
49
49
 
50
- .k-password-input-action:hover:not(:disabled) > .k-icon[data-icon='arrow-path'] {
51
- transform: rotate(60deg);
52
- }
53
-
54
50
  .k-password-input-action:disabled {
55
51
  opacity: 0.4;
56
52
  cursor: not-allowed;
@@ -137,3 +137,11 @@
137
137
  .k-segmented.is-disabled {
138
138
  opacity: 0.6;
139
139
  }
140
+
141
+ .k-segmented-item.is-muted:not([aria-checked='true']) {
142
+ color: var(--k-text-dimmed);
143
+ }
144
+
145
+ .k-segmented-item.is-muted:not([aria-checked='true']) > .k-icon {
146
+ opacity: 0.7;
147
+ }
@@ -152,7 +152,7 @@
152
152
 
153
153
  .k-select .k-select-field optgroup {
154
154
  padding-top: 0.25rem;
155
- font-size: 0.6875rem;
155
+ font-size: 0.75rem;
156
156
  font-weight: 600;
157
157
  color: var(--k-text-dimmed);
158
158
  background: transparent;
@@ -144,7 +144,7 @@
144
144
  border-radius: var(--k-radius-sm);
145
145
  background: var(--k-text);
146
146
  color: var(--k-surface);
147
- font-size: 0.6875rem;
147
+ font-size: 0.75rem;
148
148
  font-weight: 600;
149
149
  line-height: 1.3;
150
150
  font-variant-numeric: tabular-nums;
@@ -169,7 +169,7 @@
169
169
  .k-slider-marks {
170
170
  display: flex;
171
171
  justify-content: space-between;
172
- font-size: 0.6875rem;
172
+ font-size: 0.75rem;
173
173
  color: var(--k-text-dimmed);
174
174
  font-variant-numeric: tabular-nums;
175
175
  }
@@ -82,7 +82,6 @@
82
82
 
83
83
  .k-switch-thumb > .k-icon {
84
84
  stroke-width: 2.5;
85
- animation: k-icon-spin var(--k-duration-lg) var(--k-ease-spring);
86
85
  }
87
86
 
88
87
  .k-switch-track[aria-checked='true'] .k-switch-thumb {
@@ -4,11 +4,15 @@
4
4
  min-width: 0;
5
5
  }
6
6
 
7
- .k-accordion-card {
7
+ .k-accordion-card,
8
+ .k-accordion-outline {
8
9
  overflow: hidden;
9
10
  border: 1px solid var(--k-line);
10
11
  border-radius: var(--k-radius-lg);
11
12
  background: var(--k-surface);
13
+ }
14
+
15
+ .k-accordion-card {
12
16
  box-shadow: var(--k-shadow-xs);
13
17
  }
14
18
 
@@ -32,6 +36,7 @@
32
36
  }
33
37
 
34
38
  .k-accordion-card .k-accordion-item + .k-accordion-item,
39
+ .k-accordion-outline .k-accordion-item + .k-accordion-item,
35
40
  .k-accordion-plain .k-accordion-item + .k-accordion-item {
36
41
  border-top: 1px solid var(--k-line);
37
42
  }
@@ -85,10 +90,20 @@
85
90
  }
86
91
 
87
92
  .k-accordion-title {
93
+ display: flex;
88
94
  flex: 1;
95
+ flex-direction: column;
96
+ gap: 0.125rem;
89
97
  min-width: 0;
90
98
  }
91
99
 
100
+ .k-accordion-description {
101
+ font-size: 0.75rem;
102
+ font-weight: 400;
103
+ line-height: 1.45;
104
+ color: var(--k-text-muted);
105
+ }
106
+
92
107
  .k-accordion-chevron {
93
108
  color: var(--k-text-dimmed);
94
109
  transition:
@@ -141,6 +156,12 @@
141
156
  padding-inline: 0.25rem;
142
157
  }
143
158
 
159
+ .k-accordion.is-neutral .k-accordion-content {
160
+ padding: 0;
161
+ font-size: inherit;
162
+ color: inherit;
163
+ }
164
+
144
165
  .k-accordion-item.is-open .k-accordion-content {
145
166
  opacity: 1;
146
167
  transform: none;
@@ -238,6 +238,10 @@ html.k-root body {
238
238
  visibility 0s linear;
239
239
  }
240
240
 
241
+ .k-shell-sidebar :where(dialog[open], :popover-open) {
242
+ visibility: visible;
243
+ }
244
+
241
245
  .k-shell-scrim {
242
246
  position: absolute;
243
247
  inset: 0;
@@ -39,7 +39,7 @@
39
39
  background-color var(--k-duration) var(--k-ease);
40
40
  }
41
41
 
42
- .k-breadcrumbs-link:is(a):hover {
42
+ .k-breadcrumbs-link:is(a, button):hover {
43
43
  background: var(--k-hover);
44
44
  color: var(--k-text);
45
45
  }
@@ -53,3 +53,18 @@
53
53
  --k-icon-size: 0.75rem;
54
54
  color: var(--k-text-dimmed);
55
55
  }
56
+
57
+ .k-breadcrumbs-link:is(button) {
58
+ font: inherit;
59
+ cursor: pointer;
60
+ }
61
+
62
+ .k-breadcrumbs-link:is(button):active {
63
+ scale: 0.97;
64
+ }
65
+
66
+ :is(.k-breadcrumbs-link, .k-breadcrumbs-current).is-drop-target {
67
+ background: var(--k-accent-soft);
68
+ box-shadow: inset 0 0 0 1px var(--k-accent-line);
69
+ color: var(--k-accent-text);
70
+ }
@@ -63,7 +63,7 @@
63
63
  background: var(--k-subtle);
64
64
  box-shadow: inset 0 0 0 1px var(--k-line);
65
65
  color: var(--k-accent-text);
66
- transition: transform var(--k-duration-lg) var(--k-ease-spring);
66
+ transition: transform var(--k-duration-lg) var(--k-ease-out);
67
67
  }
68
68
 
69
69
  .k-card-heading {
@@ -75,7 +75,7 @@
75
75
  }
76
76
 
77
77
  .k-card-title {
78
- font-size: 0.875rem;
78
+ font-size: 0.9375rem;
79
79
  font-weight: 600;
80
80
  line-height: 1.35;
81
81
  color: var(--k-text);
@@ -154,10 +154,6 @@
154
154
  box-shadow: var(--k-shadow-sm);
155
155
  }
156
156
 
157
- .k-card.is-interactive:hover .k-card-icon {
158
- transform: scale(1.08) rotate(-4deg);
159
- }
160
-
161
157
  .k-card.is-interactive:active {
162
158
  scale: 0.99;
163
159
  }
@@ -165,3 +161,21 @@
165
161
  .k-card.is-disabled {
166
162
  opacity: 0.6;
167
163
  }
164
+
165
+ .k-card.is-selected {
166
+ border-color: var(--k-accent);
167
+ box-shadow:
168
+ 0 0 0 1px var(--k-accent),
169
+ var(--k-shadow-xs);
170
+ }
171
+
172
+ .k-card.is-selected.is-interactive:hover {
173
+ border-color: var(--k-accent);
174
+ box-shadow:
175
+ 0 0 0 1px var(--k-accent),
176
+ var(--k-shadow-sm);
177
+ }
178
+
179
+ .k-card.is-static {
180
+ animation: none;
181
+ }
@@ -14,14 +14,14 @@
14
14
  grid-area: 1 / 1;
15
15
  transition:
16
16
  opacity var(--k-duration) var(--k-ease),
17
- transform var(--k-duration-lg) var(--k-ease-spring);
17
+ transform var(--k-duration-lg) var(--k-ease-out);
18
18
  }
19
19
 
20
20
  .k-copy-icon.is-done {
21
21
  stroke-width: 2;
22
22
  color: var(--k-success);
23
23
  opacity: 0;
24
- transform: scale(0.4) rotate(-45deg);
24
+ transform: scale(0.6);
25
25
  }
26
26
 
27
27
  .k-copy-button.is-copied .k-copy-icon.is-idle {
@@ -47,7 +47,7 @@
47
47
  color: var(--k-text-dimmed);
48
48
  transition:
49
49
  color var(--k-duration) var(--k-ease),
50
- transform var(--k-duration-lg) var(--k-ease-spring);
50
+ transform var(--k-duration-lg) var(--k-ease-out);
51
51
  }
52
52
 
53
53
  .k-navlink:hover .k-navlink-icon {
@@ -57,7 +57,6 @@
57
57
  .k-navlink.is-active .k-navlink-icon,
58
58
  .k-navlink[aria-current='page'] .k-navlink-icon {
59
59
  color: var(--k-accent-text);
60
- animation: k-icon-pop 360ms var(--k-ease-spring);
61
60
  }
62
61
 
63
62
  .k-navlink-label {
@@ -73,7 +72,7 @@
73
72
  padding: 0.1875rem 0.375rem;
74
73
  border-radius: var(--k-radius-full);
75
74
  background: var(--k-fill);
76
- font-size: 0.6875rem;
75
+ font-size: 0.75rem;
77
76
  font-weight: 500;
78
77
  line-height: 1;
79
78
  text-align: center;