baseline-foundry 0.1.3
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/LICENSE +21 -0
- package/README.md +588 -0
- package/config/experiments/ibm-plex-engine-smoke.json +115 -0
- package/config/experiments/ubuntu-engine-smoke.json +115 -0
- package/config/foundation-theme.json +117 -0
- package/config/tiers/app.json +120 -0
- package/config/tiers/documentation.json +120 -0
- package/config/tiers/editorial.json +120 -0
- package/config/tiers/os.json +120 -0
- package/dist/accordion.d.ts +5 -0
- package/dist/accordion.js +32 -0
- package/dist/application-layout.d.ts +4 -0
- package/dist/application-layout.js +181 -0
- package/dist/baseline-grid-overlay.d.ts +5 -0
- package/dist/baseline-grid-overlay.js +50 -0
- package/dist/baseline-grid-theme.d.ts +3 -0
- package/dist/baseline-grid-theme.js +3 -0
- package/dist/baseline-grid.d.ts +7 -0
- package/dist/baseline-grid.js +35 -0
- package/dist/build.d.ts +21 -0
- package/dist/build.js +440 -0
- package/dist/code-snippet.d.ts +6 -0
- package/dist/code-snippet.js +95 -0
- package/dist/contextual-menu.d.ts +4 -0
- package/dist/contextual-menu.js +156 -0
- package/dist/css-app-tier.d.ts +1 -0
- package/dist/css-app-tier.js +77 -0
- package/dist/css-components/article-pagination.d.ts +13 -0
- package/dist/css-components/article-pagination.js +151 -0
- package/dist/css-components/button-actions.d.ts +7 -0
- package/dist/css-components/button-actions.js +165 -0
- package/dist/css-components/cards-options.d.ts +6 -0
- package/dist/css-components/cards-options.js +180 -0
- package/dist/css-components/chip-badge-status.d.ts +10 -0
- package/dist/css-components/chip-badge-status.js +162 -0
- package/dist/css-components/content-card.d.ts +25 -0
- package/dist/css-components/content-card.js +517 -0
- package/dist/css-components/control-row.d.ts +2 -0
- package/dist/css-components/control-row.js +18 -0
- package/dist/css-components/cta-figure-aspect.d.ts +1 -0
- package/dist/css-components/cta-figure-aspect.js +123 -0
- package/dist/css-components/document-navigation.d.ts +13 -0
- package/dist/css-components/document-navigation.js +400 -0
- package/dist/css-components/editorial-content.d.ts +6 -0
- package/dist/css-components/editorial-content.js +52 -0
- package/dist/css-components/icon.d.ts +1 -0
- package/dist/css-components/icon.js +75 -0
- package/dist/css-components/interactive-feedback.d.ts +2 -0
- package/dist/css-components/interactive-feedback.js +230 -0
- package/dist/css-components/interactive-tables.d.ts +7 -0
- package/dist/css-components/interactive-tables.js +164 -0
- package/dist/css-components/linked-logo-site-layout.d.ts +21 -0
- package/dist/css-components/linked-logo-site-layout.js +214 -0
- package/dist/css-components/list-tree.d.ts +5 -0
- package/dist/css-components/list-tree.js +98 -0
- package/dist/css-components/list.d.ts +3 -0
- package/dist/css-components/list.js +119 -0
- package/dist/css-components/logo-media.d.ts +16 -0
- package/dist/css-components/logo-media.js +219 -0
- package/dist/css-components/navigation-layout.d.ts +5 -0
- package/dist/css-components/navigation-layout.js +151 -0
- package/dist/css-components/panel.d.ts +6 -0
- package/dist/css-components/panel.js +148 -0
- package/dist/css-components/search-box-and-filter.d.ts +9 -0
- package/dist/css-components/search-box-and-filter.js +267 -0
- package/dist/css-components/sites-editorial-ports.d.ts +19 -0
- package/dist/css-components/sites-editorial-ports.js +264 -0
- package/dist/css-components/sites-foundation.d.ts +17 -0
- package/dist/css-components/sites-foundation.js +173 -0
- package/dist/css-components/sites-rich-lists.d.ts +18 -0
- package/dist/css-components/sites-rich-lists.js +364 -0
- package/dist/css-components/static-content-ports.d.ts +14 -0
- package/dist/css-components/static-content-ports.js +206 -0
- package/dist/css-components/tab-section.d.ts +19 -0
- package/dist/css-components/tab-section.js +103 -0
- package/dist/css-components/table.d.ts +7 -0
- package/dist/css-components/table.js +79 -0
- package/dist/css-components/tabs-choice-breadcrumbs.d.ts +9 -0
- package/dist/css-components/tabs-choice-breadcrumbs.js +307 -0
- package/dist/css-components/tiered-list-equal-height-row.d.ts +1 -0
- package/dist/css-components/tiered-list-equal-height-row.js +286 -0
- package/dist/css-components.d.ts +2 -0
- package/dist/css-components.js +2701 -0
- package/dist/css-grid.d.ts +1 -0
- package/dist/css-grid.js +179 -0
- package/dist/css.d.ts +6 -0
- package/dist/css.js +431 -0
- package/dist/experiments/ibm-plex-engine-smoke/styles.css +8969 -0
- package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +604 -0
- package/dist/experiments/ibm-plex-engine-smoke/tokens.json +217 -0
- package/dist/in-page-navigation.d.ts +7 -0
- package/dist/in-page-navigation.js +136 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +18 -0
- package/dist/interactive-feedback.d.ts +14 -0
- package/dist/interactive-feedback.js +96 -0
- package/dist/interactive-tables.d.ts +28 -0
- package/dist/interactive-tables.js +184 -0
- package/dist/list-tree.d.ts +4 -0
- package/dist/list-tree.js +44 -0
- package/dist/panel-drawer.d.ts +4 -0
- package/dist/panel-drawer.js +171 -0
- package/dist/presets/app-tier/styles.css +9459 -0
- package/dist/presets/app-tier/surfaces.json +1225 -0
- package/dist/presets/app-tier/tokens.json +221 -0
- package/dist/presets/prose/styles.css +9442 -0
- package/dist/presets/prose/surfaces.json +1225 -0
- package/dist/presets/prose/tokens.json +221 -0
- package/dist/presets.d.ts +6 -0
- package/dist/presets.js +27 -0
- package/dist/range-controls.d.ts +9 -0
- package/dist/range-controls.js +73 -0
- package/dist/resizable-aside.d.ts +4 -0
- package/dist/resizable-aside.js +328 -0
- package/dist/side-navigation.d.ts +4 -0
- package/dist/side-navigation.js +219 -0
- package/dist/styles.css +9442 -0
- package/dist/surfaces.json +1225 -0
- package/dist/tabs.d.ts +4 -0
- package/dist/tabs.js +88 -0
- package/dist/tier-registry.d.ts +10 -0
- package/dist/tier-registry.js +25 -0
- package/dist/tiers/app/styles.css +9459 -0
- package/dist/tiers/app/surfaces.json +1225 -0
- package/dist/tiers/app/tokens.json +221 -0
- package/dist/tiers/documentation/styles.css +9442 -0
- package/dist/tiers/documentation/surfaces.json +1225 -0
- package/dist/tiers/documentation/tokens.json +221 -0
- package/dist/tiers/editorial/styles.css +9442 -0
- package/dist/tiers/editorial/surfaces.json +1225 -0
- package/dist/tiers/editorial/tokens.json +221 -0
- package/dist/tiers/os/styles.css +9442 -0
- package/dist/tiers/os/surfaces.json +1225 -0
- package/dist/tiers/os/tokens.json +221 -0
- package/dist/tokens.json +221 -0
- package/dist/tooltip.d.ts +4 -0
- package/dist/tooltip.js +70 -0
- package/dist/top-navigation.d.ts +4 -0
- package/dist/top-navigation.js +354 -0
- package/dist/types.d.ts +155 -0
- package/dist/types.js +1 -0
- package/dist/vanilla-theme-colors.d.ts +5 -0
- package/dist/vanilla-theme-colors.js +208 -0
- package/docs/publishing.md +66 -0
- package/package.json +108 -0
package/dist/tabs.d.ts
ADDED
package/dist/tabs.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const TAB_SELECTOR = ".bf-tabs-link";
|
|
2
|
+
const PANEL_SELECTOR = ".bf-tabs-panel";
|
|
3
|
+
const LIST_SELECTOR = ".bf-tabs-list";
|
|
4
|
+
function activateTab(tab) {
|
|
5
|
+
const list = tab.closest(LIST_SELECTOR);
|
|
6
|
+
if (!list) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const siblings = Array.from(list.querySelectorAll(TAB_SELECTOR));
|
|
10
|
+
for (const sibling of siblings) {
|
|
11
|
+
sibling.setAttribute("aria-selected", "false");
|
|
12
|
+
sibling.setAttribute("tabindex", "-1");
|
|
13
|
+
const panelId = sibling.getAttribute("aria-controls");
|
|
14
|
+
if (panelId) {
|
|
15
|
+
const panel = sibling.ownerDocument.getElementById(panelId);
|
|
16
|
+
if (panel?.matches(PANEL_SELECTOR)) {
|
|
17
|
+
panel.setAttribute("aria-hidden", "true");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
tab.setAttribute("aria-selected", "true");
|
|
22
|
+
tab.setAttribute("tabindex", "0");
|
|
23
|
+
const panelId = tab.getAttribute("aria-controls");
|
|
24
|
+
if (panelId) {
|
|
25
|
+
const panel = tab.ownerDocument.getElementById(panelId);
|
|
26
|
+
if (panel?.matches(PANEL_SELECTOR)) {
|
|
27
|
+
panel.setAttribute("aria-hidden", "false");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function initTabs(options = {}) {
|
|
32
|
+
const root = options.root ?? document;
|
|
33
|
+
const onClick = (event) => {
|
|
34
|
+
const target = event.target;
|
|
35
|
+
if (!(target instanceof Element)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const tab = target.closest(TAB_SELECTOR);
|
|
39
|
+
if (!tab) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
activateTab(tab);
|
|
44
|
+
};
|
|
45
|
+
const onKeyDown = (event) => {
|
|
46
|
+
if (!(event instanceof KeyboardEvent)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const target = event.target;
|
|
50
|
+
if (!(target instanceof Element)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const tab = target.closest(TAB_SELECTOR);
|
|
54
|
+
if (!tab) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const list = tab.closest(LIST_SELECTOR);
|
|
58
|
+
if (!list) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const tabs = Array.from(list.querySelectorAll(TAB_SELECTOR));
|
|
62
|
+
const index = tabs.indexOf(tab);
|
|
63
|
+
let nextIndex = -1;
|
|
64
|
+
if (event.key === "ArrowRight" || event.key === "ArrowDown") {
|
|
65
|
+
nextIndex = (index + 1) % tabs.length;
|
|
66
|
+
}
|
|
67
|
+
else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
|
|
68
|
+
nextIndex = (index - 1 + tabs.length) % tabs.length;
|
|
69
|
+
}
|
|
70
|
+
else if (event.key === "Home") {
|
|
71
|
+
nextIndex = 0;
|
|
72
|
+
}
|
|
73
|
+
else if (event.key === "End") {
|
|
74
|
+
nextIndex = tabs.length - 1;
|
|
75
|
+
}
|
|
76
|
+
if (nextIndex >= 0) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
activateTab(tabs[nextIndex]);
|
|
79
|
+
tabs[nextIndex].focus();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
root.addEventListener("click", onClick);
|
|
83
|
+
root.addEventListener("keydown", onKeyDown);
|
|
84
|
+
return () => {
|
|
85
|
+
root.removeEventListener("click", onClick);
|
|
86
|
+
root.removeEventListener("keydown", onKeyDown);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const tierNames: readonly ["editorial", "documentation", "app", "os"];
|
|
2
|
+
export type TierName = (typeof tierNames)[number];
|
|
3
|
+
export declare const presetNames: readonly ["prose", "app-tier"];
|
|
4
|
+
export type PresetName = (typeof presetNames)[number];
|
|
5
|
+
export type BuiltInThemeName = TierName | PresetName;
|
|
6
|
+
export declare const tierDescriptions: Record<TierName, string>;
|
|
7
|
+
export declare const presetDescriptions: Record<PresetName, string>;
|
|
8
|
+
export declare function isTierName(value: string): value is TierName;
|
|
9
|
+
export declare function isPresetName(value: string): value is PresetName;
|
|
10
|
+
export declare function normalizeBuiltInThemeName(name: BuiltInThemeName): TierName;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const tierNames = ["editorial", "documentation", "app", "os"];
|
|
2
|
+
export const presetNames = ["prose", "app-tier"];
|
|
3
|
+
export const tierDescriptions = {
|
|
4
|
+
editorial: "Editorial first: Ubuntu Sans, container-owned Sites rhythm, and the widest baseline-aligned measure.",
|
|
5
|
+
documentation: "Documentation first: Ubuntu Sans with a tighter doc measure, denser gutters, and calmer chapter reading rhythm.",
|
|
6
|
+
app: "Application first: Ubuntu Sans, container-owned rhythm, denser layout values, and light application chrome.",
|
|
7
|
+
os: "OS first: Ubuntu Sans, metric-derived alignment, compact measure, and dense system-surface geometry."
|
|
8
|
+
};
|
|
9
|
+
export const presetDescriptions = {
|
|
10
|
+
prose: "Legacy editorial alias for the editorial tier output.",
|
|
11
|
+
"app-tier": "Legacy app alias for the app tier output."
|
|
12
|
+
};
|
|
13
|
+
export function isTierName(value) {
|
|
14
|
+
return tierNames.includes(value);
|
|
15
|
+
}
|
|
16
|
+
export function isPresetName(value) {
|
|
17
|
+
return presetNames.includes(value);
|
|
18
|
+
}
|
|
19
|
+
export function normalizeBuiltInThemeName(name) {
|
|
20
|
+
if (name === "prose")
|
|
21
|
+
return "editorial";
|
|
22
|
+
if (name === "app-tier")
|
|
23
|
+
return "app";
|
|
24
|
+
return name;
|
|
25
|
+
}
|