@atelier-ui/react 0.2.38 → 0.2.40
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/CHANGELOG.md +16 -0
- package/package.json +1 -1
- package/src/lib/breadcrumbs/atl-breadcrumbs.css +19 -3
- package/src/lib/icon/atl-icon.d.ts +4 -4
- package/src/lib/icon/atl-icon.js +4 -4
- package/src/lib/icon/atl-icon.js.map +1 -1
- package/src/lib/pagination/atl-pagination.css +4 -2
- package/src/lib/stepper/atl-stepper.css +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## 0.2.40 (2026-09-07)
|
|
2
|
+
|
|
3
|
+
This was a version bump only for react to align it with other projects, there were no code changes.
|
|
4
|
+
|
|
5
|
+
## 0.2.39 (2026-09-07)
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- **pagination,stepper:** the active state was bolder than any role allows ([1eea2f0](https://github.com/DominikPieper/atelier-ui/commit/1eea2f0))
|
|
10
|
+
- **breadcrumbs:** the fallback separator named a glyph nothing ships ([910e77c](https://github.com/DominikPieper/atelier-ui/commit/910e77c))
|
|
11
|
+
|
|
12
|
+
### ❤️ Thank You
|
|
13
|
+
|
|
14
|
+
- Claude Opus 5 (1M context)
|
|
15
|
+
- Dominik Pieper @DominikPieper
|
|
16
|
+
|
|
1
17
|
## 0.2.38 (2026-09-07)
|
|
2
18
|
|
|
3
19
|
### 🩹 Fixes
|
package/package.json
CHANGED
|
@@ -47,9 +47,17 @@
|
|
|
47
47
|
the CSS Generated Content alt-text pair: an explicit empty alternative
|
|
48
48
|
text, which keeps the glyph out of the accessibility tree in Chromium,
|
|
49
49
|
Firefox and WebKit alike (verified; a bare `content: '…'` is NOT excluded
|
|
50
|
-
by default — it renders as its own accessible text node). See ADR-0100.
|
|
50
|
+
by default — it renders as its own accessible text node). See ADR-0100.
|
|
51
|
+
The fallback matches the component's own default ('/', not '›'): all
|
|
52
|
+
three adapters always set --atl-separator inline before first paint (in
|
|
53
|
+
SSR-rendered markup, not just post-hydration), so this value is unreached
|
|
54
|
+
in every documented usage — it exists only so a stray '.atl-breadcrumb-
|
|
55
|
+
item::after' rendered without the component (hand-authored markup that
|
|
56
|
+
imports the CSS but skips AtlBreadcrumbs/atl-breadcrumbs/AtlBreadcrumbs.vue)
|
|
57
|
+
degrades to the shipped default rather than to a glyph the spec's
|
|
58
|
+
`separator` option list ('/', '>') never offers. */
|
|
51
59
|
.atl-breadcrumb-item::after {
|
|
52
|
-
content: var(--atl-separator, '
|
|
60
|
+
content: var(--atl-separator, '/') / '';
|
|
53
61
|
margin: 0 var(--ui-spacing-2);
|
|
54
62
|
color: var(--ui-color-border-hover);
|
|
55
63
|
font-size: var(--ui-font-size-md);
|
|
@@ -80,7 +88,15 @@
|
|
|
80
88
|
box-shadow: var(--ui-focus-ring);
|
|
81
89
|
}
|
|
82
90
|
|
|
83
|
-
/* Current item (plain text)
|
|
91
|
+
/* Current item (plain text). Deliberately no padding: `.breadcrumb-link`'s
|
|
92
|
+
padding is exactly cancelled by its own negative margin (a hit/hover-area
|
|
93
|
+
enlargement, invisible in the flow), so its text occupies exactly the same
|
|
94
|
+
box a padding-less element would — measured in a real browser, both items'
|
|
95
|
+
rows come out the same height and the link's text starts at the same
|
|
96
|
+
offset within its row as this span's. Adding matching padding here would
|
|
97
|
+
not reproduce that; without a compensating negative margin it would make
|
|
98
|
+
this row taller than a link row, which is the regression this note exists
|
|
99
|
+
to head off. */
|
|
84
100
|
.atl-breadcrumb-item .breadcrumb-current {
|
|
85
101
|
color: var(--ui-color-text);
|
|
86
102
|
font-weight: var(--ui-font-weight-semibold);
|
|
@@ -16,10 +16,10 @@ export interface AtlIconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'ari
|
|
|
16
16
|
label?: string;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Vector icon.
|
|
20
|
-
* same shape is used everywhere it appears.
|
|
21
|
-
* component set. Decorative by default; pass
|
|
22
|
-
* to assistive tech.
|
|
19
|
+
* Vector icon. Renders whichever `AtlIconName` variant is passed, drawn from
|
|
20
|
+
* the geometry in `icons.ts` so the same shape is used everywhere it appears.
|
|
21
|
+
* Matches the Figma `AtlIcon` component set. Decorative by default; pass
|
|
22
|
+
* `label` to announce a meaning to assistive tech.
|
|
23
23
|
*/
|
|
24
24
|
export declare function AtlIcon({ name, size, label, className, ...rest }: AtlIconProps): import("react").JSX.Element;
|
|
25
25
|
//# sourceMappingURL=atl-icon.d.ts.map
|
package/src/lib/icon/atl-icon.js
CHANGED
|
@@ -2,10 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { ATL_ICON_GEOMETRY, ATL_ICON_STROKE_WIDTH, ATL_ICON_VIEWBOX } from '../icons';
|
|
3
3
|
import './atl-icon.css';
|
|
4
4
|
/**
|
|
5
|
-
* Vector icon.
|
|
6
|
-
* same shape is used everywhere it appears.
|
|
7
|
-
* component set. Decorative by default; pass
|
|
8
|
-
* to assistive tech.
|
|
5
|
+
* Vector icon. Renders whichever `AtlIconName` variant is passed, drawn from
|
|
6
|
+
* the geometry in `icons.ts` so the same shape is used everywhere it appears.
|
|
7
|
+
* Matches the Figma `AtlIcon` component set. Decorative by default; pass
|
|
8
|
+
* `label` to announce a meaning to assistive tech.
|
|
9
9
|
*/
|
|
10
10
|
export function AtlIcon({ name, size = 'md', label, className, ...rest }) {
|
|
11
11
|
const classes = ['atl-icon', `size-${size}`, className].filter(Boolean).join(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atl-icon.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/icon/atl-icon.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,gBAAgB,CAAC;AAoBxB;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACM;IACb,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,KAAK;QAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QACtC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC1C,OAAO,CACL,eAAM,SAAS,EAAE,OAAO,KAAM,kBAAkB,KAAM,IAAI,YACxD,cACE,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EACtC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC3C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EACvD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC3C,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,iBAChC,MAAM,EAClB,SAAS,EAAC,OAAO,YAEhB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,eAAc,CAAC,EAAE,CAAC,IAAP,CAAC,CAAU,CACvB,CAAC,GACE,GACD,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes } from 'react';\nimport type { AtlIconName, AtlIconSize, AtlIconSpec } from '../spec';\nimport { ATL_ICON_GEOMETRY, ATL_ICON_STROKE_WIDTH, ATL_ICON_VIEWBOX } from '../icons';\nimport './atl-icon.css';\n\n\n/**\n * Properties for the AtlIcon component.\n */\nexport interface AtlIconProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, 'aria-label'>,\n AtlIconSpec {\n /** The icon name. */\n name: AtlIconName;\n /** The icon size. */\n size?: AtlIconSize;\n /**\n * Accessible label. When provided, the icon is announced as an image with\n * this label. When omitted, the icon is hidden from assistive tech.\n */\n label?: string;\n}\n\n/**\n * Vector icon.
|
|
1
|
+
{"version":3,"file":"atl-icon.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/icon/atl-icon.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,gBAAgB,CAAC;AAoBxB;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACM;IACb,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,KAAK;QAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QACtC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC1C,OAAO,CACL,eAAM,SAAS,EAAE,OAAO,KAAM,kBAAkB,KAAM,IAAI,YACxD,cACE,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,EACtC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC3C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EACvD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC3C,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,iBAChC,MAAM,EAClB,SAAS,EAAC,OAAO,YAEhB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,eAAc,CAAC,EAAE,CAAC,IAAP,CAAC,CAAU,CACvB,CAAC,GACE,GACD,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes } from 'react';\nimport type { AtlIconName, AtlIconSize, AtlIconSpec } from '../spec';\nimport { ATL_ICON_GEOMETRY, ATL_ICON_STROKE_WIDTH, ATL_ICON_VIEWBOX } from '../icons';\nimport './atl-icon.css';\n\n\n/**\n * Properties for the AtlIcon component.\n */\nexport interface AtlIconProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, 'aria-label'>,\n AtlIconSpec {\n /** The icon name. */\n name: AtlIconName;\n /** The icon size. */\n size?: AtlIconSize;\n /**\n * Accessible label. When provided, the icon is announced as an image with\n * this label. When omitted, the icon is hidden from assistive tech.\n */\n label?: string;\n}\n\n/**\n * Vector icon. Renders whichever `AtlIconName` variant is passed, drawn from\n * the geometry in `icons.ts` so the same shape is used everywhere it appears.\n * Matches the Figma `AtlIcon` component set. Decorative by default; pass\n * `label` to announce a meaning to assistive tech.\n */\nexport function AtlIcon({\n name,\n size = 'md',\n label,\n className,\n ...rest\n}: AtlIconProps) {\n const classes = ['atl-icon', `size-${size}`, className].filter(Boolean).join(' ');\n const accessibilityProps = label\n ? { role: 'img', 'aria-label': label }\n : { 'aria-hidden': true as const };\n const geometry = ATL_ICON_GEOMETRY[name];\n const stroke = geometry.kind === 'stroke';\n return (\n <span className={classes} {...accessibilityProps} {...rest}>\n <svg\n viewBox={ATL_ICON_VIEWBOX}\n fill={stroke ? 'none' : 'currentColor'}\n stroke={stroke ? 'currentColor' : undefined}\n strokeWidth={stroke ? ATL_ICON_STROKE_WIDTH : undefined}\n strokeLinecap={stroke ? 'round' : undefined}\n strokeLinejoin={stroke ? 'round' : undefined}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {geometry.paths.map((d) => (\n <path key={d} d={d} />\n ))}\n </svg>\n </span>\n );\n}\n"]}
|
|
@@ -65,12 +65,14 @@
|
|
|
65
65
|
box-shadow: var(--ui-focus-ring);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
/* Active (current) page — primary fill
|
|
68
|
+
/* Active (current) page — primary fill. Weight stays the resting --ui-type-control
|
|
69
|
+
* medium (ADR-0074): the Figma master renders this label Medium in every state, and
|
|
70
|
+
* .atl-tab-group's own .is-active — the other stateful member of the same six-rule
|
|
71
|
+
* consumer list — changes only colour, never weight, on its current item. */
|
|
69
72
|
.page-btn.is-active {
|
|
70
73
|
background-color: var(--ui-color-primary);
|
|
71
74
|
border-color: var(--ui-color-primary);
|
|
72
75
|
color: var(--ui-color-text-on-primary);
|
|
73
|
-
font-weight: var(--ui-font-weight-semibold);
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
.page-btn.is-active:hover {
|
|
@@ -104,14 +104,14 @@
|
|
|
104
104
|
.step-description {
|
|
105
105
|
font-size: var(--ui-font-size-xs);
|
|
106
106
|
color: var(--ui-color-text-muted);
|
|
107
|
-
margin-top:
|
|
107
|
+
margin-top: var(--ui-spacing-1);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.step-optional {
|
|
111
111
|
font-size: var(--ui-font-size-xs);
|
|
112
112
|
color: var(--ui-color-text-muted);
|
|
113
113
|
font-style: italic;
|
|
114
|
-
margin-top:
|
|
114
|
+
margin-top: var(--ui-spacing-1);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
/* ─── Content ─── */
|
|
@@ -130,8 +130,11 @@
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
.step-item.is-active .step-label {
|
|
133
|
+
/* Weight stays the resting --ui-type-control medium (ADR-0074): the Figma master
|
|
134
|
+
* renders this label Medium in every state, and .atl-tab-group's own .is-active —
|
|
135
|
+
* the other stateful member of the same six-rule consumer list — changes only
|
|
136
|
+
* colour, never weight, on its current item. */
|
|
133
137
|
color: var(--ui-color-text);
|
|
134
|
-
font-weight: var(--ui-font-weight-semibold);
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
/* ─── Completed state ─── */
|