@kubex/zinc 1.1.185 → 2.0.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 (358) hide show
  1. package/.browserslistrc +2 -0
  2. package/.github/workflows/js_build_and_deploy.yaml +54 -1
  3. package/.github/workflows/test.yaml +27 -0
  4. package/dist/chunks/zn.UWJLIXDT.js +1 -0
  5. package/dist/custom-elements.json +9998 -2345
  6. package/dist/vscode.html-custom-data.json +1022 -67
  7. package/dist/web-types.json +2129 -177
  8. package/dist/zn.d.ts +2293 -416
  9. package/dist/zn.min.css +1 -1
  10. package/dist/zn.min.js +2310 -1637
  11. package/docs/_includes/default.njk +4 -1
  12. package/docs/assets/scripts/docs.js +22 -6
  13. package/docs/assets/styles/docs.css +9 -2
  14. package/docs/data/report-table-day-compare.json +380 -0
  15. package/docs/data/report-table.json +314 -0
  16. package/docs/pages/components/avatar-group.md +57 -0
  17. package/docs/pages/components/badge.md +67 -0
  18. package/docs/pages/components/button.md +41 -1
  19. package/docs/pages/components/chat-message.md +16 -0
  20. package/docs/pages/components/checkbox.md +1 -1
  21. package/docs/pages/components/chip.md +25 -13
  22. package/docs/pages/components/color-picker.md +37 -0
  23. package/docs/pages/components/copy-button.md +2 -2
  24. package/docs/pages/components/data-table-filter.md +33 -50
  25. package/docs/pages/components/data-table-search.md +4 -4
  26. package/docs/pages/components/data-table.md +27 -3
  27. package/docs/pages/components/date-range.md +116 -0
  28. package/docs/pages/components/dialog.md +29 -37
  29. package/docs/pages/components/diff-row.md +28 -0
  30. package/docs/pages/components/diff.md +46 -0
  31. package/docs/pages/components/editor.md +55 -0
  32. package/docs/pages/components/icon.md +46 -1
  33. package/docs/pages/components/input.md +30 -11
  34. package/docs/pages/components/item.md +35 -0
  35. package/docs/pages/components/key-value.md +25 -0
  36. package/docs/pages/components/menu.md +74 -7
  37. package/docs/pages/components/nav-item.md +15 -0
  38. package/docs/pages/components/nav-list.md +132 -0
  39. package/docs/pages/components/navbar.md +100 -1
  40. package/docs/pages/components/page.md +242 -74
  41. package/docs/pages/components/priority-list.md +43 -5
  42. package/docs/pages/components/query-builder.md +23 -0
  43. package/docs/pages/components/radio-group.md +33 -1
  44. package/docs/pages/components/radio.md +1 -1
  45. package/docs/pages/components/report-table.md +202 -0
  46. package/docs/pages/components/stat.md +30 -0
  47. package/docs/pages/components/tile.md +11 -0
  48. package/docs/pages/components/tooltip.md +1 -1
  49. package/docs/pages/components/translation-grid.md +86 -0
  50. package/docs/pages/components/vertical-stepper.md +108 -64
  51. package/package.json +2 -1
  52. package/scss/_global-spacing.scss +2 -2
  53. package/scss/_root.scss +11 -171
  54. package/scss/boot.scss +14 -0
  55. package/scss/mixins/_helper-mixins.scss +24 -2
  56. package/scss/mixins/_motion-mixins.scss +126 -0
  57. package/scss/mixins/_spacing-mixins.scss +4 -3
  58. package/scss/mixins/_tab-indicator-mixins.scss +12 -0
  59. package/scss/mixins/_typography-mixins.scss +1 -1
  60. package/scss/mixins/index.scss +14 -0
  61. package/scss/shared/_base.scss +32 -1
  62. package/scss/shared/_button-mixin.scss +7 -5
  63. package/scss/shared/_table.scss +35 -4
  64. package/scss/shared/nav.scss +4 -0
  65. package/scss/shared/shimmer.scss +1 -1
  66. package/scss/table-controls.scss +206 -0
  67. package/scss/themes/_dark.scss +1 -3
  68. package/scss/themes/_index.scss +1 -1
  69. package/scss/themes/_light.scss +46 -6
  70. package/scss/themes/_modes.scss +11 -11
  71. package/scss/themes/_openbyte.scss +944 -0
  72. package/scss/themes/_typography.scss +4 -2
  73. package/scss/variables/index.scss +0 -9
  74. package/src/components/alert/alert.component.ts +14 -4
  75. package/src/components/alert/alert.scss +55 -69
  76. package/src/components/alert/alert.test.ts +8 -0
  77. package/src/components/animated-button/animated-button.component.ts +3 -2
  78. package/src/components/animated-button/animated-button.scss +6 -23
  79. package/src/components/animated-button/animated-button.test.ts +4 -3
  80. package/src/components/avatar-group/avatar-group.component.ts +84 -0
  81. package/src/components/avatar-group/avatar-group.scss +54 -0
  82. package/src/components/avatar-group/avatar-group.test.ts +59 -0
  83. package/src/components/avatar-group/index.ts +12 -0
  84. package/src/components/badge/badge.component.ts +49 -0
  85. package/src/components/badge/badge.scss +80 -0
  86. package/src/components/badge/badge.test.ts +34 -0
  87. package/src/components/badge/index.ts +12 -0
  88. package/src/components/bulk-actions/bulk-actions.component.ts +14 -2
  89. package/src/components/button/button.component.ts +228 -8
  90. package/src/components/button/button.scss +115 -32
  91. package/src/components/button/button.test.ts +122 -0
  92. package/src/components/button-menu/button-menu.component.ts +32 -11
  93. package/src/components/button-menu/button-menu.scss +5 -1
  94. package/src/components/channel-tile/channel-tile.component.ts +34 -27
  95. package/src/components/channel-tile/channel-tile.scss +76 -43
  96. package/src/components/chart/builders.test.ts +46 -0
  97. package/src/components/chart/builders.ts +27 -3
  98. package/src/components/chart/chart-live.test.ts +4 -6
  99. package/src/components/chart/chart.component.ts +125 -5
  100. package/src/components/chart/chart.scss +121 -0
  101. package/src/components/chart/chart.test.ts +81 -0
  102. package/src/components/chat-message/chat-message.component.ts +21 -1
  103. package/src/components/chat-message/chat-message.scss +13 -2
  104. package/src/components/chat-message/chat-message.test.ts +9 -0
  105. package/src/components/checkbox/checkbox.component.ts +61 -27
  106. package/src/components/checkbox/checkbox.scss +58 -25
  107. package/src/components/checkbox-group/checkbox-group.component.ts +7 -1
  108. package/src/components/chip/chip.component.ts +11 -1
  109. package/src/components/chip/chip.scss +91 -26
  110. package/src/components/chip/chip.test.ts +17 -0
  111. package/src/components/collapsible/collapsible.component.ts +17 -3
  112. package/src/components/collapsible/collapsible.scss +19 -10
  113. package/src/components/color-picker/color-picker.component.ts +277 -0
  114. package/src/components/color-picker/color-picker.scss +141 -0
  115. package/src/components/color-picker/color-picker.test.ts +57 -0
  116. package/src/components/color-picker/index.ts +12 -0
  117. package/src/components/cols/cols.component.ts +10 -0
  118. package/src/components/cols/cols.test.ts +17 -0
  119. package/src/components/confirm/confirm.component.ts +20 -6
  120. package/src/components/confirm/confirm.test.ts +52 -0
  121. package/src/components/content-block/content-block.component.ts +38 -9
  122. package/src/components/content-block/content-block.scss +11 -5
  123. package/src/components/content-block/content-block.test.ts +26 -0
  124. package/src/components/copy-button/copy-button.component.ts +2 -2
  125. package/src/components/copy-button/copy-button.scss +17 -4
  126. package/src/components/data-select/data-select.component.ts +3 -1
  127. package/src/components/data-table/data-table.component.ts +362 -140
  128. package/src/components/data-table/data-table.scss +133 -60
  129. package/src/components/data-table/data-table.test.ts +356 -4
  130. package/src/components/data-table-filter/data-table-filter.component.ts +426 -406
  131. package/src/components/data-table-filter/data-table-filter.scss +176 -148
  132. package/src/components/data-table-filter/data-table-filter.test.ts +271 -273
  133. package/src/components/data-table-search/data-table-search.component.ts +4 -2
  134. package/src/components/data-table-search/data-table-search.scss +8 -1
  135. package/src/components/data-table-search/data-table-search.test.ts +29 -0
  136. package/src/components/date-range/date-range-math.test.ts +78 -0
  137. package/src/components/date-range/date-range-math.ts +105 -0
  138. package/src/components/date-range/date-range.component.ts +375 -0
  139. package/src/components/date-range/date-range.scss +272 -0
  140. package/src/components/date-range/date-range.test.ts +247 -0
  141. package/src/components/date-range/index.ts +12 -0
  142. package/src/components/datepicker/datepicker.component.ts +44 -7
  143. package/src/components/datepicker/datepicker.scss +9 -0
  144. package/src/components/datepicker/datepicker.test.ts +2 -2
  145. package/src/components/dialog/dialog.component.ts +38 -19
  146. package/src/components/dialog/dialog.scss +65 -36
  147. package/src/components/dialog/dialog.test.ts +14 -0
  148. package/src/components/diff/diff.component.ts +55 -0
  149. package/src/components/diff/diff.scss +46 -0
  150. package/src/components/diff/diff.test.ts +15 -0
  151. package/src/components/diff/index.ts +12 -0
  152. package/src/components/diff-row/diff-row.component.ts +75 -0
  153. package/src/components/diff-row/diff-row.scss +70 -0
  154. package/src/components/diff-row/diff-row.test.ts +37 -0
  155. package/src/components/diff-row/index.ts +12 -0
  156. package/src/components/dropdown/dropdown.component.ts +12 -10
  157. package/src/components/dropdown/dropdown.scss +2 -0
  158. package/src/components/editor/editor.component.ts +159 -11
  159. package/src/components/editor/editor.scss +250 -1
  160. package/src/components/editor/editor.test.ts +31 -3
  161. package/src/components/editor/modules/ai/panel/ai-panel.scss +0 -1
  162. package/src/components/editor/modules/attachment/attachment.ts +53 -31
  163. package/src/components/editor/modules/context-menu/context-menu.ts +17 -0
  164. package/src/components/editor/modules/dialog/dialog.component.ts +23 -1
  165. package/src/components/editor/modules/dialog/dialog.test.ts +28 -0
  166. package/src/components/editor/modules/emoji/emoji.ts +4 -5
  167. package/src/components/editor/modules/merge-field/merge-field.ts +83 -0
  168. package/src/components/editor/modules/toolbar/toolbar.component.ts +121 -68
  169. package/src/components/editor/modules/toolbar/toolbar.scss +38 -0
  170. package/src/components/editor/modules/toolbar/toolbar.ts +25 -1
  171. package/src/components/empty-state/empty-state.component.ts +6 -1
  172. package/src/components/empty-state/empty-state.scss +21 -4
  173. package/src/components/expanding-action/expanding-action.component.ts +22 -34
  174. package/src/components/expanding-action/expanding-action.scss +3 -45
  175. package/src/components/expanding-action/expanding-action.test.ts +2 -1
  176. package/src/components/file/file.component.ts +30 -2
  177. package/src/components/file/file.scss +6 -0
  178. package/src/components/flow-builder/flow-builder.component.ts +36 -3
  179. package/src/components/flow-builder/flow-builder.scss +0 -6
  180. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.component.ts +8 -0
  181. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.scss +10 -5
  182. package/src/components/flow-builder/modules/flow-node/flow-node.component.ts +17 -0
  183. package/src/components/flow-builder/modules/flow-node/flow-node.scss +10 -0
  184. package/src/components/form-actions/form-actions.component.ts +48 -2
  185. package/src/components/form-actions/form-actions.scss +1 -1
  186. package/src/components/form-group/form-group.component.ts +10 -3
  187. package/src/components/form-group/form-group.scss +37 -4
  188. package/src/components/form-group/form-group.test.ts +10 -0
  189. package/src/components/header/header.component.ts +11 -4
  190. package/src/components/header/header.scss +47 -5
  191. package/src/components/hover-container/hover-container.component.ts +4 -5
  192. package/src/components/icon/icon.component.ts +95 -9
  193. package/src/components/icon/icon.scss +70 -6
  194. package/src/components/icon/icon.test.ts +55 -0
  195. package/src/components/icon-picker/icon-picker.component.ts +35 -1
  196. package/src/components/inline-edit/inline-edit.component.ts +38 -8
  197. package/src/components/inline-edit/inline-edit.scss +128 -19
  198. package/src/components/input/input.component.ts +173 -297
  199. package/src/components/input/input.scss +65 -43
  200. package/src/components/input/input.test.ts +86 -4
  201. package/src/components/item/item.component.ts +12 -0
  202. package/src/components/item/item.scss +102 -3
  203. package/src/components/item/item.test.ts +23 -0
  204. package/src/components/key/key.component.ts +2 -2
  205. package/src/components/key/key.scss +11 -0
  206. package/src/components/key-value/index.ts +12 -0
  207. package/src/components/key-value/key-value.component.ts +160 -0
  208. package/src/components/key-value/key-value.scss +20 -0
  209. package/src/components/key-value/key-value.test.ts +22 -0
  210. package/src/components/markdown-editor/markdown-editor.component.ts +8 -1
  211. package/src/components/menu/menu.component.ts +21 -2
  212. package/src/components/menu/menu.scss +43 -23
  213. package/src/components/menu/menu.test.ts +33 -0
  214. package/src/components/menu-item/menu-item.component.ts +13 -2
  215. package/src/components/menu-item/menu-item.scss +56 -23
  216. package/src/components/menu-item/menu-item.test.ts +31 -0
  217. package/src/components/menu-item/submenu-controller.ts +25 -15
  218. package/src/components/menu-label/index.ts +12 -0
  219. package/src/components/menu-label/menu-label.component.ts +30 -0
  220. package/src/components/menu-label/menu-label.scss +18 -0
  221. package/src/components/nav-item/index.ts +12 -0
  222. package/src/components/nav-item/nav-item.component.ts +83 -0
  223. package/src/components/nav-item/nav-item.scss +128 -0
  224. package/src/components/nav-list/index.ts +12 -0
  225. package/src/components/nav-list/nav-list.component.ts +313 -0
  226. package/src/components/nav-list/nav-list.scss +87 -0
  227. package/src/components/nav-list/nav-list.test.ts +250 -0
  228. package/src/components/navbar/navbar.component.ts +235 -171
  229. package/src/components/navbar/navbar.scss +333 -169
  230. package/src/components/navbar/navbar.test.ts +63 -143
  231. package/src/components/page/page.component.ts +114 -29
  232. package/src/components/page/page.scss +223 -95
  233. package/src/components/page/page.test.ts +214 -3
  234. package/src/components/page-builder/page-builder.component.ts +51 -5
  235. package/src/components/page-builder/page-builder.scss +6 -1
  236. package/src/components/page-nav/page-nav.component.ts +25 -3
  237. package/src/components/page-nav/page-nav.scss +10 -2
  238. package/src/components/pagination/pagination.scss +1 -1
  239. package/src/components/panel/panel.component.ts +14 -13
  240. package/src/components/panel/panel.scss +14 -10
  241. package/src/components/panel/panel.test.ts +42 -0
  242. package/src/components/popup/popup.component.ts +20 -13
  243. package/src/components/popup/popup.test.ts +21 -1
  244. package/src/components/priority-list/priority-list.component.ts +157 -172
  245. package/src/components/priority-list/priority-list.scss +113 -17
  246. package/src/components/priority-list/priority-list.test.ts +301 -3
  247. package/src/components/progress-bar/progress-bar.component.ts +1 -1
  248. package/src/components/progress-bar/progress-bar.scss +16 -4
  249. package/src/components/progress-tile/progress-tile.scss +1 -1
  250. package/src/components/query-builder/query-builder.component.ts +85 -10
  251. package/src/components/query-builder/query-builder.scss +7 -1
  252. package/src/components/query-builder/query-builder.test.ts +40 -0
  253. package/src/components/radio/radio.component.ts +57 -18
  254. package/src/components/radio/radio.scss +101 -26
  255. package/src/components/radio-group/radio-group.component.ts +45 -7
  256. package/src/components/radio-group/radio-group.scss +17 -0
  257. package/src/components/radio-group/radio-group.test.ts +63 -2
  258. package/src/components/rating/rating.component.ts +23 -0
  259. package/src/components/rating/rating.scss +1 -1
  260. package/src/components/remarkd-editor/remarkd-editor.component.ts +60 -5
  261. package/src/components/remarkd-editor/remarkd-editor.scss +12 -4
  262. package/src/components/report-table/index.ts +12 -0
  263. package/src/components/report-table/report-format.test.ts +86 -0
  264. package/src/components/report-table/report-format.ts +72 -0
  265. package/src/components/report-table/report-math.test.ts +74 -0
  266. package/src/components/report-table/report-math.ts +252 -0
  267. package/src/components/report-table/report-table.component.ts +681 -0
  268. package/src/components/report-table/report-table.scss +328 -0
  269. package/src/components/report-table/report-table.test.ts +702 -0
  270. package/src/components/reveal/reveal.component.ts +15 -1
  271. package/src/components/reveal/reveal.scss +5 -0
  272. package/src/components/schedule-builder/schedule-builder.component.ts +23 -8
  273. package/src/components/scroll-container/scroll-container.component.ts +19 -1
  274. package/src/components/scroll-container/scroll-container.scss +6 -1
  275. package/src/components/select/select.component.ts +52 -36
  276. package/src/components/select/select.scss +42 -25
  277. package/src/components/select/select.test.ts +14 -2
  278. package/src/components/settings-container/settings-container.scss +18 -5
  279. package/src/components/sidebar/sidebar.component.ts +8 -1
  280. package/src/components/sidebar/sidebar.scss +6 -1
  281. package/src/components/skeleton/skeleton.component.ts +3 -3
  282. package/src/components/skeleton/skeleton.scss +6 -6
  283. package/src/components/skeleton/skeleton.test.ts +9 -0
  284. package/src/components/slash-menu/slash-menu.scss +1 -1
  285. package/src/components/slideout/slideout.component.ts +20 -3
  286. package/src/components/slideout/slideout.scss +13 -6
  287. package/src/components/slideout/slideout.test.ts +19 -0
  288. package/src/components/split-button/split-button.component.ts +1 -1
  289. package/src/components/split-pane/split-pane.component.ts +71 -8
  290. package/src/components/split-pane/split-pane.scss +145 -41
  291. package/src/components/split-pane/split-pane.test.ts +23 -3
  292. package/src/components/stat/stat.component.ts +209 -14
  293. package/src/components/stat/stat.scss +305 -5
  294. package/src/components/stat/stat.test.ts +143 -2
  295. package/src/components/status-indicator/status-indicator.scss +22 -21
  296. package/src/components/stepper/stepper.scss +3 -3
  297. package/src/components/tab/tab.component.ts +1 -0
  298. package/src/components/table/table.component.ts +12 -1
  299. package/src/components/table/table.scss +21 -13
  300. package/src/components/table/table.test.ts +17 -0
  301. package/src/components/tabs/tabs.component.ts +150 -37
  302. package/src/components/tabs/tabs.scss +48 -7
  303. package/src/components/tabs/tabs.test.ts +169 -0
  304. package/src/components/textarea/textarea.component.ts +25 -3
  305. package/src/components/textarea/textarea.scss +10 -0
  306. package/src/components/textarea/textarea.test.ts +8 -4
  307. package/src/components/theme-editor/theme-editor.scss +0 -6
  308. package/src/components/tile/tile.component.ts +32 -2
  309. package/src/components/tile/tile.scss +40 -7
  310. package/src/components/tile/tile.test.ts +10 -0
  311. package/src/components/toggle/toggle.component.ts +23 -7
  312. package/src/components/toggle/toggle.scss +36 -29
  313. package/src/components/toggle/toggle.test.ts +17 -0
  314. package/src/components/tooltip/tooltip.component.ts +3 -0
  315. package/src/components/tooltip/tooltip.scss +11 -6
  316. package/src/components/tooltip/tooltip.test.ts +12 -0
  317. package/src/components/translation-field/index.ts +12 -0
  318. package/src/components/translation-field/translation-field.component.ts +55 -0
  319. package/src/components/translation-field/translation-field.scss +101 -0
  320. package/src/components/translation-fields/index.ts +12 -0
  321. package/src/components/translation-fields/translation-fields.component.ts +80 -0
  322. package/src/components/translation-fields/translation-fields.scss +60 -0
  323. package/src/components/translation-grid/index.ts +12 -0
  324. package/src/components/translation-grid/translation-grid.component.ts +157 -0
  325. package/src/components/translation-grid/translation-grid.scss +138 -0
  326. package/src/components/translation-grid/translation-grid.test.ts +28 -0
  327. package/src/components/vertical-stepper/vertical-stepper.component.ts +35 -9
  328. package/src/components/vertical-stepper/vertical-stepper.scss +110 -39
  329. package/src/components/vertical-stepper/vertical-stepper.test.ts +35 -0
  330. package/src/components/well/well.scss +2 -2
  331. package/src/events/events.ts +2 -0
  332. package/src/events/zn-chart-click.ts +13 -0
  333. package/src/events/zn-report-change.ts +7 -0
  334. package/src/form-control.scss +36 -3
  335. package/src/internal/anchored-popover.ts +175 -0
  336. package/src/internal/animate.ts +19 -5
  337. package/src/internal/cosmic-border.ts +15 -0
  338. package/src/internal/form.ts +1 -1
  339. package/src/internal/hover-intent.ts +15 -0
  340. package/src/internal/input-modality.ts +15 -0
  341. package/src/internal/pointer-intent.ts +37 -0
  342. package/src/internal/reorder.ts +625 -0
  343. package/src/internal/scroll.ts +51 -3
  344. package/src/internal/selection-card.ts +1 -1
  345. package/src/internal/tab-indicator.ts +92 -0
  346. package/src/internal/table-sort.ts +25 -0
  347. package/src/internal/table-tabs.ts +108 -0
  348. package/src/internal/test-drag.ts +35 -0
  349. package/src/internal/theme-openbyte.test.ts +126 -0
  350. package/src/internal/theme.ts +4 -4
  351. package/src/internal/zinc-element.ts +2 -2
  352. package/src/selection-card.scss +25 -0
  353. package/src/types/web-test-runner-commands.d.ts +1 -0
  354. package/src/utilities/color.test.ts +43 -0
  355. package/src/utilities/color.ts +189 -0
  356. package/src/zinc.ts +14 -0
  357. package/.github/workflows/eleventy_build.yml +0 -42
  358. package/scss/themes/_aura.scss +0 -114
@@ -1,175 +1,203 @@
1
1
  @use "../../wc";
2
2
 
3
- // Fields inside a panel that already draws its own edge
4
- @mixin flush-input {
5
- --zn-input-background-color: transparent;
6
- --zn-input-background-color-hover: transparent;
7
- --zn-input-background-color-focus: transparent;
8
- --zn-input-border-color: transparent;
9
- --zn-input-border-color-hover: transparent;
10
- --zn-input-border-color-focus: transparent;
11
- --zn-input-focus-ring-color: transparent;
12
- }
13
-
14
3
  :host {
15
- display: block;
4
+ display: inline-flex;
5
+ flex-wrap: wrap;
6
+ align-items: center;
7
+ gap: var(--zn-spacing-x-small);
16
8
  }
17
9
 
18
- .filter-bar {
10
+ .filter__chips {
19
11
  display: flex;
20
- flex-direction: row;
21
- align-items: center;
22
12
  flex-wrap: wrap;
13
+ align-items: center;
23
14
  gap: var(--zn-spacing-x-small);
15
+ }
24
16
 
25
- &__clear::part(base) {
26
- height: 32px;
27
- min-height: 32px;
28
- padding: 0 var(--zn-spacing-x-small);
29
- font-weight: var(--zn-font-weight-normal);
30
- text-transform: none;
31
- white-space: nowrap;
32
- }
17
+ :host([data-chips]) {
18
+ display: block;
19
+ }
33
20
 
34
- &__clear::part(base) {
35
- color: rgb(var(--zn-primary));
36
- }
21
+ :host([data-chips]) .filter__chips {
22
+ padding: var(--zn-table-edge-padding, var(--zn-spacing-medium));
23
+ border-bottom: 1px solid rgb(var(--zn-border-color));
24
+ }
37
25
 
38
- // The chip draws the outline so its trigger and remove button read as one control
39
- &__chip {
40
- display: inline-flex;
41
- align-items: center;
42
- height: 32px;
43
- padding-right: var(--zn-spacing-x-small);
44
- border: 1px solid rgb(var(--zn-border-color));
45
- border-radius: var(--zn-border-radius-pill);
46
- background-color: rgb(var(--zn-panel));
47
-
48
- &:hover {
49
- background-color: rgba(var(--zn-color-tab), 0.5);
50
- }
51
- }
26
+ .filter__chips__label {
27
+ margin-right: 4px;
28
+ color: color-mix(in srgb, rgb(var(--zn-text)) 65%, transparent);
29
+ }
52
30
 
53
- // The X's own box carries the trailing gap, so the trigger adds none
54
- &__pill::part(base),
55
- &__pill::part(base):hover {
56
- border-color: transparent;
57
- background: transparent;
58
- padding-right: 0;
59
- }
31
+ // Native buttons: reset what the shared button mixin applies
32
+ .filter__chips__clear,
33
+ .filter__chip__text,
34
+ .filter__chip__remove,
35
+ .filter__suggestion {
36
+ margin: 0;
37
+ width: auto;
38
+ height: auto;
39
+ min-height: 0;
40
+ max-height: none;
41
+ padding: 0;
42
+ border: 0;
43
+ background: none;
44
+ box-shadow: none;
45
+ font: inherit;
46
+ text-transform: none;
47
+ letter-spacing: normal;
48
+ color: inherit;
49
+ cursor: pointer;
50
+ }
60
51
 
61
- // Same box as the trigger, so the X centres on the chip's axis rather than
62
- // inside a smaller box centred within it. The hover tint is clipped to the
63
- // padded content box so it reads as a disc on the icon, not a full-height bar
64
- &__remove::part(base) {
65
- width: 24px;
66
- min-width: 24px;
67
- height: 32px;
68
- min-height: 32px;
69
- max-height: 32px;
70
- padding: 4px 0;
71
- background: transparent;
72
- background-clip: content-box;
73
- border-radius: var(--zn-border-radius-circle);
74
- color: var(--zn-text-color);
75
- }
52
+ .filter__chips__clear {
53
+ height: 28px;
54
+ padding: 0 var(--zn-spacing-x-small);
55
+ border-radius: var(--zn-border-radius);
56
+ font-weight: var(--zn-font-weight-medium);
57
+ color: color-mix(in srgb, rgb(var(--zn-text)) 80%, transparent);
76
58
 
77
- &__remove::part(base):hover {
78
- background: rgb(var(--zn-color-border));
79
- background-clip: content-box;
59
+ &:hover:not([disabled]) {
60
+ background: color-mix(in srgb, rgb(var(--zn-text)) 6%, transparent);
61
+ color: rgb(var(--zn-text));
80
62
  }
63
+ }
81
64
 
82
- // Value editors get their own panel: a calendar has no business inside a menu's
83
- // scroll container. The panel draws the only edge, so the editor inside it runs
84
- // flush to it
85
- &__editor {
86
- display: flex;
87
- flex-direction: column;
88
- align-items: stretch;
89
- overflow: hidden;
90
- border: 1px solid rgb(var(--zn-border-color));
91
- border-radius: var(--zn-border-radius);
92
- background-color: rgb(var(--zn-panel));
93
- filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0 4px 3px rgba(0, 0, 0, 0.1));
94
-
95
- zn-datepicker {
96
- --zn-datepicker-inline-border-color: transparent;
97
- }
98
-
99
- zn-input {
100
- @include flush-input;
101
- min-width: 200px;
102
- }
103
- }
65
+ .filter__chip {
66
+ display: inline-flex;
67
+ align-items: center;
68
+ gap: 0.3rem;
69
+ height: 28px;
70
+ padding: 0 0.75rem;
71
+ border: 1px solid var(--zn-color-primary-400, color-mix(in srgb, rgb(var(--zn-primary)) 40%, rgb(var(--zn-panel))));
72
+ border-radius: 999px;
73
+ background: var(--zn-color-info-bg, color-mix(in srgb, rgb(var(--zn-primary)) 10%, rgb(var(--zn-panel))));
74
+ color: var(--zn-color-info-fg, rgb(var(--zn-primary)));
75
+ font-size: 12px;
76
+ font-weight: var(--zn-font-weight-medium);
77
+ white-space: nowrap;
78
+ }
104
79
 
105
- // A long option list has to scroll rather than run off the screen, and its search
106
- // field stays put while it does
107
- zn-menu {
108
- --zn-menu-max-height: 320px;
109
- }
80
+ .filter__chip__text:hover:not([disabled]) {
81
+ background: none;
82
+ color: inherit;
83
+ }
110
84
 
111
- // Full-bleed so the rows scrolling underneath never show around or above it
112
- &__option-search {
113
- @include flush-input;
114
- position: sticky;
115
- top: calc(-1 * var(--zn-spacing-2x-small));
116
- z-index: 1;
117
- margin: calc(-1 * var(--zn-spacing-2x-small)) calc(-1 * var(--zn-spacing-2x-small)) 0;
118
- background-color: rgb(var(--zn-panel));
119
- border-bottom: 1px solid rgb(var(--zn-border-color));
85
+ .filter__chip__remove {
86
+ display: inline-grid;
87
+ place-content: center;
88
+ width: 18px;
89
+ height: 18px;
90
+ margin: 0 -0.5rem 0 -0.1rem;
91
+ border-radius: 50%;
92
+ color: color-mix(in srgb, rgb(var(--zn-text)) 55%, transparent);
93
+
94
+ &:hover:not([disabled]) {
95
+ background: color-mix(in srgb, rgb(var(--zn-text)) 8%, transparent);
96
+ color: rgb(var(--zn-text));
120
97
  }
98
+ }
121
99
 
122
- &__suggestions {
123
- display: flex;
124
- flex-direction: column;
125
- align-items: stretch;
126
- max-height: 220px;
127
- overflow-y: auto;
128
- border-top: 1px solid rgb(var(--zn-border-color));
129
- @include wc.scrollbars;
130
- }
100
+ // Fixed so a panel's overflow can't clip it
101
+ .filter__pop {
102
+ position: fixed;
103
+ z-index: var(--zn-z-index-dropdown, 900);
104
+ width: min(704px, 94vw);
105
+ box-sizing: border-box;
106
+ background: rgb(var(--zn-panel));
107
+ border: 1px solid rgb(var(--zn-border-color));
108
+ border-radius: var(--zn-border-radius-large, 8px);
109
+ box-shadow: var(--zn-shadow-large, 0 12px 32px rgb(15 23 42 / 0.14));
110
+ color: rgb(var(--zn-text));
111
+ font-size: var(--zn-font-size-medium, 14px);
112
+ text-align: left;
113
+ }
131
114
 
132
- &__suggestion::part(base) {
133
- justify-content: flex-start;
134
- padding: var(--zn-spacing-x-small) var(--zn-spacing-small);
135
- font-weight: var(--zn-font-weight-normal);
136
- text-transform: none;
137
- color: rgb(var(--zn-text));
138
- text-align: left;
139
- }
115
+ .filter__pop__head {
116
+ display: flex;
117
+ align-items: baseline;
118
+ gap: 12px;
119
+ padding: 12px var(--zn-spacing-small);
120
+ border-bottom: 1px solid rgb(var(--zn-border-color));
121
+ }
140
122
 
141
- // Segmented operator picker at the top of a value editor
142
- &__operators {
143
- display: flex;
144
- flex-wrap: wrap;
145
- gap: var(--zn-spacing-2x-small);
146
- padding: var(--zn-spacing-x-small);
147
- border-bottom: 1px solid rgb(var(--zn-border-color));
148
- }
123
+ .filter__pop__meta {
124
+ color: color-mix(in srgb, rgb(var(--zn-text)) 65%, transparent);
125
+ }
149
126
 
150
- &__operator::part(base) {
151
- height: 26px;
152
- min-height: 26px;
153
- min-width: 30px;
154
- padding: 0 var(--zn-spacing-x-small);
155
- font-size: var(--zn-font-size-small);
156
- font-weight: var(--zn-font-weight-normal);
157
- text-transform: none;
158
- color: rgb(var(--zn-text));
159
- background-color: transparent;
160
- border-color: rgb(var(--zn-border-color));
161
- }
127
+ .filter__pop__body {
128
+ display: flex;
129
+ flex-direction: column;
130
+ gap: var(--zn-spacing-x-small);
131
+ padding: var(--zn-spacing-small);
132
+ max-height: min(22rem, 55vh);
133
+ overflow: auto;
134
+ }
162
135
 
163
- &__operator--selected::part(base) {
164
- color: rgb(var(--zn-primary));
165
- border-color: rgb(var(--zn-primary));
166
- background-color: rgba(var(--zn-primary), 0.05);
167
- }
136
+ .filter__rule {
137
+ display: grid;
138
+ grid-template-columns: minmax(176px, 240px) minmax(136px, 176px) minmax(0, 1fr) auto;
139
+ gap: var(--zn-spacing-x-small);
140
+ align-items: center;
141
+ }
142
+
143
+ .filter__suggestions {
144
+ grid-column: 3;
145
+ display: flex;
146
+ flex-direction: column;
147
+ max-height: 220px;
148
+ overflow-y: auto;
149
+ border: 1px solid rgb(var(--zn-border-color));
150
+ border-radius: var(--zn-border-radius);
151
+ @include wc.scrollbars;
152
+ }
168
153
 
169
- &__separator {
170
- flex: none;
171
- height: 1px;
172
- margin: var(--zn-spacing-2x-small) 0;
173
- background-color: rgb(var(--zn-border-color));
154
+ .filter__suggestion {
155
+ padding: var(--zn-spacing-x-small) var(--zn-spacing-small);
156
+ text-align: left;
157
+
158
+ &:hover:not([disabled]) {
159
+ background: color-mix(in srgb, rgb(var(--zn-text)) 6%, transparent);
174
160
  }
175
161
  }
162
+
163
+ .filter__pop__foot {
164
+ display: flex;
165
+ align-items: center;
166
+ gap: var(--zn-spacing-x-small);
167
+ padding: 12px var(--zn-spacing-small);
168
+ border-top: 1px solid rgb(var(--zn-border-color));
169
+ }
170
+
171
+ .filter__pop__spacer {
172
+ flex: 1 1 auto;
173
+ }
174
+
175
+ .filter__toggle--active {
176
+ --zn-button-border-color: var(--zn-color-primary-400, rgb(var(--zn-primary)));
177
+ }
178
+
179
+ .filter__toggle--active::part(base) {
180
+ background-color: var(--zn-color-info-bg, rgb(var(--zn-color-tab)));
181
+ color: var(--zn-color-info-fg, rgb(var(--zn-primary)));
182
+ }
183
+
184
+ // Reads as selected the way a focused zn-input does, both from the keyboard and while its popover is open
185
+ .filter__toggle::part(base):focus-visible,
186
+ .filter__toggle--open::part(base) {
187
+ outline: none;
188
+ // zn-button's icon border is !important, so it can only be recoloured through its token
189
+ --zn-button-border-color: var(--zn-input-border-color-focus);
190
+ box-shadow: 0 0 0 var(--zn-focus-ring-width) var(--zn-input-focus-ring-color);
191
+ }
192
+
193
+ .filter__toggle::part(base)::after {
194
+ top: -6px;
195
+ inset-inline-end: -5px;
196
+ min-width: 18px;
197
+ height: 18px;
198
+ padding: 0 5px;
199
+ transform: none;
200
+ font-size: 11px;
201
+ font-weight: var(--zn-font-weight-semibold, 600);
202
+ line-height: 1;
203
+ }