@tempoxyz/ds 0.3.10 → 0.3.13
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 +7 -6
- package/dist/docs/AGENTS.md +12 -0
- package/dist/docs/index.md +145 -0
- package/dist/docs/marketing/introduction/getting-started.md +241 -0
- package/dist/docs/product/components/accordion.md +489 -0
- package/dist/docs/product/components/address-card.md +147 -0
- package/dist/docs/product/components/agent-logo.md +194 -0
- package/dist/docs/product/components/alert-dialog.md +631 -0
- package/dist/docs/product/components/alert.md +448 -0
- package/dist/docs/product/components/amount-input.md +305 -0
- package/dist/docs/product/components/amount.md +794 -0
- package/dist/docs/product/components/app-shell.md +559 -0
- package/dist/docs/product/components/asset-chip.md +294 -0
- package/dist/docs/product/components/autocomplete.md +620 -0
- package/dist/docs/product/components/avatar.md +321 -0
- package/dist/docs/product/components/badge.md +339 -0
- package/dist/docs/product/components/badged-logo.md +116 -0
- package/dist/docs/product/components/banner.md +379 -0
- package/dist/docs/product/components/bar-chart.md +208 -0
- package/dist/docs/product/components/breadcrumbs.md +380 -0
- package/dist/docs/product/components/button-group.md +286 -0
- package/dist/docs/product/components/button.md +650 -0
- package/dist/docs/product/components/calendar.md +375 -0
- package/dist/docs/product/components/callout.md +96 -0
- package/dist/docs/product/components/checkbox-group.md +521 -0
- package/dist/docs/product/components/checkbox.md +467 -0
- package/dist/docs/product/components/choice-group.md +516 -0
- package/dist/docs/product/components/choicebox.md +641 -0
- package/dist/docs/product/components/code.md +100 -0
- package/dist/docs/product/components/combobox.md +939 -0
- package/dist/docs/product/components/container.md +257 -0
- package/dist/docs/product/components/copy-button.md +642 -0
- package/dist/docs/product/components/date-picker.md +514 -0
- package/dist/docs/product/components/dialog.md +1332 -0
- package/dist/docs/product/components/drawer.md +966 -0
- package/dist/docs/product/components/empty.md +340 -0
- package/dist/docs/product/components/field.md +570 -0
- package/dist/docs/product/components/fieldset.md +398 -0
- package/dist/docs/product/components/frame.md +434 -0
- package/dist/docs/product/components/gauge.md +299 -0
- package/dist/docs/product/components/get-started-visual.md +117 -0
- package/dist/docs/product/components/grid.md +288 -0
- package/dist/docs/product/components/hero-visual.md +155 -0
- package/dist/docs/product/components/hex.md +487 -0
- package/dist/docs/product/components/icon-tile.md +292 -0
- package/dist/docs/product/components/identicon.md +371 -0
- package/dist/docs/product/components/inline.md +233 -0
- package/dist/docs/product/components/inset.md +225 -0
- package/dist/docs/product/components/kbd.md +423 -0
- package/dist/docs/product/components/list-group.md +981 -0
- package/dist/docs/product/components/loading-dots.md +237 -0
- package/dist/docs/product/components/menu.md +934 -0
- package/dist/docs/product/components/native-select.md +204 -0
- package/dist/docs/product/components/network-logo.md +248 -0
- package/dist/docs/product/components/number-field.md +543 -0
- package/dist/docs/product/components/otp-field.md +616 -0
- package/dist/docs/product/components/pagination.md +516 -0
- package/dist/docs/product/components/popover.md +544 -0
- package/dist/docs/product/components/progress.md +388 -0
- package/dist/docs/product/components/qr.md +314 -0
- package/dist/docs/product/components/radio-group.md +528 -0
- package/dist/docs/product/components/secret-value.md +406 -0
- package/dist/docs/product/components/select.md +751 -0
- package/dist/docs/product/components/separator.md +379 -0
- package/dist/docs/product/components/sidebar-menu.md +922 -0
- package/dist/docs/product/components/skeleton.md +517 -0
- package/dist/docs/product/components/slider.md +539 -0
- package/dist/docs/product/components/snippet.md +424 -0
- package/dist/docs/product/components/spinner.md +216 -0
- package/dist/docs/product/components/split-bar.md +139 -0
- package/dist/docs/product/components/split-button.md +464 -0
- package/dist/docs/product/components/stack.md +299 -0
- package/dist/docs/product/components/status-chip.md +226 -0
- package/dist/docs/product/components/status-indicator.md +119 -0
- package/dist/docs/product/components/status-row.md +174 -0
- package/dist/docs/product/components/stepper.md +451 -0
- package/dist/docs/product/components/success-hero.md +157 -0
- package/dist/docs/product/components/surface.md +639 -0
- package/dist/docs/product/components/switch.md +472 -0
- package/dist/docs/product/components/table.md +967 -0
- package/dist/docs/product/components/tabs.md +627 -0
- package/dist/docs/product/components/tempo-logo.md +185 -0
- package/dist/docs/product/components/text-input.md +624 -0
- package/dist/docs/product/components/textarea.md +352 -0
- package/dist/docs/product/components/toast.md +535 -0
- package/dist/docs/product/components/token-logo.md +371 -0
- package/dist/docs/product/components/token.md +247 -0
- package/dist/docs/product/components/tooltip.md +490 -0
- package/dist/docs/product/components/verification-code.md +116 -0
- package/dist/docs/product/components/visual.md +249 -0
- package/dist/docs/product/components.md +203 -0
- package/dist/docs/product/foundations/accessibility.md +377 -0
- package/dist/docs/product/foundations/agents.md +150 -0
- package/dist/docs/product/foundations/color.md +522 -0
- package/dist/docs/product/foundations/content/tone.md +194 -0
- package/dist/docs/product/foundations/content/voice.md +194 -0
- package/dist/docs/product/foundations/content/writing-style.md +406 -0
- package/dist/docs/product/foundations/iconography.md +282 -0
- package/dist/docs/product/foundations/intent.md +360 -0
- package/dist/docs/product/foundations/layout.md +508 -0
- package/dist/docs/product/foundations/linter.md +496 -0
- package/dist/docs/product/foundations/motion.md +151 -0
- package/dist/docs/product/foundations/radius-and-padding.md +86 -0
- package/dist/docs/product/foundations/typography.md +266 -0
- package/dist/docs/product/introduction/faq.md +133 -0
- package/dist/docs/product/introduction/getting-started.md +377 -0
- package/dist/docs/product/patterns/blockchain-values.md +709 -0
- package/dist/docs/product/patterns/dashboards.md +638 -0
- package/dist/docs/product/patterns/destructive-actions.md +626 -0
- package/dist/docs/product/patterns/empty-states.md +612 -0
- package/dist/docs/product/patterns/errors-and-validation.md +808 -0
- package/dist/docs/product/patterns/feedback-and-status.md +518 -0
- package/dist/docs/product/patterns/forms.md +679 -0
- package/dist/docs/product/patterns/loading.md +630 -0
- package/dist/docs/product/patterns/navigation.md +397 -0
- package/dist/docs/product/patterns/payments.md +765 -0
- package/dist/docs/product/patterns/responsive-layout.md +997 -0
- package/dist/docs/product/patterns/tables-and-lists.md +964 -0
- package/dist/docs/product/products/tempo-console.md +671 -0
- package/dist/docs/product/products/tempo-performance.md +437 -0
- package/dist/docs/product/products/tempo-wallet.md +438 -0
- package/dist/marketing/index.d.ts +4 -0
- package/dist/marketing/index.d.ts.map +1 -0
- package/dist/marketing/index.js +4 -0
- package/dist/marketing/index.js.map +1 -0
- package/dist/marketing/index.js.zyzz.json +1 -0
- package/dist/marketing/vars.d.ts +907 -0
- package/dist/marketing/vars.d.ts.map +1 -0
- package/dist/marketing/vars.js +15 -0
- package/dist/marketing/vars.js.map +1 -0
- package/dist/marketing/vars.js.zyzz.json +1 -0
- package/dist/marketing/zyzz.config.d.ts +4512 -0
- package/dist/marketing/zyzz.config.d.ts.map +1 -0
- package/dist/marketing/zyzz.config.js +63 -0
- package/dist/marketing/zyzz.config.js.map +1 -0
- package/dist/marketing/zyzz.config.js.zyzz.json +1 -0
- package/dist/oxlint/index.d.ts +12 -1
- package/dist/oxlint/index.d.ts.map +1 -1
- package/dist/oxlint/index.js +39 -1
- package/dist/oxlint/index.js.map +1 -1
- package/dist/oxlint/internal/Docs.d.ts +9 -0
- package/dist/oxlint/internal/Docs.d.ts.map +1 -0
- package/dist/oxlint/internal/Docs.js +15 -0
- package/dist/oxlint/internal/Docs.js.map +1 -0
- package/dist/oxlint/internal/Imports.d.ts +1 -1
- package/dist/oxlint/internal/Imports.d.ts.map +1 -1
- package/dist/oxlint/internal/Imports.js +2 -0
- package/dist/oxlint/internal/Imports.js.map +1 -1
- package/dist/oxlint/internal/Styles.d.ts +40 -0
- package/dist/oxlint/internal/Styles.d.ts.map +1 -0
- package/dist/oxlint/internal/Styles.js +194 -0
- package/dist/oxlint/internal/Styles.js.map +1 -0
- package/dist/oxlint/internal/Tokens.d.ts +16 -0
- package/dist/oxlint/internal/Tokens.d.ts.map +1 -0
- package/dist/oxlint/internal/Tokens.js +39 -0
- package/dist/oxlint/internal/Tokens.js.map +1 -0
- package/dist/oxlint/rules/NoCrossSurface.d.ts +2 -2
- package/dist/oxlint/rules/NoCrossSurface.js +3 -3
- package/dist/oxlint/rules/NoCrossSurface.js.map +1 -1
- package/dist/oxlint/rules/NoCustomValues.d.ts +11 -0
- package/dist/oxlint/rules/NoCustomValues.d.ts.map +1 -0
- package/dist/oxlint/rules/NoCustomValues.js +150 -0
- package/dist/oxlint/rules/NoCustomValues.js.map +1 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts +11 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts.map +1 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.js +158 -0
- package/dist/oxlint/rules/NoSingleKeyShortcuts.js.map +1 -0
- package/dist/oxlint/rules/PreferComponent.d.ts +3 -2
- package/dist/oxlint/rules/PreferComponent.d.ts.map +1 -1
- package/dist/oxlint/rules/PreferComponent.js +11 -4
- package/dist/oxlint/rules/PreferComponent.js.map +1 -1
- package/dist/oxlint/rules/PreferLayout.d.ts +9 -0
- package/dist/oxlint/rules/PreferLayout.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferLayout.js +90 -0
- package/dist/oxlint/rules/PreferLayout.js.map +1 -0
- package/dist/oxlint/rules/PreferProgress.d.ts +9 -0
- package/dist/oxlint/rules/PreferProgress.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferProgress.js +43 -0
- package/dist/oxlint/rules/PreferProgress.js.map +1 -0
- package/dist/oxlint/rules/PreferSurface.d.ts +9 -0
- package/dist/oxlint/rules/PreferSurface.d.ts.map +1 -0
- package/dist/oxlint/rules/PreferSurface.js +55 -0
- package/dist/oxlint/rules/PreferSurface.js.map +1 -0
- package/dist/oxlint/rules/RequireAccessibleName.d.ts.map +1 -1
- package/dist/oxlint/rules/RequireAccessibleName.js +3 -1
- package/dist/oxlint/rules/RequireAccessibleName.js.map +1 -1
- package/dist/oxlint/rules/RequireScrollRegion.d.ts +11 -0
- package/dist/oxlint/rules/RequireScrollRegion.d.ts.map +1 -0
- package/dist/oxlint/rules/RequireScrollRegion.js +71 -0
- package/dist/oxlint/rules/RequireScrollRegion.js.map +1 -0
- package/dist/web/icons/index.js.zyzz.json +1 -0
- package/package.json +6 -1
- package/src/marketing/README.md +21 -0
- package/src/marketing/index.ts +3 -0
- package/src/marketing/vars.ts +751 -0
- package/src/marketing/zyzz.config.ts +376 -0
- package/src/oxlint/index.ts +40 -1
- package/src/oxlint/internal/Docs.ts +18 -0
- package/src/oxlint/internal/Imports.ts +2 -1
- package/src/oxlint/internal/Styles.ts +240 -0
- package/src/oxlint/internal/Tokens.ts +43 -0
- package/src/oxlint/rules/NoCrossSurface.ts +3 -3
- package/src/oxlint/rules/NoCustomValues.ts +170 -0
- package/src/oxlint/rules/NoSingleKeyShortcuts.ts +190 -0
- package/src/oxlint/rules/PreferComponent.ts +11 -4
- package/src/oxlint/rules/PreferLayout.ts +96 -0
- package/src/oxlint/rules/PreferProgress.ts +49 -0
- package/src/oxlint/rules/PreferSurface.ts +70 -0
- package/src/oxlint/rules/RequireAccessibleName.ts +3 -1
- package/src/oxlint/rules/RequireScrollRegion.ts +92 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as Docs from '../internal/Docs.js';
|
|
2
|
+
import * as Styles from '../internal/Styles.js';
|
|
3
|
+
// Elements that render a card's container. Inline elements and controls draw other components.
|
|
4
|
+
const tags = new Set(['article', 'aside', 'div', 'li', 'section']);
|
|
5
|
+
// Values that draw nothing, so the declaration does not make the element a card.
|
|
6
|
+
const empty = /^(?:0(?:\.0+)?(?:px|rem)?|initial|none|transparent|unset)$/;
|
|
7
|
+
/**
|
|
8
|
+
* Reports an `article`, `aside`, `div`, `li`, or `section` whose styles draw a card: a corner
|
|
9
|
+
* radius and padding with a border or a background. A pill radius, such as `full`, and a
|
|
10
|
+
* positioned element, such as a hand-built popover, pass.
|
|
11
|
+
*/
|
|
12
|
+
export const rule = {
|
|
13
|
+
meta: {
|
|
14
|
+
docs: { description: 'Use `Surface` instead of a native element styled as a card.' },
|
|
15
|
+
messages: {
|
|
16
|
+
surface: "Use 'Surface' from '@tempoxyz/ds' instead of styling <{{element}}> as a card. It sets the radius and padding together. See {{url}}",
|
|
17
|
+
},
|
|
18
|
+
schema: [],
|
|
19
|
+
type: 'suggestion',
|
|
20
|
+
},
|
|
21
|
+
create(context) {
|
|
22
|
+
return Styles.visit((element) => {
|
|
23
|
+
if (!tags.has(element.tag))
|
|
24
|
+
return;
|
|
25
|
+
const declarations = element.declarations;
|
|
26
|
+
function set(property) {
|
|
27
|
+
const node = declarations.get(property);
|
|
28
|
+
if (!node)
|
|
29
|
+
return false;
|
|
30
|
+
const value = Styles.text(node);
|
|
31
|
+
return value === undefined || !empty.test(value);
|
|
32
|
+
}
|
|
33
|
+
const properties = [...declarations.keys()];
|
|
34
|
+
const position = Styles.text(declarations.get('position'));
|
|
35
|
+
const radius = properties.some((property) => {
|
|
36
|
+
if (!property.endsWith('Radius') || !set(property))
|
|
37
|
+
return false;
|
|
38
|
+
const value = Styles.text(declarations.get(property));
|
|
39
|
+
return value === undefined || !/^(?:50%|9{3,}(?:px)?|full)$/.test(value);
|
|
40
|
+
});
|
|
41
|
+
const padding = properties.some((property) => property.startsWith('padding') && set(property));
|
|
42
|
+
const border = properties.some((property) => /^border(?:Block|Bottom|Inline|Left|Right|Top)?(?:End|Start)?(?:Style|Width)?$/.test(property) && set(property));
|
|
43
|
+
const background = set('background') || set('backgroundColor');
|
|
44
|
+
if (position === 'absolute' || position === 'fixed' || position === 'sticky')
|
|
45
|
+
return;
|
|
46
|
+
if (radius && padding && (border || background))
|
|
47
|
+
context.report({
|
|
48
|
+
data: { element: element.tag, url: Docs.component('Surface') },
|
|
49
|
+
messageId: 'surface',
|
|
50
|
+
node: element.node,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=PreferSurface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreferSurface.js","sourceRoot":"","sources":["../../../src/oxlint/rules/PreferSurface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequireAccessibleName.d.ts","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireAccessibleName.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"RequireAccessibleName.d.ts","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireAccessibleName.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,iBAAiB,CAAA;AA0BnD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,IAqGlB,CAAA"}
|
|
@@ -2,8 +2,10 @@ import * as Imports from '../internal/Imports.js';
|
|
|
2
2
|
const list = new Intl.ListFormat('en', { type: 'disjunction' });
|
|
3
3
|
const web = ['aria-label', 'aria-labelledby'];
|
|
4
4
|
const mobile = ['accessibilityLabel', 'accessibilityLabelledBy', 'aria-label', 'aria-labelledby'];
|
|
5
|
-
// Components from each surface whose rendered output has no text to name it.
|
|
5
|
+
// Components from each surface whose rendered output has no text to name it. Marketing ships no
|
|
6
|
+
// components yet.
|
|
6
7
|
const targets = {
|
|
8
|
+
marketing: {},
|
|
7
9
|
mobile: { IconButton: { names: mobile } },
|
|
8
10
|
web: {
|
|
9
11
|
Button: { names: web, when: { attribute: 'shape', value: 'icon' } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequireAccessibleName.js","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireAccessibleName.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AASjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;AAC/D,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;AAC7C,MAAM,MAAM,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAA;AAEjG,
|
|
1
|
+
{"version":3,"file":"RequireAccessibleName.js","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireAccessibleName.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Requires a name, a role, and a tab stop on native scroll containers. @module */
|
|
2
|
+
import type { Rule } from '@oxlint/plugins';
|
|
3
|
+
/**
|
|
4
|
+
* Reports a native element that scrolls, through `overflow` set to `auto` or `scroll`, without
|
|
5
|
+
* `role`, `tabIndex`, and `aria-label` or `aria-labelledby`. Keyboards scroll only a focusable
|
|
6
|
+
* region, and screen readers announce the region by its name. An element with a spread that the
|
|
7
|
+
* rule cannot read passes, since the spread can supply the attributes, and so does a container whose
|
|
8
|
+
* content holds a link, a button, a field, or an element with `tabIndex`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const rule: Rule;
|
|
11
|
+
//# sourceMappingURL=RequireScrollRegion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequireScrollRegion.d.ts","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireScrollRegion.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAYnD;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,IAuElB,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as Docs from '../internal/Docs.js';
|
|
2
|
+
import * as Styles from '../internal/Styles.js';
|
|
3
|
+
const list = new Intl.ListFormat('en', { type: 'conjunction' });
|
|
4
|
+
// Native elements and component names that take focus, so the region's content holds a tab stop.
|
|
5
|
+
const focusable = /^(?:a|button|input|select|summary|textarea|.*(?:Button|Input|Link|Select|Trigger))$/;
|
|
6
|
+
const overflows = ['overflow', 'overflowBlock', 'overflowInline', 'overflowX', 'overflowY'];
|
|
7
|
+
/**
|
|
8
|
+
* Reports a native element that scrolls, through `overflow` set to `auto` or `scroll`, without
|
|
9
|
+
* `role`, `tabIndex`, and `aria-label` or `aria-labelledby`. Keyboards scroll only a focusable
|
|
10
|
+
* region, and screen readers announce the region by its name. An element with a spread that the
|
|
11
|
+
* rule cannot read passes, since the spread can supply the attributes, and so does a container whose
|
|
12
|
+
* content holds a link, a button, a field, or an element with `tabIndex`.
|
|
13
|
+
*/
|
|
14
|
+
export const rule = {
|
|
15
|
+
meta: {
|
|
16
|
+
docs: { description: 'Name scroll containers and make them focusable.' },
|
|
17
|
+
messages: {
|
|
18
|
+
region: 'This scrolling <{{element}}> needs {{missing}}, so keyboard and screen reader users can reach and identify it. See {{url}}',
|
|
19
|
+
},
|
|
20
|
+
schema: [],
|
|
21
|
+
type: 'problem',
|
|
22
|
+
},
|
|
23
|
+
create(context) {
|
|
24
|
+
function attribute(node, names) {
|
|
25
|
+
return node.attributes.some((attribute) => attribute.type === 'JSXAttribute' &&
|
|
26
|
+
attribute.name.type === 'JSXIdentifier' &&
|
|
27
|
+
names.includes(attribute.name.name));
|
|
28
|
+
}
|
|
29
|
+
// Whether the JSX inside `node` renders an element that takes focus.
|
|
30
|
+
function interactive(node) {
|
|
31
|
+
if (node.type === 'JSXOpeningElement') {
|
|
32
|
+
const name = context.sourceCode.getText(node.name).split('.').at(-1) ?? '';
|
|
33
|
+
if (focusable.test(name) || attribute(node, ['href', 'tabIndex']))
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return (context.sourceCode.visitorKeys[node.type] ?? []).some((field) => {
|
|
37
|
+
const value = Reflect.get(node, field);
|
|
38
|
+
return (Array.isArray(value) ? value : [value]).some((child) => child && typeof child === 'object' && 'type' in child && interactive(child));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return Styles.visit((element) => {
|
|
42
|
+
if (element.spread)
|
|
43
|
+
return;
|
|
44
|
+
const scrolls = overflows.some((property) => {
|
|
45
|
+
const value = Styles.text(element.declarations.get(property));
|
|
46
|
+
return value !== undefined && /\b(?:auto|scroll)\b/.test(value);
|
|
47
|
+
});
|
|
48
|
+
if (!scrolls)
|
|
49
|
+
return;
|
|
50
|
+
if (element.node.parent.type === 'JSXElement' &&
|
|
51
|
+
element.node.parent.children.some(interactive))
|
|
52
|
+
return;
|
|
53
|
+
const missing = [
|
|
54
|
+
...(attribute(element.node, ['role']) ? [] : ['role="region"']),
|
|
55
|
+
...(attribute(element.node, ['tabIndex']) ? [] : ['tabIndex={0}']),
|
|
56
|
+
...(attribute(element.node, ['aria-label', 'aria-labelledby']) ? [] : ['an aria-label']),
|
|
57
|
+
];
|
|
58
|
+
if (missing.length > 0)
|
|
59
|
+
context.report({
|
|
60
|
+
data: {
|
|
61
|
+
element: element.tag,
|
|
62
|
+
missing: list.format(missing),
|
|
63
|
+
url: Docs.page('patterns/responsive-layout#scroll-wide-content-inside-its-own-region'),
|
|
64
|
+
},
|
|
65
|
+
messageId: 'region',
|
|
66
|
+
node: element.node,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=RequireScrollRegion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequireScrollRegion.js","sourceRoot":"","sources":["../../../src/oxlint/rules/RequireScrollRegion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"classRules":{},"exports":{},"stylesheets":[],"themes":{},"version":31}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tempoxyz/ds",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.13",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
7
7
|
"DESIGN.md",
|
|
@@ -1428,6 +1428,11 @@
|
|
|
1428
1428
|
"src": "./src/web/icons/svg/ZoomOut.svg",
|
|
1429
1429
|
"default": "./dist/web/icons/svg/ZoomOut.svg"
|
|
1430
1430
|
},
|
|
1431
|
+
"./marketing": {
|
|
1432
|
+
"src": "./src/marketing/index.ts",
|
|
1433
|
+
"types": "./dist/marketing/index.d.ts",
|
|
1434
|
+
"default": "./dist/marketing/index.js"
|
|
1435
|
+
},
|
|
1431
1436
|
"./mobile": {
|
|
1432
1437
|
"src": "./src/mobile/index.ts",
|
|
1433
1438
|
"types": "./dist/mobile/index.d.ts",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Marketing
|
|
2
|
+
|
|
3
|
+
Use `@tempoxyz/ds/marketing` with a Zyzz plugin for Tempo's marketing websites, such as the home page, campaign landing pages, and launch pages. Marketing is Web only.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { style } from '@tempoxyz/ds/marketing'
|
|
7
|
+
|
|
8
|
+
namespace styles {
|
|
9
|
+
export const hero = style({
|
|
10
|
+
color: 'content.primary',
|
|
11
|
+
paddingBlock: '64',
|
|
12
|
+
typography: 'heading.h1',
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
;<section {...styles.hero()} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The Marketing variables start as a copy of the Web variables and change as the Marketing designs define their own values. Marketing ships no components yet. An app uses one surface: a marketing site imports `@tempoxyz/ds/marketing`, and a product interface imports `@tempoxyz/ds`.
|
|
20
|
+
|
|
21
|
+
The Marketing surface shares the Zyzz plugin setup of the [Web surface](../web/README.md#setup).
|