@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.2
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.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +108 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +129 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +192 -0
- package/docs/guidelines/index.md +121 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +165 -0
- package/docs/guidelines/overviews.md +66 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/index.md +12 -0
- package/docs/progress-indicator.json +1 -2
- package/docs/progress-indicator.md +2 -2
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +76 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +70 -0
- package/docs/skills/theme-app/SKILL.md +74 -0
- package/docs/skills/waiting-states/SKILL.md +139 -0
- package/docs/stat-card.json +1 -0
- package/docs/stat-card.md +1 -1
- package/docs/tabs.json +1 -4
- package/docs/tabs.md +1 -1
- package/docs/tokens.md +424 -0
- package/fesm2022/slotted-angular-app-shell.mjs +2 -2
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +11 -2
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +12 -6
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +18 -22
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +6 -2
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +1 -1
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +5 -1
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +17 -7
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +2 -2
- package/fesm2022/slotted-angular-markdown.mjs +1 -1
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +32 -27
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +2 -2
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +6 -6
- package/fesm2022/slotted-angular-select.mjs +1 -25
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +2 -2
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +3 -3
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +2 -2
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +1 -1
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +2 -2
- package/package.json +3 -3
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +10 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts.map +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createFilter, moveIndex } from '@slotted/core/collection';
|
|
1
|
+
import { createFilter, revealWithin, moveIndex } from '@slotted/core/collection';
|
|
2
2
|
import { tabbables } from '@slotted/core/focus';
|
|
3
3
|
import { createWidthGate } from '@slotted/core/measure';
|
|
4
4
|
import { createCollapse } from '@slotted/core/overflow';
|
|
@@ -105,30 +105,6 @@ const NARROW_WIDTH = 120;
|
|
|
105
105
|
the movement keys, the count, the entry highlight — takes the visible ones,
|
|
106
106
|
which is the selector `combobox` already writes for the same reason. */
|
|
107
107
|
const OPTION_SELECTOR = "[data-part='item']:not([hidden])";
|
|
108
|
-
/**
|
|
109
|
-
* Brings an option into view without moving the page: the nearest scrolling
|
|
110
|
-
* box between the option and the popup surface is scrolled, by the least
|
|
111
|
-
* distance that shows the whole row, and nothing past it. `scrollIntoView`
|
|
112
|
-
* would scroll every ancestor too, and on the first open it runs before the
|
|
113
|
-
* popup is positioned — a select far down a page sent the page to its top.
|
|
114
|
-
*/
|
|
115
|
-
function revealWithin(option, surface) {
|
|
116
|
-
let box = surface;
|
|
117
|
-
for (let node = option.parentElement; node !== null && node !== surface; node = node.parentElement) {
|
|
118
|
-
const overflow = getComputedStyle(node).overflowY;
|
|
119
|
-
if (overflow === 'auto' || overflow === 'scroll') {
|
|
120
|
-
box = node;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
const row = option.getBoundingClientRect();
|
|
125
|
-
const top = box.getBoundingClientRect().top + box.clientTop;
|
|
126
|
-
const bottom = top + box.clientHeight;
|
|
127
|
-
if (row.top < top)
|
|
128
|
-
box.scrollTop -= top - row.top;
|
|
129
|
-
else if (row.bottom > bottom)
|
|
130
|
-
box.scrollTop += Math.min(row.bottom - bottom, row.top - top);
|
|
131
|
-
}
|
|
132
108
|
const isGroup = (entry) => 'options' in entry;
|
|
133
109
|
const flatten = (items) => items === undefined ? [] : items.flatMap((entry) => (isGroup(entry) ? entry.options : [entry]));
|
|
134
110
|
/**
|