@zeyos/zx 4.3.4 → 4.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 (128) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/README.md +7 -0
  3. package/dist/types/components/activity-item/activity-item.d.ts +351 -0
  4. package/dist/types/components/activity-list/activity-list.d.ts +195 -0
  5. package/dist/types/components/app-sidebar/app-sidebar.d.ts +28 -0
  6. package/dist/types/components/button/button.d.ts +8 -0
  7. package/dist/types/components/calendar/calendar.d.ts +19 -0
  8. package/dist/types/components/card/card.d.ts +7 -0
  9. package/dist/types/components/card-view/card-view.d.ts +11 -3
  10. package/dist/types/components/card-view/record-card.d.ts +7 -1
  11. package/dist/types/components/code-editor/code-editor.d.ts +160 -0
  12. package/dist/types/components/code-editor/field-adapter.d.ts +5 -0
  13. package/dist/types/components/context-menu/context-menu.d.ts +18 -2
  14. package/dist/types/components/date-picker/date-picker.d.ts +8 -0
  15. package/dist/types/components/date-picker/time-picker.d.ts +7 -0
  16. package/dist/types/components/dialog/dialog.d.ts +29 -0
  17. package/dist/types/components/entity-ref/entity-ref.d.ts +331 -0
  18. package/dist/types/components/file-item/file-item.d.ts +234 -0
  19. package/dist/types/components/file-list/file-list.d.ts +171 -0
  20. package/dist/types/components/filter/filter.d.ts +91 -36
  21. package/dist/types/components/filter-panel/filter-panel.d.ts +449 -0
  22. package/dist/types/components/kanban-view/kanban-card.d.ts +138 -0
  23. package/dist/types/components/kanban-view/kanban-view.d.ts +170 -4
  24. package/dist/types/components/launcher/launcher.d.ts +19 -12
  25. package/dist/types/components/list-toolbar/list-toolbar.d.ts +599 -0
  26. package/dist/types/components/menu-button/menu-button.d.ts +4 -37
  27. package/dist/types/components/message/message.d.ts +7 -0
  28. package/dist/types/components/modal/modal.d.ts +48 -0
  29. package/dist/types/components/navigation-bar/navigation-bar.d.ts +105 -21
  30. package/dist/types/components/panel/panel.d.ts +7 -0
  31. package/dist/types/components/search/search.d.ts +7 -0
  32. package/dist/types/components/select/select.d.ts +4 -0
  33. package/dist/types/components/sort-control/sort-control.d.ts +105 -0
  34. package/dist/types/components/stat-tile/stat-tile.d.ts +277 -0
  35. package/dist/types/components/tabbox/tabbox.d.ts +7 -0
  36. package/dist/types/components/table/table.d.ts +144 -0
  37. package/dist/types/components/table-view/table-view.d.ts +11 -5
  38. package/dist/types/components/timebox/timebox.d.ts +7 -0
  39. package/dist/types/components/value-list/value-list.d.ts +8 -0
  40. package/dist/types/components/view/record-view.d.ts +96 -5
  41. package/dist/types/core/icons.d.ts +17 -0
  42. package/dist/types/index.d.ts +11 -0
  43. package/dist/types/internal/app-rail.d.ts +10 -0
  44. package/dist/types/internal/menu-items.d.ts +134 -0
  45. package/dist/zx-zeyos.esm.js +616 -77
  46. package/dist/zx-zeyos.esm.min.js +8 -1
  47. package/dist/zx.css +2085 -238
  48. package/dist/zx.esm.js +6704 -1542
  49. package/dist/zx.esm.min.js +10 -3
  50. package/dist/zx.global.js +6704 -1542
  51. package/dist/zx.global.min.js +10 -3
  52. package/dist/zx.min.css +1 -1
  53. package/docs/api.json +1479 -127
  54. package/docs/llms.md +315 -10
  55. package/docs/llms.txt +11 -5
  56. package/package.json +1 -1
  57. package/src/components/activity-item/activity-item.css +137 -0
  58. package/src/components/activity-item/activity-item.js +599 -0
  59. package/src/components/activity-list/activity-list.css +64 -0
  60. package/src/components/activity-list/activity-list.js +375 -0
  61. package/src/components/app-rail/app-rail.css +227 -19
  62. package/src/components/app-sidebar/app-sidebar.css +414 -24
  63. package/src/components/app-sidebar/app-sidebar.js +65 -5
  64. package/src/components/button/button.css +8 -0
  65. package/src/components/button/button.js +6 -1
  66. package/src/components/calendar/calendar.js +33 -3
  67. package/src/components/card/card.js +12 -1
  68. package/src/components/card-view/card-view.css +1 -0
  69. package/src/components/card-view/card-view.js +25 -9
  70. package/src/components/card-view/record-card.js +7 -3
  71. package/src/components/code-editor/code-editor.css +67 -0
  72. package/src/components/code-editor/code-editor.js +288 -0
  73. package/src/components/code-editor/field-adapter.js +34 -0
  74. package/src/components/context-menu/context-menu.css +80 -3
  75. package/src/components/context-menu/context-menu.js +22 -30
  76. package/src/components/date-picker/date-picker.js +22 -8
  77. package/src/components/date-picker/month-picker.js +3 -3
  78. package/src/components/date-picker/time-picker.js +20 -8
  79. package/src/components/dialog/dialog.js +88 -66
  80. package/src/components/dropdown/dropdown.js +2 -2
  81. package/src/components/entity-ref/entity-ref.css +182 -0
  82. package/src/components/entity-ref/entity-ref.js +496 -0
  83. package/src/components/file-item/file-item.css +88 -0
  84. package/src/components/file-item/file-item.js +371 -0
  85. package/src/components/file-list/file-list.css +51 -0
  86. package/src/components/file-list/file-list.js +320 -0
  87. package/src/components/filter/filter.css +27 -1
  88. package/src/components/filter/filter.js +199 -45
  89. package/src/components/filter-panel/filter-panel.css +104 -0
  90. package/src/components/filter-panel/filter-panel.js +964 -0
  91. package/src/components/kanban-view/kanban-card.js +239 -0
  92. package/src/components/kanban-view/kanban-view.css +194 -0
  93. package/src/components/kanban-view/kanban-view.js +251 -8
  94. package/src/components/launcher/launcher.js +59 -27
  95. package/src/components/list-toolbar/list-toolbar.css +189 -0
  96. package/src/components/list-toolbar/list-toolbar.js +851 -0
  97. package/src/components/menu-button/menu-button.css +80 -3
  98. package/src/components/menu-button/menu-button.js +21 -37
  99. package/src/components/message/message.css +5 -2
  100. package/src/components/message/message.js +13 -2
  101. package/src/components/modal/modal.css +15 -0
  102. package/src/components/modal/modal.js +141 -0
  103. package/src/components/navigation-bar/navigation-bar.css +77 -2
  104. package/src/components/navigation-bar/navigation-bar.js +171 -4
  105. package/src/components/panel/panel.js +13 -2
  106. package/src/components/search/search.js +17 -5
  107. package/src/components/select/field-adapter.js +4 -1
  108. package/src/components/select/select.js +3 -0
  109. package/src/components/sort-control/sort-control.css +17 -0
  110. package/src/components/sort-control/sort-control.js +140 -0
  111. package/src/components/stat-tile/stat-tile.css +213 -0
  112. package/src/components/stat-tile/stat-tile.js +590 -0
  113. package/src/components/tabbox/tabbox.js +12 -1
  114. package/src/components/table/table.css +51 -2
  115. package/src/components/table/table.js +298 -19
  116. package/src/components/table-view/table-view.css +8 -2
  117. package/src/components/table-view/table-view.js +21 -6
  118. package/src/components/tag-picker/tag-picker.css +3 -1
  119. package/src/components/timebox/timebox.js +18 -5
  120. package/src/components/value-list/value-list.js +22 -6
  121. package/src/components/view/record-view.css +5 -0
  122. package/src/components/view/record-view.js +100 -7
  123. package/src/core/icons.js +74 -5
  124. package/src/index.js +25 -0
  125. package/src/internal/app-rail.js +19 -1
  126. package/src/internal/menu-items.js +142 -0
  127. package/styles/print.css +192 -0
  128. package/styles/zx.css +11 -0
@@ -0,0 +1,142 @@
1
+ import { h, safeHref } from '../core/dom.js';
2
+ import { icon } from '../core/icons.js';
3
+
4
+ /** @typedef {'menuitem'|'menuitemcheckbox'|'menuitemradio'} MenuItemRole */
5
+ /**
6
+ * @typedef {Object} MenuController
7
+ * @property {() => unknown} close Close the owning menu.
8
+ */
9
+ /**
10
+ * @typedef {Object} MenuItem
11
+ * @property {string} label Item label.
12
+ * @property {string} [icon] Kernel icon name.
13
+ * @property {unknown} [value] Value emitted on selection.
14
+ * @property {boolean} [disabled=false] Whether selection is disabled.
15
+ * @property {boolean} [danger=false] Whether the action is dangerous.
16
+ * @property {string} [href] Native-link destination.
17
+ * @property {string} [target] Native-link target.
18
+ * @property {string} [rel] Native-link relationship.
19
+ * @property {string} [description] Supporting text under the label.
20
+ * @property {string|number} [badge] Compact trailing metadata.
21
+ * @property {string} [shortcut] Keyboard shortcut label.
22
+ * @property {string|number|Node} [adornment] Additional trailing content.
23
+ * @property {MenuItemRole} [role='menuitem'] APG role.
24
+ * @property {boolean} [checked=false] Checked state for checkbox/radio roles.
25
+ * @property {(value: unknown, item: MenuItem, controller: MenuController) => void} [onselect]
26
+ * Selection callback.
27
+ */
28
+ /**
29
+ * @typedef {Object} MenuHeading
30
+ * @property {'heading'} type Entry kind.
31
+ * @property {string} label Visible heading.
32
+ */
33
+ /** @typedef {{type: 'separator'}} MenuSeparator */
34
+ /** @typedef {MenuItem|MenuHeading|MenuSeparator|'-'} MenuEntry */
35
+
36
+ export const MENU_ITEM_SELECTOR = [
37
+ '[role="menuitem"]',
38
+ '[role="menuitemcheckbox"]',
39
+ '[role="menuitemradio"]'
40
+ ].join(',');
41
+
42
+ /**
43
+ * Reports whether an entry is an interactive menu action.
44
+ * @param {MenuEntry|unknown} entry Candidate entry.
45
+ * @returns {entry is MenuItem}
46
+ */
47
+ export function isMenuItem(entry) {
48
+ return Boolean(entry && entry !== '-' && typeof entry === 'object'
49
+ && !['heading', 'separator'].includes(String(/** @type {{type?: unknown}} */ (entry).type ?? '')));
50
+ }
51
+
52
+ /**
53
+ * Resolves the only APG roles accepted by the shared action model.
54
+ * @param {MenuItem} item Item definition.
55
+ * @returns {MenuItemRole}
56
+ */
57
+ export function menuItemRole(item) {
58
+ return ['menuitemcheckbox', 'menuitemradio'].includes(String(item.role))
59
+ ? /** @type {MenuItemRole} */ (item.role)
60
+ : 'menuitem';
61
+ }
62
+
63
+ /**
64
+ * Builds one menu's entries with shared structure and link safety.
65
+ * @param {MenuEntry[]} entries Entry definitions.
66
+ * @param {string} block CSS block name, without the `zx-` prefix.
67
+ * @returns {HTMLElement[]}
68
+ */
69
+ export function renderMenuEntries(entries, block) {
70
+ const nodes = [];
71
+ entries.forEach((entry, index) => {
72
+ if (entry === '-' || (entry && typeof entry === 'object' && entry.type === 'separator')) {
73
+ nodes.push(h('div', { class: `zx-${block}__separator`, role: 'separator' }));
74
+ return;
75
+ }
76
+ if (entry && typeof entry === 'object' && entry.type === 'heading') {
77
+ nodes.push(h('div', {
78
+ class: `zx-${block}__heading`,
79
+ role: 'presentation'
80
+ }, String(entry.label ?? '')));
81
+ return;
82
+ }
83
+ if (!isMenuItem(entry)) return;
84
+
85
+ const role = menuItemRole(entry);
86
+ const href = safeHref(entry.href);
87
+ const target = entry.target == null ? null : String(entry.target);
88
+ const rel = entry.rel == null
89
+ ? (target === '_blank' ? 'noopener noreferrer' : null)
90
+ : String(entry.rel);
91
+ const content = [];
92
+ const leading = [];
93
+ if (role !== 'menuitem') {
94
+ leading.push(h('span', {
95
+ class: `zx-${block}__check`,
96
+ 'data-check-kind': role === 'menuitemradio' ? 'radio' : 'checkbox'
97
+ }));
98
+ }
99
+ if (entry.icon) leading.push(icon(entry.icon));
100
+ content.push(h('span', {
101
+ class: `zx-${block}__leading`,
102
+ ariaHidden: 'true'
103
+ }, leading));
104
+ content.push(h('span', { class: `zx-${block}__body` },
105
+ h('span', { class: `zx-${block}__label` }, String(entry.label ?? '')),
106
+ entry.description == null || entry.description === '' ? null : h('span', {
107
+ class: `zx-${block}__description`
108
+ }, String(entry.description))));
109
+
110
+ const meta = [];
111
+ if (entry.badge != null) {
112
+ meta.push(h('span', { class: `zx-${block}__badge` }, String(entry.badge)));
113
+ }
114
+ if (entry.shortcut) {
115
+ meta.push(h('kbd', { class: `zx-${block}__shortcut` }, String(entry.shortcut)));
116
+ }
117
+ if (entry.adornment != null) {
118
+ const adornment = entry.adornment && typeof entry.adornment === 'object'
119
+ && 'nodeType' in entry.adornment
120
+ ? /** @type {Node} */ (entry.adornment)
121
+ : String(entry.adornment);
122
+ meta.push(h('span', { class: `zx-${block}__adornment` }, adornment));
123
+ }
124
+ if (meta.length) content.push(h('span', { class: `zx-${block}__meta` }, meta));
125
+
126
+ const properties = {
127
+ class: `zx-${block}__item`,
128
+ role,
129
+ tabindex: '-1',
130
+ 'data-menu-item': String(index),
131
+ 'data-danger': entry.danger ? 'true' : null,
132
+ ariaDisabled: entry.disabled ? 'true' : null,
133
+ ariaChecked: role === 'menuitem' ? null : String(Boolean(entry.checked))
134
+ };
135
+ if (href) {
136
+ nodes.push(h('a', { ...properties, href, target, rel }, content));
137
+ } else {
138
+ nodes.push(h('button', { ...properties, type: 'button' }, content));
139
+ }
140
+ });
141
+ return nodes;
142
+ }
@@ -0,0 +1,192 @@
1
+ /*
2
+ * Paper.
3
+ *
4
+ * Imported last from `styles/zx.css`, and everything in it lives inside the one `@media print`
5
+ * block below — so on screen this file contributes nothing at all, and on paper it is the last
6
+ * word. Consumers print invoices, delivery notes and reports out of these components, and until
7
+ * this file existed a printed table took its sticky header, its zebra stripes and whatever row
8
+ * the pointer happened to be over along with it.
9
+ *
10
+ * Paper differs from a screen in four ways, and every rule here answers one of them:
11
+ *
12
+ * - There is no viewport, so nothing may stick and nothing may scroll. A sticky header pins
13
+ * itself to the top of a sheet of paper, and a scroller prints exactly one screenful.
14
+ * - There is no pointer and no focus, so hover fills, focus rings and drag affordances are
15
+ * noise that costs toner.
16
+ * - There is no second page for the half of a card that did not fit, so blocks that read as one
17
+ * thing say where they may be cut, and a table repeats its header on every page.
18
+ * - Ink is not free and a fill is not a colour. Backgrounds come off; the one exception is a
19
+ * status badge, whose fill carries meaning its text alone does not.
20
+ *
21
+ * Semantic tokens only, as everywhere else. The borders are the interesting case: the light
22
+ * theme's `--zx-color-border` is a very pale grey that a printer renders as nothing, so the
23
+ * border roles are repointed — once, at the top — to a mix of the text colour, which prints.
24
+ */
25
+ @media print {
26
+ /*
27
+ * Hairlines. `--zx-color-text` rather than a fixed grey so the mix follows the theme it is
28
+ * printed from, and both selectors are single-class so this beats the theme block that sets the
29
+ * same roles on the same element: this file is imported last, and on a tie the last one wins.
30
+ */
31
+ .zx-scope,
32
+ [data-zx-theme] {
33
+ --zx-color-border: color-mix(in srgb, var(--zx-color-text) 45%, transparent);
34
+ --zx-color-border-strong: color-mix(in srgb, var(--zx-color-text) 65%, transparent);
35
+ --zx-color-border-control: color-mix(in srgb, var(--zx-color-text) 45%, transparent);
36
+ --zx-color-overlay-border: color-mix(in srgb, var(--zx-color-text) 45%, transparent);
37
+ --zx-color-overlay-divider: color-mix(in srgb, var(--zx-color-text) 45%, transparent);
38
+ /* The glass rim is a light tint of the page, which on white paper is the paper. */
39
+ --zx-color-glass-border: color-mix(in srgb, var(--zx-color-text) 45%, transparent);
40
+ }
41
+
42
+ /*
43
+ * A fill is a boundary too, and the filled variants drew theirs with one: their border is
44
+ * `transparent` because the surface underneath said where the card ended. With the fill gone
45
+ * they would arrive on paper as loose text, so they take the hairline instead.
46
+ */
47
+ .zx-scope .zx-card[data-variant="filled"],
48
+ .zx-scope .zx-record-card[data-variant="filled"] {
49
+ border-color: var(--zx-color-border);
50
+ }
51
+
52
+ /*
53
+ * Fills off. A badge is excluded by the selector rather than overridden afterwards, because its
54
+ * eleven kind/variant fills would otherwise have to be restated here one by one, and the copy
55
+ * would rot the first time badge.css gained a kind.
56
+ */
57
+ .zx-scope,
58
+ .zx-scope *:not(.zx-badge, .zx-badge *),
59
+ .zx-scope *:not(.zx-badge, .zx-badge *)::before,
60
+ .zx-scope *:not(.zx-badge, .zx-badge *)::after {
61
+ background-color: transparent !important;
62
+ background-image: none !important;
63
+ box-shadow: none !important;
64
+ text-shadow: none !important;
65
+ -webkit-backdrop-filter: none !important;
66
+ backdrop-filter: none !important;
67
+ }
68
+
69
+ /* The exception: a badge's colour is half of what it says, so it is asked for explicitly. */
70
+ .zx-scope .zx-badge {
71
+ -webkit-print-color-adjust: exact;
72
+ print-color-adjust: exact;
73
+ }
74
+
75
+ /*
76
+ * A solid button's label is the colour that reads on its fill — white on the accent. With the
77
+ * fill gone that label is white on white, so the two kinds that have one take the page's text
78
+ * colour and a hairline of their own. Buttons are not hidden: a printed form or an approval
79
+ * sheet is read by someone who needs to see what the screen offered.
80
+ */
81
+ .zx-scope .zx-btn[data-kind="primary"],
82
+ .zx-scope .zx-btn[data-kind="danger"] {
83
+ border-color: var(--zx-color-border);
84
+ color: var(--zx-color-text);
85
+ }
86
+
87
+ /* Nothing sticks to a sheet of paper. Everything below stacks where it was written instead. */
88
+ .zx-scope .zx-table th,
89
+ .zx-scope .zx-table__scroll[data-sticky-header="true"] th,
90
+ .zx-scope .zx-select__group,
91
+ .zx-scope .zx-calendar__agenda-heading,
92
+ .zx-scope .zx-toolbar,
93
+ .zx-scope .zx-list-toolbar {
94
+ position: static;
95
+ }
96
+
97
+ /*
98
+ * Nothing scrolls either: a scroller prints the rows that happen to be inside it and drops the
99
+ * rest, which on an invoice is a silently short invoice.
100
+ */
101
+ .zx-scope .zx-table__scroll,
102
+ .zx-scope .zx-tree,
103
+ .zx-scope .zx-card-view,
104
+ .zx-scope .zx-record-view {
105
+ overflow: visible;
106
+ max-block-size: none;
107
+ }
108
+
109
+ /* No pointer, no focus, no zebra — three states that only ever existed on a screen. */
110
+ .zx-scope .zx-table__scroll[data-zebra="true"] .zx-table__body tr:nth-child(even),
111
+ .zx-scope .zx-table__body tr[data-row]:hover,
112
+ .zx-scope .zx-table__body tr[aria-selected="true"] {
113
+ background: transparent;
114
+ }
115
+
116
+ .zx-scope :focus,
117
+ .zx-scope :focus-visible {
118
+ outline: none;
119
+ box-shadow: none;
120
+ }
121
+
122
+ /* Chrome and overlays: navigation a reader cannot follow, and panels floating over the page. */
123
+ .zx-scope .zx-navigation-bar,
124
+ .zx-scope .zx-app-rail,
125
+ .zx-scope .zx-app-sidebar,
126
+ .zx-modal,
127
+ .zx-dialog,
128
+ .zx-sheet,
129
+ .zx-dropdown,
130
+ .zx-context-menu,
131
+ .zx-tooltip,
132
+ .zx-launcher,
133
+ .zx-message-region,
134
+ [popover]:popover-open {
135
+ display: none !important;
136
+ }
137
+
138
+ ::backdrop {
139
+ display: none;
140
+ }
141
+
142
+ /* A table that runs over a page break reintroduces itself on the next one. */
143
+ .zx-scope .zx-table thead {
144
+ display: table-header-group;
145
+ }
146
+
147
+ .zx-scope .zx-table tfoot {
148
+ display: table-footer-group;
149
+ }
150
+
151
+ /* Things that read as one object are not cut in half if they can be moved whole. */
152
+ .zx-scope .zx-card,
153
+ .zx-scope .zx-record-card,
154
+ .zx-scope .zx-stat-tile,
155
+ .zx-scope .zx-table__body tr {
156
+ break-inside: avoid;
157
+ }
158
+
159
+ /*
160
+ * A link on paper is a dead end unless it says where it goes — in prose. Inside a table cell or
161
+ * on a button the appended URL is not information, it is a wrecked column, so those take it back
162
+ * off. Each of those selectors outranks the one above on specificity rather than on source
163
+ * order, so reordering the list cannot quietly turn one of them back on.
164
+ */
165
+ .zx-scope a[href^="http"]::after {
166
+ content: " (" attr(href) ")";
167
+ font-size: var(--zx-text-sm);
168
+ font-weight: 400;
169
+ word-break: break-all;
170
+ }
171
+
172
+ .zx-scope a[href]:empty::after,
173
+ .zx-scope a[href].zx-icon-btn::after,
174
+ .zx-scope a:has(> .zx-icon:only-child)::after,
175
+ .zx-scope th a[href]::after,
176
+ .zx-scope td a[href]::after,
177
+ .zx-scope button a[href]::after,
178
+ .zx-scope a[href].zx-btn::after,
179
+ .zx-scope .zx-btn a[href]::after,
180
+ .zx-scope .zx-table a[href]::after,
181
+ .zx-scope .zx-badge a[href]::after,
182
+ .zx-scope a[href].zx-badge::after,
183
+ .zx-scope a[href].zx-entity-ref::after,
184
+ .zx-scope .zx-entity-ref a[href]::after,
185
+ .zx-scope .zx-breadcrumb a[href]::after,
186
+ .zx-scope a[href].zx-stat-tile::after,
187
+ .zx-scope .zx-tabbox a[href]::after,
188
+ .zx-scope .zx-tree a[href]::after,
189
+ .zx-scope .zx-file-item a[href]::after {
190
+ content: none;
191
+ }
192
+ }
package/styles/zx.css CHANGED
@@ -18,6 +18,7 @@
18
18
  @import url("../src/components/skeleton/skeleton.css");
19
19
  @import url("../src/components/copy/copy-button.css");
20
20
  @import url("../src/components/copy/copy-input.css");
21
+ @import url("../src/components/code-editor/code-editor.css");
21
22
  @import url("../src/components/toolbar/toolbar.css");
22
23
  @import url("../src/components/toggle/toggle.css");
23
24
  @import url("../src/components/groupbox/groupbox.css");
@@ -31,6 +32,11 @@
31
32
  @import url("../src/components/app-icon/app-icon.css");
32
33
  @import url("../src/components/launcher/launcher.css");
33
34
  @import url("../src/components/avatar/avatar.css");
35
+ @import url("../src/components/entity-ref/entity-ref.css");
36
+ @import url("../src/components/file-item/file-item.css");
37
+ @import url("../src/components/file-list/file-list.css");
38
+ @import url("../src/components/activity-item/activity-item.css");
39
+ @import url("../src/components/activity-list/activity-list.css");
34
40
  @import url("../src/components/account-menu/account-menu.css");
35
41
  @import url("../src/components/app-rail/app-rail.css");
36
42
  @import url("../src/components/app-sidebar/app-sidebar.css");
@@ -60,6 +66,7 @@
60
66
  @import url("../src/components/view/record-view.css");
61
67
  @import url("../src/components/table/table.css");
62
68
  @import url("../src/components/table-view/table-view.css");
69
+ @import url("../src/components/stat-tile/stat-tile.css");
63
70
  @import url("../src/components/card-view/card-view.css");
64
71
  @import url("../src/components/kanban-view/kanban-view.css");
65
72
  @import url("../src/components/grid/grid.css");
@@ -67,7 +74,10 @@
67
74
  @import url("../src/components/tree/tree.css");
68
75
  @import url("../src/components/finder/finder.css");
69
76
  @import url("../src/components/data-filter/data-filter.css");
77
+ @import url("../src/components/filter-panel/filter-panel.css");
78
+ @import url("../src/components/list-toolbar/list-toolbar.css");
70
79
  @import url("../src/components/filter/filter.css");
80
+ @import url("../src/components/sort-control/sort-control.css");
71
81
  @import url("../src/components/pagination/pagination.css");
72
82
  @import url("../src/components/stepper/stepper.css");
73
83
  @import url("../src/components/breadcrumb/breadcrumb.css");
@@ -78,3 +88,4 @@
78
88
  @import url("../src/components/multi-value-editor/multi-value-editor.css");
79
89
  @import url("../src/components/field-upload/field-upload.css");
80
90
  @import url("../src/components/questionnaire/questionnaire.css");
91
+ @import url("./print.css");