@astryxdesign/lab 0.1.4-canary.f5fcc51 → 0.1.4-canary.f767ee2
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/dist/CodeEditor/CodeEditor.d.ts +4 -1
- package/dist/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/CodeEditor/CodeEditor.js +3 -0
- package/dist/Sankey/SankeyChart.d.ts.map +1 -1
- package/dist/Sankey/SankeyChart.js +3 -0
- package/dist/Schedule/ListView.d.ts.map +1 -1
- package/dist/Schedule/ListView.js +7 -4
- package/dist/Schedule/MonthlyView.js +3 -2
- package/dist/Schedule/Schedule.d.ts +3 -1
- package/dist/Schedule/Schedule.d.ts.map +1 -1
- package/dist/Schedule/Schedule.js +9 -4
- package/dist/Schedule/TimeGridView.js +3 -2
- package/dist/Schedule/context.d.ts +2 -0
- package/dist/Schedule/context.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lab.css +0 -15
- package/package.json +2 -2
- package/src/CodeEditor/CodeEditor.test.tsx +21 -0
- package/src/CodeEditor/CodeEditor.tsx +5 -0
- package/src/InfoTip/InfoTip.doc.mjs +1 -1
- package/src/Sankey/SankeyChart.test.tsx +77 -0
- package/src/Sankey/SankeyChart.tsx +3 -0
- package/src/Schedule/ListView.tsx +5 -2
- package/src/Schedule/MonthlyView.tsx +2 -2
- package/src/Schedule/Schedule.test.tsx +39 -0
- package/src/Schedule/Schedule.tsx +8 -0
- package/src/Schedule/TimeGridView.tsx +2 -2
- package/src/Schedule/context.tsx +2 -0
- package/src/index.ts +2 -46
- package/dist/ChartV2/Chart.d.ts +0 -32
- package/dist/ChartV2/Chart.d.ts.map +0 -1
- package/dist/ChartV2/Chart.js +0 -281
- package/dist/ChartV2/ChartAxis.d.ts +0 -36
- package/dist/ChartV2/ChartAxis.d.ts.map +0 -1
- package/dist/ChartV2/ChartAxis.js +0 -161
- package/dist/ChartV2/ChartGrid.d.ts +0 -20
- package/dist/ChartV2/ChartGrid.d.ts.map +0 -1
- package/dist/ChartV2/ChartGrid.js +0 -76
- package/dist/ChartV2/ChartLegend.d.ts +0 -14
- package/dist/ChartV2/ChartLegend.d.ts.map +0 -1
- package/dist/ChartV2/ChartLegend.js +0 -54
- package/dist/ChartV2/ChartSwatch.d.ts +0 -36
- package/dist/ChartV2/ChartSwatch.d.ts.map +0 -1
- package/dist/ChartV2/ChartSwatch.js +0 -82
- package/dist/ChartV2/ChartTooltip.d.ts +0 -46
- package/dist/ChartV2/ChartTooltip.d.ts.map +0 -1
- package/dist/ChartV2/ChartTooltip.js +0 -267
- package/dist/ChartV2/ChartV2Context.d.ts +0 -4
- package/dist/ChartV2/ChartV2Context.d.ts.map +0 -1
- package/dist/ChartV2/ChartV2Context.js +0 -12
- package/dist/ChartV2/index.d.ts +0 -13
- package/dist/ChartV2/index.d.ts.map +0 -1
- package/dist/ChartV2/index.js +0 -10
- package/dist/ChartV2/layout.d.ts +0 -25
- package/dist/ChartV2/layout.d.ts.map +0 -1
- package/dist/ChartV2/layout.js +0 -195
- package/dist/ChartV2/legend.d.ts +0 -18
- package/dist/ChartV2/legend.d.ts.map +0 -1
- package/dist/ChartV2/legend.js +0 -24
- package/dist/ChartV2/marks/area.d.ts +0 -19
- package/dist/ChartV2/marks/area.d.ts.map +0 -1
- package/dist/ChartV2/marks/area.js +0 -109
- package/dist/ChartV2/marks/band.d.ts +0 -9
- package/dist/ChartV2/marks/band.d.ts.map +0 -1
- package/dist/ChartV2/marks/band.js +0 -59
- package/dist/ChartV2/marks/bar.d.ts +0 -17
- package/dist/ChartV2/marks/bar.d.ts.map +0 -1
- package/dist/ChartV2/marks/bar.js +0 -120
- package/dist/ChartV2/marks/candlestick.d.ts +0 -15
- package/dist/ChartV2/marks/candlestick.d.ts.map +0 -1
- package/dist/ChartV2/marks/candlestick.js +0 -83
- package/dist/ChartV2/marks/dot.d.ts +0 -15
- package/dist/ChartV2/marks/dot.d.ts.map +0 -1
- package/dist/ChartV2/marks/dot.js +0 -65
- package/dist/ChartV2/marks/dotGL.d.ts +0 -16
- package/dist/ChartV2/marks/dotGL.d.ts.map +0 -1
- package/dist/ChartV2/marks/dotGL.js +0 -178
- package/dist/ChartV2/marks/dotGLInteractive.d.ts +0 -30
- package/dist/ChartV2/marks/dotGLInteractive.d.ts.map +0 -1
- package/dist/ChartV2/marks/dotGLInteractive.js +0 -464
- package/dist/ChartV2/marks/errorBar.d.ts +0 -27
- package/dist/ChartV2/marks/errorBar.d.ts.map +0 -1
- package/dist/ChartV2/marks/errorBar.js +0 -87
- package/dist/ChartV2/marks/heatmapGL.d.ts +0 -23
- package/dist/ChartV2/marks/heatmapGL.d.ts.map +0 -1
- package/dist/ChartV2/marks/heatmapGL.js +0 -242
- package/dist/ChartV2/marks/index.d.ts +0 -13
- package/dist/ChartV2/marks/index.d.ts.map +0 -1
- package/dist/ChartV2/marks/index.js +0 -14
- package/dist/ChartV2/marks/line.d.ts +0 -18
- package/dist/ChartV2/marks/line.d.ts.map +0 -1
- package/dist/ChartV2/marks/line.js +0 -76
- package/dist/ChartV2/marks/referenceLine.d.ts +0 -35
- package/dist/ChartV2/marks/referenceLine.d.ts.map +0 -1
- package/dist/ChartV2/marks/referenceLine.js +0 -186
- package/dist/ChartV2/marks/streamGL.d.ts +0 -36
- package/dist/ChartV2/marks/streamGL.d.ts.map +0 -1
- package/dist/ChartV2/marks/streamGL.js +0 -204
- package/dist/ChartV2/tooltip.d.ts +0 -38
- package/dist/ChartV2/tooltip.d.ts.map +0 -1
- package/dist/ChartV2/tooltip.js +0 -54
- package/dist/ChartV2/types.d.ts +0 -115
- package/dist/ChartV2/types.d.ts.map +0 -1
- package/dist/ChartV2/types.js +0 -35
- package/src/ChartV2/Chart.tsx +0 -348
- package/src/ChartV2/ChartAxis.tsx +0 -209
- package/src/ChartV2/ChartGrid.tsx +0 -99
- package/src/ChartV2/ChartLegend.tsx +0 -69
- package/src/ChartV2/ChartSwatch.doc.mjs +0 -17
- package/src/ChartV2/ChartSwatch.tsx +0 -86
- package/src/ChartV2/ChartTooltip.tsx +0 -382
- package/src/ChartV2/ChartV2.doc.mjs +0 -16
- package/src/ChartV2/ChartV2Context.ts +0 -15
- package/src/ChartV2/index.ts +0 -62
- package/src/ChartV2/layout.ts +0 -223
- package/src/ChartV2/legend.ts +0 -32
- package/src/ChartV2/marks/area.tsx +0 -122
- package/src/ChartV2/marks/band.tsx +0 -70
- package/src/ChartV2/marks/bar.tsx +0 -159
- package/src/ChartV2/marks/candlestick.tsx +0 -106
- package/src/ChartV2/marks/dot.tsx +0 -64
- package/src/ChartV2/marks/dotGL.tsx +0 -202
- package/src/ChartV2/marks/dotGLInteractive.tsx +0 -546
- package/src/ChartV2/marks/errorBar.tsx +0 -89
- package/src/ChartV2/marks/heatmapGL.tsx +0 -299
- package/src/ChartV2/marks/index.ts +0 -14
- package/src/ChartV2/marks/line.tsx +0 -94
- package/src/ChartV2/marks/referenceLine.tsx +0 -224
- package/src/ChartV2/marks/streamGL.tsx +0 -251
- package/src/ChartV2/tooltip.ts +0 -70
- package/src/ChartV2/types.ts +0 -129
|
@@ -9,6 +9,8 @@ export interface CodeEditorProps extends Omit<BaseProps<HTMLDivElement>, 'onChan
|
|
|
9
9
|
onChange: (value: string) => void;
|
|
10
10
|
/** Language for highlighting. @default "plaintext" */
|
|
11
11
|
language?: string;
|
|
12
|
+
/** Label for the code editor — used as the accessible name of the editable region. */
|
|
13
|
+
label: string;
|
|
12
14
|
/** Show line numbers. @default false */
|
|
13
15
|
hasLineNumbers?: boolean;
|
|
14
16
|
/** Read-only mode. @default false */
|
|
@@ -32,6 +34,7 @@ export interface CodeEditorProps extends Omit<BaseProps<HTMLDivElement>, 'onChan
|
|
|
32
34
|
* ```tsx
|
|
33
35
|
* const [code, setCode] = useState('');
|
|
34
36
|
* <CodeEditor
|
|
37
|
+
* label="Source code"
|
|
35
38
|
* value={code}
|
|
36
39
|
* onChange={setCode}
|
|
37
40
|
* language="typescript"
|
|
@@ -39,7 +42,7 @@ export interface CodeEditorProps extends Omit<BaseProps<HTMLDivElement>, 'onChan
|
|
|
39
42
|
* />
|
|
40
43
|
* ```
|
|
41
44
|
*/
|
|
42
|
-
export declare function CodeEditor({ value, onChange, language, hasLineNumbers, isReadOnly, placeholder, maxHeight, size, tokenizer: customTokenizer, xstyle, className, style, ref, ...props }: CodeEditorProps): import("react").JSX.Element;
|
|
45
|
+
export declare function CodeEditor({ value, onChange, language, hasLineNumbers, isReadOnly, placeholder, maxHeight, size, tokenizer: customTokenizer, label, xstyle, className, style, ref, ...props }: CodeEditorProps): import("react").JSX.Element;
|
|
43
46
|
export declare namespace CodeEditor {
|
|
44
47
|
var displayName: string;
|
|
45
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAiBlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAuF5D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;CAC7D;AA6BD
|
|
1
|
+
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAiBlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAuF5D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;CAC7D;AA6BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAsB,EACtB,cAAsB,EACtB,UAAkB,EAClB,WAAW,EACX,SAAS,EACT,IAAW,EACX,SAAS,EAAE,eAAe,EAC1B,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BAkQjB;yBAlRe,UAAU"}
|
|
@@ -132,6 +132,7 @@ let editorInstanceCounter = 0;
|
|
|
132
132
|
* ```tsx
|
|
133
133
|
* const [code, setCode] = useState('');
|
|
134
134
|
* <CodeEditor
|
|
135
|
+
* label="Source code"
|
|
135
136
|
* value={code}
|
|
136
137
|
* onChange={setCode}
|
|
137
138
|
* language="typescript"
|
|
@@ -149,6 +150,7 @@ export function CodeEditor({
|
|
|
149
150
|
maxHeight,
|
|
150
151
|
size = 'md',
|
|
151
152
|
tokenizer: customTokenizer,
|
|
153
|
+
label,
|
|
152
154
|
xstyle,
|
|
153
155
|
className,
|
|
154
156
|
style,
|
|
@@ -379,6 +381,7 @@ export function CodeEditor({
|
|
|
379
381
|
contentEditable: isReadOnly ? false : 'plaintext-only',
|
|
380
382
|
role: "textbox",
|
|
381
383
|
"aria-multiline": "true",
|
|
384
|
+
"aria-label": label,
|
|
382
385
|
"aria-readonly": isReadOnly,
|
|
383
386
|
spellCheck: false,
|
|
384
387
|
onInput: handleInput,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankeyChart.d.ts","sourceRoot":"","sources":["../../src/Sankey/SankeyChart.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,eAAe,EAAE,eAAe,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,uBAAuB;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AA+CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAY,EACZ,SAAc,EACd,OAAY,EACZ,SAAS,EACT,cAAoB,EACpB,QAAQ,GACT,EAAE,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"SankeyChart.d.ts","sourceRoot":"","sources":["../../src/Sankey/SankeyChart.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,eAAe,EAAE,eAAe,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,uBAAuB;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AA+CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAY,EACZ,SAAc,EACd,OAAY,EACZ,SAAS,EACT,cAAoB,EACpB,QAAQ,GACT,EAAE,gBAAgB,+BAqFlB;yBA/Fe,WAAW"}
|
|
@@ -140,6 +140,9 @@ export function SankeyChart({
|
|
|
140
140
|
width: '100%'
|
|
141
141
|
},
|
|
142
142
|
children: ctx && /*#__PURE__*/_jsx("div", {
|
|
143
|
+
role: needsScroll ? 'group' : undefined,
|
|
144
|
+
"aria-label": needsScroll ? 'Sankey chart' : undefined,
|
|
145
|
+
tabIndex: needsScroll ? 0 : undefined,
|
|
143
146
|
style: needsScroll ? {
|
|
144
147
|
overflowX: 'auto',
|
|
145
148
|
overflowY: 'hidden'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../src/Schedule/ListView.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAGV,YAAY,EAEb,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../src/Schedule/ListView.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAGV,YAAY,EAEb,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwID,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EAAE,QAAY,GACnB,GAAE,uBAA4B,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAmCtE"}
|
|
@@ -22,7 +22,8 @@ function ScheduleListView(_props) {
|
|
|
22
22
|
events,
|
|
23
23
|
timezoneID,
|
|
24
24
|
range,
|
|
25
|
-
isLoading
|
|
25
|
+
isLoading,
|
|
26
|
+
headingLevel
|
|
26
27
|
} = useScheduleContext();
|
|
27
28
|
const days = enumerateDates(range.startDate, range.endDate);
|
|
28
29
|
const currentTime = useCurrentTime();
|
|
@@ -59,7 +60,8 @@ function ScheduleListView(_props) {
|
|
|
59
60
|
children: [/*#__PURE__*/_jsx(ListDayHeading, {
|
|
60
61
|
day: day,
|
|
61
62
|
isCurrentDay: isCurrentDay,
|
|
62
|
-
timezoneID: timezoneID
|
|
63
|
+
timezoneID: timezoneID,
|
|
64
|
+
headingLevel: headingLevel
|
|
63
65
|
}), /*#__PURE__*/_jsx("div", {
|
|
64
66
|
...stylex.props(styles.listEvents),
|
|
65
67
|
children: renderListRows({
|
|
@@ -76,10 +78,11 @@ function ScheduleListView(_props) {
|
|
|
76
78
|
function ListDayHeading({
|
|
77
79
|
day,
|
|
78
80
|
isCurrentDay,
|
|
79
|
-
timezoneID
|
|
81
|
+
timezoneID,
|
|
82
|
+
headingLevel
|
|
80
83
|
}) {
|
|
81
84
|
return /*#__PURE__*/_jsxs(Heading, {
|
|
82
|
-
level:
|
|
85
|
+
level: headingLevel,
|
|
83
86
|
color: "secondary",
|
|
84
87
|
display: "block",
|
|
85
88
|
"aria-label": formatFullDate(day, timezoneID),
|
|
@@ -25,7 +25,8 @@ function ScheduleMonthlyView(_props) {
|
|
|
25
25
|
focusDate,
|
|
26
26
|
timezoneID,
|
|
27
27
|
range,
|
|
28
|
-
isLoading
|
|
28
|
+
isLoading,
|
|
29
|
+
headingLevel
|
|
29
30
|
} = useScheduleContext();
|
|
30
31
|
const rangeDate = date.toPlainDate();
|
|
31
32
|
const highlightedDate = focusDate.toPlainDate();
|
|
@@ -55,7 +56,7 @@ function ScheduleMonthlyView(_props) {
|
|
|
55
56
|
"aria-colindex": index + 1,
|
|
56
57
|
...stylex.props(styles.weekdayLabel),
|
|
57
58
|
children: /*#__PURE__*/_jsx(Heading, {
|
|
58
|
-
level:
|
|
59
|
+
level: headingLevel,
|
|
59
60
|
color: "secondary",
|
|
60
61
|
display: "block",
|
|
61
62
|
xstyle: styles.weekdayHeading,
|
|
@@ -17,6 +17,8 @@ export interface ScheduleProps<Options extends ScheduleViewOptions = ScheduleVie
|
|
|
17
17
|
timezoneID?: string;
|
|
18
18
|
/** Header/rendering plugins. Defaults to pagination controls. */
|
|
19
19
|
plugins?: ReadonlyArray<SchedulePlugin>;
|
|
20
|
+
/** Heading level for sub-headings (day labels, weekday headers) within the schedule. @default 3 */
|
|
21
|
+
headingLevel?: 2 | 3 | 4 | 5 | 6;
|
|
20
22
|
}
|
|
21
|
-
export declare function Schedule({ view, events, categories, date, focusDate: focusDateProp, onChangeDate, timezoneID: timezoneIDProp, plugins, xstyle, className, style, ...rest }: ScheduleProps): import("react").JSX.Element;
|
|
23
|
+
export declare function Schedule({ view, events, categories, date, focusDate: focusDateProp, onChangeDate, timezoneID: timezoneIDProp, plugins, headingLevel, xstyle, className, style, ...rest }: ScheduleProps): import("react").JSX.Element;
|
|
22
24
|
//# sourceMappingURL=Schedule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schedule.d.ts","sourceRoot":"","sources":["../../src/Schedule/Schedule.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAQlD,OAAO,KAAK,EAEV,OAAO,EAEP,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CACzD,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjC,iEAAiE;IACjE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,CAAC;IAC5B,qFAAqF;IACrF,UAAU,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC7C,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Schedule.d.ts","sourceRoot":"","sources":["../../src/Schedule/Schedule.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAQlD,OAAO,KAAK,EAEV,OAAO,EAEP,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CACzD,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjC,iEAAiE;IACjE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,CAAC;IAC5B,qFAAqF;IACrF,UAAU,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC7C,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACxC,mGAAmG;IACnG,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAClC;AAoJD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,UAAe,EACf,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,YAAY,EACZ,UAAU,EAAE,cAAc,EAC1B,OAAgC,EAChC,YAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,aAAa,+BA4Ff"}
|
|
@@ -84,7 +84,8 @@ function ScheduleViewContent({
|
|
|
84
84
|
onToday,
|
|
85
85
|
onNextDate,
|
|
86
86
|
nextDateLabel,
|
|
87
|
-
plugins
|
|
87
|
+
plugins,
|
|
88
|
+
headingLevel
|
|
88
89
|
}) {
|
|
89
90
|
const Component = view.component;
|
|
90
91
|
const range = getRange(view, date);
|
|
@@ -104,7 +105,8 @@ function ScheduleViewContent({
|
|
|
104
105
|
onNextDate,
|
|
105
106
|
nextDateLabel,
|
|
106
107
|
view,
|
|
107
|
-
plugins
|
|
108
|
+
plugins,
|
|
109
|
+
headingLevel
|
|
108
110
|
},
|
|
109
111
|
children: /*#__PURE__*/_jsx(Component, {
|
|
110
112
|
options: view.options
|
|
@@ -120,6 +122,7 @@ export function Schedule({
|
|
|
120
122
|
onChangeDate,
|
|
121
123
|
timezoneID: timezoneIDProp,
|
|
122
124
|
plugins = defaultSchedulePlugins,
|
|
125
|
+
headingLevel = 3,
|
|
123
126
|
xstyle,
|
|
124
127
|
className,
|
|
125
128
|
style,
|
|
@@ -164,7 +167,8 @@ export function Schedule({
|
|
|
164
167
|
onToday: onToday,
|
|
165
168
|
onNextDate: onNextDate,
|
|
166
169
|
nextDateLabel: nextDateRange.label,
|
|
167
|
-
plugins: plugins
|
|
170
|
+
plugins: plugins,
|
|
171
|
+
headingLevel: headingLevel
|
|
168
172
|
}),
|
|
169
173
|
children: /*#__PURE__*/_jsx(ScheduleViewContent, {
|
|
170
174
|
view: view,
|
|
@@ -178,7 +182,8 @@ export function Schedule({
|
|
|
178
182
|
onToday: onToday,
|
|
179
183
|
onNextDate: onNextDate,
|
|
180
184
|
nextDateLabel: nextDateRange.label,
|
|
181
|
-
plugins: plugins
|
|
185
|
+
plugins: plugins,
|
|
186
|
+
headingLevel: headingLevel
|
|
182
187
|
})
|
|
183
188
|
})
|
|
184
189
|
});
|
|
@@ -26,7 +26,8 @@ export function TimeGridView({
|
|
|
26
26
|
hourHeight
|
|
27
27
|
}) {
|
|
28
28
|
const {
|
|
29
|
-
categories
|
|
29
|
+
categories,
|
|
30
|
+
headingLevel
|
|
30
31
|
} = useScheduleContext();
|
|
31
32
|
const normalizedMinHour = Math.max(0, Math.min(23, Math.floor(minHour)));
|
|
32
33
|
const normalizedMaxHour = Math.max(normalizedMinHour + 1, Math.min(24, Math.floor(maxHour)));
|
|
@@ -60,7 +61,7 @@ export function TimeGridView({
|
|
|
60
61
|
children: days.map((day, index) => /*#__PURE__*/_jsx("div", {
|
|
61
62
|
...stylex.props(styles.timeGridHeaderCell, index === days.length - 1 && styles.timeGridHeaderCellLast),
|
|
62
63
|
children: /*#__PURE__*/_jsx(Heading, {
|
|
63
|
-
level:
|
|
64
|
+
level: headingLevel,
|
|
64
65
|
color: "secondary",
|
|
65
66
|
display: "block",
|
|
66
67
|
xstyle: styles.timeGridHeaderHeading,
|
|
@@ -14,6 +14,8 @@ export interface ScheduleContextValue {
|
|
|
14
14
|
nextDateLabel: string;
|
|
15
15
|
view: ScheduleViewBase;
|
|
16
16
|
plugins: ReadonlyArray<SchedulePlugin>;
|
|
17
|
+
/** Heading level used for sub-headings within the schedule (day labels, weekday headers). */
|
|
18
|
+
headingLevel: 2 | 3 | 4 | 5 | 6;
|
|
17
19
|
}
|
|
18
20
|
export declare const ScheduleContext: import("react").Context<ScheduleContextValue | null>;
|
|
19
21
|
export declare function useScheduleContext(): ScheduleContextValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/Schedule/context.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/Schedule/context.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,6FAA6F;IAC7F,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,eAAe,sDAE3B,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,6 @@ export { RadialChart, type RadialChartProps, RadialGrid, type RadialGridProps, R
|
|
|
21
21
|
export { ThreeDChart, type ThreeDChartProps, ThreeDScatter, ThreeDScatterGL, type ThreeDScatterProps, type ThreeDScatterGLProps, ThreeDBar, type ThreeDBarProps, ThreeDGrid, type ThreeDGridProps, ThreeDAxis, type ThreeDAxisProps, ThreeDSurface, type ThreeDSurfaceProps, use3D, type ThreeDContext, type Camera, type Point3D, type ProjectedPoint, } from './ThreeD';
|
|
22
22
|
export { ChartBrush, type ChartBrushProps, type BrushMode, type BrushRange, ChartZoom, type ChartZoomProps, ChartSelect, type ChartSelectProps, ChartReferenceLine, type ChartReferenceLineProps, } from './Chart';
|
|
23
23
|
export { SankeyChart, type SankeyChartProps, SankeyLink, type SankeyLinkProps, SankeyNode, type SankeyNodeProps, SankeyLabel, type SankeyLabelProps, useSankey, type SankeyNodeDatum, type SankeyLinkDatum, type SankeyColumn, type SankeyColumnDef, type SankeyNodeLayout, type SankeyLinkLayout, type SankeyColumnLayout, SankeyGrid, type SankeyGridProps, type SankeyContext, } from './Sankey';
|
|
24
|
-
export { Chart as ChartV2, type ChartProps as ChartV2Props, ChartLegend as ChartV2Legend, type ChartLegendProps as ChartV2LegendProps, type LegendItem as ChartV2LegendItem, ChartAxis as ChartV2Axis, type ChartAxisProps as ChartV2AxisProps, ChartGrid as ChartV2Grid, type ChartGridProps as ChartV2GridProps, ChartSwatch as ChartV2Swatch, swatchVariantForType as xdsChartV2SwatchVariantForType, type ChartSwatchProps as ChartV2SwatchProps, type ChartSwatchVariant as ChartV2SwatchVariant, ChartTooltip as ChartV2Tooltip, type ChartTooltipProps as ChartV2TooltipProps, type ChartTooltipPlacement as ChartV2TooltipPlacement, type TooltipSeriesValue as ChartV2TooltipSeriesValue, bar, line, dot, area, band, candlestick, errorBar, referenceLine, dotGL, dotGLInteractive, heatmapGL, streamGL, useChartV2, type SeriesDef, type ChartV2Context, type ChartPointerEvent, type ResolvedPoint, type ResolvedPositions, type SeriesContext, type ErrorBarOptions, type ReferenceLineOptions, type DotGLOptions, type DotGLInteractiveOptions, type HeatmapGLOptions, type StreamGLOptions, type StreamGLHandle, } from './ChartV2';
|
|
25
24
|
export * from './Stepper';
|
|
26
25
|
export * from './CircularProgress';
|
|
27
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAGH,OAAO,EAAC,SAAS,EAAE,KAAK,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAE,KAAK,eAAe,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,KAAK,WAAW,GACjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAGvE,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAGvC,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,KAAK,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,SAAS,EACT,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,cAAc,EACnB,QAAQ,EACR,KAAK,aAAa,EAClB,SAAS,EACT,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,QAAQ,EACR,KAAK,aAAa,EAClB,UAAU,EACV,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,cAAc,EACd,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,QAAQ,EACR,KAAK,OAAO,EACZ,cAAc,EACd,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,cAAc,EACd,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,eAAe,EACpB,WAAW,EACX,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,aAAa,EACb,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,SAAS,EACT,KAAK,cAAc,EACnB,UAAU,EACV,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,SAAS,EACT,KAAK,cAAc,EACnB,WAAW,EACX,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,eAAe,EACpB,WAAW,EACX,KAAK,gBAAgB,EACrB,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAIlB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -44,7 +44,7 @@ export { ChartBrush, ChartZoom, ChartSelect, ChartReferenceLine } from "./Chart/
|
|
|
44
44
|
// Sankey / flow diagrams — ribbon-based flow visualization
|
|
45
45
|
export { SankeyChart, SankeyLink, SankeyNode, SankeyLabel, useSankey, SankeyGrid } from "./Sankey/index.js";
|
|
46
46
|
|
|
47
|
-
// Chart v2
|
|
48
|
-
|
|
47
|
+
// Chart v2 (config model) moved to its own package: @astryxdesign/charts.
|
|
48
|
+
// It is no longer re-exported from @astryxdesign/lab.
|
|
49
49
|
export * from "./Stepper/index.js";
|
|
50
50
|
export * from "./CircularProgress/index.js";
|
package/dist/lab.css
CHANGED
|
@@ -74,8 +74,6 @@
|
|
|
74
74
|
.x1r9gxr1:not(#\#):not(#\#){border-color:var(--color-border-teal)}
|
|
75
75
|
.x1kpnwn1:not(#\#):not(#\#){border-color:var(--color-border-yellow)}
|
|
76
76
|
.x14i3s5s:not(#\#):not(#\#){border-color:var(--color-border)}
|
|
77
|
-
.xbvija:not(#\#):not(#\#){border-radius:1.5px}
|
|
78
|
-
.x1cum3z5:not(#\#):not(#\#){border-radius:2px}
|
|
79
77
|
.x1hviunn:not(#\#):not(#\#){border-radius:var(--radius-container)}
|
|
80
78
|
.xh6dtrn:not(#\#):not(#\#){border-radius:var(--radius-element)}
|
|
81
79
|
.xjspbzw:not(#\#):not(#\#){border-radius:var(--radius-full)}
|
|
@@ -102,7 +100,6 @@
|
|
|
102
100
|
.x33j1x8:not(#\#):not(#\#){grid-row:var(--x-gridRow)}
|
|
103
101
|
.x17y0mx6:not(#\#):not(#\#){inset-inline:0}
|
|
104
102
|
.x1yqqeh1:not(#\#):not(#\#){margin-block:var(--spacing-0-5)}
|
|
105
|
-
.xckhbgb:not(#\#):not(#\#){margin-inline:1px}
|
|
106
103
|
.x1a2a7pz:not(#\#):not(#\#){outline:none}
|
|
107
104
|
.xysyzu8:not(#\#):not(#\#){overflow:auto}
|
|
108
105
|
.xb3r6kr:not(#\#):not(#\#){overflow:hidden}
|
|
@@ -166,7 +163,6 @@
|
|
|
166
163
|
.xwmxj5m:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}
|
|
167
164
|
.x1e9xt6e:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-orange)}
|
|
168
165
|
.xnpoty2:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-pink)}
|
|
169
|
-
.x1prclbq:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-popover)}
|
|
170
166
|
.x16i6n6f:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-purple)}
|
|
171
167
|
.x1cibrc5:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-red)}
|
|
172
168
|
.x1jtji5o:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-teal)}
|
|
@@ -192,7 +188,6 @@
|
|
|
192
188
|
.x10w94by:not(#\#):not(#\#):not(#\#){border-inline-end-width:0}
|
|
193
189
|
.xw8tdv1:not(#\#):not(#\#):not(#\#){border-inline-end-width:var(--border-width)}
|
|
194
190
|
.x18oyj42:not(#\#):not(#\#):not(#\#){box-shadow:0 0 0 1px var(--color-accent)}
|
|
195
|
-
.x14hfi27:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}
|
|
196
191
|
.x1ftfhsn:not(#\#):not(#\#):not(#\#){caret-color:var(--color-text-primary)}
|
|
197
192
|
.xeh89do:not(#\#):not(#\#):not(#\#){clip:rect(0 0 0 0)}
|
|
198
193
|
.xzpqnlu:not(#\#):not(#\#):not(#\#){clip:rect(0,0,0,0)}
|
|
@@ -240,7 +235,6 @@
|
|
|
240
235
|
.x78zum5:not(#\#):not(#\#):not(#\#){display:flex}
|
|
241
236
|
.xrvj5dj:not(#\#):not(#\#):not(#\#){display:grid}
|
|
242
237
|
.x3nfvp2:not(#\#):not(#\#):not(#\#){display:inline-flex}
|
|
243
|
-
.x1s85apg:not(#\#):not(#\#):not(#\#){display:none}
|
|
244
238
|
.xbh8q5q:not(#\#):not(#\#):not(#\#){fill:none}
|
|
245
239
|
.xdt5ytf:not(#\#):not(#\#):not(#\#){flex-direction:column}
|
|
246
240
|
.x1q0g3np:not(#\#):not(#\#):not(#\#){flex-direction:row}
|
|
@@ -303,19 +297,15 @@
|
|
|
303
297
|
.x67bb7w:not(#\#):not(#\#):not(#\#){pointer-events:auto}
|
|
304
298
|
.x47corl:not(#\#):not(#\#):not(#\#){pointer-events:none}
|
|
305
299
|
.x10l6tqk:not(#\#):not(#\#):not(#\#){position:absolute}
|
|
306
|
-
.xixxii4:not(#\#):not(#\#):not(#\#){position:fixed}
|
|
307
300
|
.x1n2onr6:not(#\#):not(#\#):not(#\#){position:relative}
|
|
308
301
|
.x1owpc8m:not(#\#):not(#\#):not(#\#){stroke-linecap:round}
|
|
309
|
-
.xnpr05h:not(#\#):not(#\#):not(#\#){stroke-width:1}
|
|
310
302
|
.ximx5ud:not(#\#):not(#\#):not(#\#){stroke:var(--color-accent-muted)}
|
|
311
303
|
.xjsr54c:not(#\#):not(#\#):not(#\#){stroke:var(--color-accent)}
|
|
312
|
-
.x113i6qz:not(#\#):not(#\#):not(#\#){stroke:var(--color-border-emphasized)}
|
|
313
304
|
.xjswp7v:not(#\#):not(#\#):not(#\#){stroke:var(--color-error-muted)}
|
|
314
305
|
.x1vco6zm:not(#\#):not(#\#):not(#\#){stroke:var(--color-error)}
|
|
315
306
|
.x1uro670:not(#\#):not(#\#):not(#\#){stroke:var(--color-success-muted)}
|
|
316
307
|
.x8y33gb:not(#\#):not(#\#):not(#\#){stroke:var(--color-success)}
|
|
317
308
|
.xuxf9kk:not(#\#):not(#\#):not(#\#){stroke:var(--color-text-disabled)}
|
|
318
|
-
.x1lo1t26:not(#\#):not(#\#):not(#\#){stroke:var(--color-text-primary)}
|
|
319
309
|
.xpi25hw:not(#\#):not(#\#):not(#\#){stroke:var(--color-track)}
|
|
320
310
|
.x1wjzxuj:not(#\#):not(#\#):not(#\#){stroke:var(--color-warning-muted)}
|
|
321
311
|
.x9ezeq1:not(#\#):not(#\#):not(#\#){stroke:var(--color-warning)}
|
|
@@ -342,7 +332,6 @@
|
|
|
342
332
|
.x1lldw8n:not(#\#):not(#\#):not(#\#){word-break:normal}
|
|
343
333
|
.x1vjfegm:not(#\#):not(#\#):not(#\#){z-index:1}
|
|
344
334
|
.x1355qak:not(#\#):not(#\#):not(#\#){z-index:20}
|
|
345
|
-
.x1q2oy4v:not(#\#):not(#\#):not(#\#){z-index:9999}
|
|
346
335
|
.xr3buco:not(#\#):not(#\#):not(#\#){z-index:var(--x-zIndex)}
|
|
347
336
|
.x7s97pk:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:2px}
|
|
348
337
|
.xyxi2l3:active:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}
|
|
@@ -363,16 +352,13 @@
|
|
|
363
352
|
.xjm9jq1:not(#\#):not(#\#):not(#\#):not(#\#){height:1px}
|
|
364
353
|
.xxk0z11:not(#\#):not(#\#):not(#\#):not(#\#){height:24px}
|
|
365
354
|
.x1gnnpzl:not(#\#):not(#\#):not(#\#):not(#\#){height:30px}
|
|
366
|
-
.xuoj239:not(#\#):not(#\#):not(#\#):not(#\#){height:3px}
|
|
367
355
|
.xqu0tyb:not(#\#):not(#\#):not(#\#):not(#\#){height:4px}
|
|
368
356
|
.x1d9x2de:not(#\#):not(#\#):not(#\#):not(#\#){height:640px}
|
|
369
|
-
.xdk7pt:not(#\#):not(#\#):not(#\#):not(#\#){height:8px}
|
|
370
357
|
.xhigkf7:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--icon-size)}
|
|
371
358
|
.x6b6gus:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-4)}
|
|
372
359
|
.x1grt7ep:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-5)}
|
|
373
360
|
.x16ye13r:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--x-height)}
|
|
374
361
|
.x1unci72:not(#\#):not(#\#):not(#\#):not(#\#){left:var(--spacing-4)}
|
|
375
|
-
.x1yztbdb:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:16px}
|
|
376
362
|
.xlstkdb:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-0-5)}
|
|
377
363
|
.x160xvyo:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(var(--spacing-1) * -1)}
|
|
378
364
|
.xtbrsbv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-2)}
|
|
@@ -401,7 +387,6 @@
|
|
|
401
387
|
.xvy4d1p:not(#\#):not(#\#):not(#\#):not(#\#){width:24px}
|
|
402
388
|
.x1849jeq:not(#\#):not(#\#):not(#\#):not(#\#){width:30px}
|
|
403
389
|
.x51ohtg:not(#\#):not(#\#):not(#\#):not(#\#){width:4px}
|
|
404
|
-
.x1xc55vz:not(#\#):not(#\#):not(#\#):not(#\#){width:8px}
|
|
405
390
|
.x1oai4fc:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--icon-size)}
|
|
406
391
|
.x12xnipv:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-4)}
|
|
407
392
|
.xfyiiit:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-5)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astryxdesign/lab",
|
|
3
|
-
"version": "0.1.4-canary.
|
|
3
|
+
"version": "0.1.4-canary.f767ee2",
|
|
4
4
|
"description": "Experimental Astryx components — published to npm only under the @canary dist-tag for early testing; never released as a stable (latest) version.",
|
|
5
5
|
"author": "Meta Open Source",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@stylexjs/stylex": ">=0.10.0",
|
|
48
|
-
"@astryxdesign/core": "0.1.4-canary.
|
|
48
|
+
"@astryxdesign/core": "0.1.4-canary.f767ee2",
|
|
49
49
|
"react": ">=19.0.0",
|
|
50
50
|
"react-dom": ">=19.0.0"
|
|
51
51
|
},
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
import {describe, it, expect} from 'vitest';
|
|
4
|
+
import {render, screen} from '@testing-library/react';
|
|
5
|
+
import {CodeEditor} from './CodeEditor';
|
|
6
|
+
|
|
7
|
+
describe('CodeEditor', () => {
|
|
8
|
+
it('uses the label prop as the accessible name', () => {
|
|
9
|
+
render(
|
|
10
|
+
<CodeEditor
|
|
11
|
+
value=""
|
|
12
|
+
onChange={() => {}}
|
|
13
|
+
language="typescript"
|
|
14
|
+
label="Edit snippet"
|
|
15
|
+
/>,
|
|
16
|
+
);
|
|
17
|
+
expect(
|
|
18
|
+
screen.getByRole('textbox', {name: 'Edit snippet'}),
|
|
19
|
+
).toBeInTheDocument();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -131,6 +131,8 @@ export interface CodeEditorProps extends Omit<
|
|
|
131
131
|
onChange: (value: string) => void;
|
|
132
132
|
/** Language for highlighting. @default "plaintext" */
|
|
133
133
|
language?: string;
|
|
134
|
+
/** Label for the code editor — used as the accessible name of the editable region. */
|
|
135
|
+
label: string;
|
|
134
136
|
/** Show line numbers. @default false */
|
|
135
137
|
hasLineNumbers?: boolean;
|
|
136
138
|
/** Read-only mode. @default false */
|
|
@@ -182,6 +184,7 @@ let editorInstanceCounter = 0;
|
|
|
182
184
|
* ```tsx
|
|
183
185
|
* const [code, setCode] = useState('');
|
|
184
186
|
* <CodeEditor
|
|
187
|
+
* label="Source code"
|
|
185
188
|
* value={code}
|
|
186
189
|
* onChange={setCode}
|
|
187
190
|
* language="typescript"
|
|
@@ -199,6 +202,7 @@ export function CodeEditor({
|
|
|
199
202
|
maxHeight,
|
|
200
203
|
size = 'md',
|
|
201
204
|
tokenizer: customTokenizer,
|
|
205
|
+
label,
|
|
202
206
|
xstyle,
|
|
203
207
|
className,
|
|
204
208
|
style,
|
|
@@ -447,6 +451,7 @@ export function CodeEditor({
|
|
|
447
451
|
contentEditable={isReadOnly ? false : ('plaintext-only' as any)}
|
|
448
452
|
role="textbox"
|
|
449
453
|
aria-multiline="true"
|
|
454
|
+
aria-label={label}
|
|
450
455
|
aria-readonly={isReadOnly}
|
|
451
456
|
spellCheck={false}
|
|
452
457
|
onInput={handleInput}
|
|
@@ -11,7 +11,7 @@ export const docs = {
|
|
|
11
11
|
{
|
|
12
12
|
name: 'content',
|
|
13
13
|
type: 'ReactNode',
|
|
14
|
-
description: 'Content to display in the tooltip. Typically short, non-interactive text. Mirrors Tooltip
|
|
14
|
+
description: 'Content to display in the tooltip. Typically short, non-interactive text. Mirrors Tooltip\'s content prop.',
|
|
15
15
|
required: true,
|
|
16
16
|
},
|
|
17
17
|
{
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
import {describe, it, expect, beforeEach, afterEach, vi} from 'vitest';
|
|
4
|
+
import {render, screen, act} from '@testing-library/react';
|
|
5
|
+
import {SankeyChart} from './SankeyChart';
|
|
6
|
+
import {SankeyNode} from './SankeyNode';
|
|
7
|
+
|
|
8
|
+
const nodes = [
|
|
9
|
+
{id: 'a', label: 'A', value: 10},
|
|
10
|
+
{id: 'b', label: 'B', value: 10},
|
|
11
|
+
{id: 'c', label: 'C', value: 10},
|
|
12
|
+
];
|
|
13
|
+
const links = [
|
|
14
|
+
{source: 'a', target: 'b', value: 5},
|
|
15
|
+
{source: 'b', target: 'c', value: 5},
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
// Capture the ResizeObserver callback so tests can drive the reported width.
|
|
19
|
+
let resizeCallback: ResizeObserverCallback | undefined;
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
resizeCallback = undefined;
|
|
23
|
+
vi.stubGlobal(
|
|
24
|
+
'ResizeObserver',
|
|
25
|
+
class {
|
|
26
|
+
constructor(cb: ResizeObserverCallback) {
|
|
27
|
+
resizeCallback = cb;
|
|
28
|
+
}
|
|
29
|
+
observe() {}
|
|
30
|
+
unobserve() {}
|
|
31
|
+
disconnect() {}
|
|
32
|
+
},
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(() => {
|
|
37
|
+
vi.unstubAllGlobals();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
function reportWidth(width: number) {
|
|
41
|
+
act(() => {
|
|
42
|
+
resizeCallback?.(
|
|
43
|
+
[{contentRect: {width}} as unknown as ResizeObserverEntry],
|
|
44
|
+
{} as ResizeObserver,
|
|
45
|
+
);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
describe('SankeyChart scroll container', () => {
|
|
50
|
+
it('is keyboard-focusable when the chart needs horizontal scrolling', () => {
|
|
51
|
+
render(
|
|
52
|
+
<SankeyChart nodes={nodes} links={links} minColumnWidth={400}>
|
|
53
|
+
<SankeyNode />
|
|
54
|
+
</SankeyChart>,
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Container narrower than the minimum column width forces scrolling.
|
|
58
|
+
reportWidth(300);
|
|
59
|
+
|
|
60
|
+
const scrollRegion = screen.getByRole('group', {name: 'Sankey chart'});
|
|
61
|
+
expect(scrollRegion).toHaveAttribute('tabindex', '0');
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('does not add a focusable scroll region when everything fits', () => {
|
|
65
|
+
render(
|
|
66
|
+
<SankeyChart nodes={nodes} links={links} minColumnWidth={50}>
|
|
67
|
+
<SankeyNode />
|
|
68
|
+
</SankeyChart>,
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
reportWidth(1000);
|
|
72
|
+
|
|
73
|
+
expect(
|
|
74
|
+
screen.queryByRole('group', {name: 'Sankey chart'}),
|
|
75
|
+
).not.toBeInTheDocument();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
@@ -202,6 +202,9 @@ export function SankeyChart({
|
|
|
202
202
|
<div ref={containerRef} style={{width: '100%'}}>
|
|
203
203
|
{ctx && (
|
|
204
204
|
<div
|
|
205
|
+
role={needsScroll ? 'group' : undefined}
|
|
206
|
+
aria-label={needsScroll ? 'Sankey chart' : undefined}
|
|
207
|
+
tabIndex={needsScroll ? 0 : undefined}
|
|
205
208
|
style={
|
|
206
209
|
needsScroll ? {overflowX: 'auto', overflowY: 'hidden'} : undefined
|
|
207
210
|
}>
|
|
@@ -52,7 +52,7 @@ export interface ScheduleListViewOptions {
|
|
|
52
52
|
function ScheduleListView(
|
|
53
53
|
_props: ScheduleViewComponentProps<ScheduleListViewOptions>,
|
|
54
54
|
) {
|
|
55
|
-
const {events, timezoneID, range, isLoading} = useScheduleContext();
|
|
55
|
+
const {events, timezoneID, range, isLoading, headingLevel} = useScheduleContext();
|
|
56
56
|
const days = enumerateDates(range.startDate, range.endDate);
|
|
57
57
|
const currentTime = useCurrentTime();
|
|
58
58
|
const currentPlainDate = plainDateFromInstant(currentTime, timezoneID);
|
|
@@ -97,6 +97,7 @@ function ScheduleListView(
|
|
|
97
97
|
day={day}
|
|
98
98
|
isCurrentDay={isCurrentDay}
|
|
99
99
|
timezoneID={timezoneID}
|
|
100
|
+
headingLevel={headingLevel}
|
|
100
101
|
/>
|
|
101
102
|
<div {...stylex.props(styles.listEvents)}>
|
|
102
103
|
{renderListRows({
|
|
@@ -117,14 +118,16 @@ function ListDayHeading({
|
|
|
117
118
|
day,
|
|
118
119
|
isCurrentDay,
|
|
119
120
|
timezoneID,
|
|
121
|
+
headingLevel,
|
|
120
122
|
}: {
|
|
121
123
|
day: PlainDate;
|
|
122
124
|
isCurrentDay: boolean;
|
|
123
125
|
timezoneID: string;
|
|
126
|
+
headingLevel: 2 | 3 | 4 | 5 | 6;
|
|
124
127
|
}) {
|
|
125
128
|
return (
|
|
126
129
|
<Heading
|
|
127
|
-
level={
|
|
130
|
+
level={headingLevel}
|
|
128
131
|
color="secondary"
|
|
129
132
|
display="block"
|
|
130
133
|
aria-label={formatFullDate(day, timezoneID)}
|
|
@@ -57,7 +57,7 @@ export interface ScheduleMonthlyViewOptions {
|
|
|
57
57
|
function ScheduleMonthlyView(
|
|
58
58
|
_props: ScheduleViewComponentProps<ScheduleMonthlyViewOptions>,
|
|
59
59
|
) {
|
|
60
|
-
const {events, categories, date, focusDate, timezoneID, range, isLoading} =
|
|
60
|
+
const {events, categories, date, focusDate, timezoneID, range, isLoading, headingLevel} =
|
|
61
61
|
useScheduleContext();
|
|
62
62
|
const rangeDate = date.toPlainDate();
|
|
63
63
|
const highlightedDate = focusDate.toPlainDate();
|
|
@@ -86,7 +86,7 @@ function ScheduleMonthlyView(
|
|
|
86
86
|
aria-colindex={index + 1}
|
|
87
87
|
{...stylex.props(styles.weekdayLabel)}>
|
|
88
88
|
<Heading
|
|
89
|
-
level={
|
|
89
|
+
level={headingLevel}
|
|
90
90
|
color="secondary"
|
|
91
91
|
display="block"
|
|
92
92
|
xstyle={styles.weekdayHeading}>
|
|
@@ -99,6 +99,45 @@ describe('Schedule', () => {
|
|
|
99
99
|
expect(screen.queryByText('Outside range')).not.toBeInTheDocument();
|
|
100
100
|
});
|
|
101
101
|
|
|
102
|
+
it('renders monthly weekday headings at the configured headingLevel (default 3)', async () => {
|
|
103
|
+
render(
|
|
104
|
+
<Schedule
|
|
105
|
+
view={createScheduleMonthlyView()}
|
|
106
|
+
events={events}
|
|
107
|
+
categories={categories}
|
|
108
|
+
date={Date.UTC(2026, 4, 13)}
|
|
109
|
+
focusDate={Date.UTC(2026, 4, 13)}
|
|
110
|
+
timezoneID="UTC"
|
|
111
|
+
/>,
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
await waitFor(() => {
|
|
115
|
+
expect(screen.getByText('Visible sync')).toBeInTheDocument();
|
|
116
|
+
});
|
|
117
|
+
expect(
|
|
118
|
+
screen.getAllByRole('heading', {level: 3}).length,
|
|
119
|
+
).toBeGreaterThan(0);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('renders list day headings at the configured headingLevel (default 3)', async () => {
|
|
123
|
+
render(
|
|
124
|
+
<Schedule
|
|
125
|
+
view={createScheduleListView({days: 7})}
|
|
126
|
+
events={events}
|
|
127
|
+
categories={categories}
|
|
128
|
+
date={Date.UTC(2026, 4, 13)}
|
|
129
|
+
timezoneID="UTC"
|
|
130
|
+
/>,
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
await waitFor(() => {
|
|
134
|
+
expect(screen.getByText('Visible sync')).toBeInTheDocument();
|
|
135
|
+
});
|
|
136
|
+
expect(
|
|
137
|
+
screen.getAllByRole('heading', {level: 3}).length,
|
|
138
|
+
).toBeGreaterThan(0);
|
|
139
|
+
});
|
|
140
|
+
|
|
102
141
|
it('loads async events with Instant range boundaries', async () => {
|
|
103
142
|
const loader = vi.fn(
|
|
104
143
|
async (_start: Instant, _end: Instant) =>
|