@duro-app/ui 5.7.0 → 5.8.0

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.
Files changed (127) hide show
  1. package/dist/{Table-Dj7PXqO_.js → Table-CAjPFgTX.js} +397 -394
  2. package/dist/Table-CAjPFgTX.js.map +1 -0
  3. package/dist/{compiler-runtime-B2IcI8_O.js → compiler-runtime-BuugS4D0.js} +67 -59
  4. package/dist/{compiler-runtime-B2IcI8_O.js.map → compiler-runtime-BuugS4D0.js.map} +1 -1
  5. package/dist/components/AppShell/AppShell.d.ts +74 -0
  6. package/dist/components/AppShell/AppShell.d.ts.map +1 -0
  7. package/dist/components/AppShell/AppShell.meta.d.ts +3 -0
  8. package/dist/components/AppShell/AppShell.meta.d.ts.map +1 -0
  9. package/dist/components/AppShell/AppShell.stories.d.ts +186 -0
  10. package/dist/components/AppShell/AppShell.stories.d.ts.map +1 -0
  11. package/dist/components/AppShell/styles.css.d.ts +187 -0
  12. package/dist/components/AppShell/styles.css.d.ts.map +1 -0
  13. package/dist/components/Aside/Aside.d.ts +23 -0
  14. package/dist/components/Aside/Aside.d.ts.map +1 -0
  15. package/dist/components/Aside/Aside.meta.d.ts +3 -0
  16. package/dist/components/Aside/Aside.meta.d.ts.map +1 -0
  17. package/dist/components/Aside/Aside.stories.d.ts +45 -0
  18. package/dist/components/Aside/Aside.stories.d.ts.map +1 -0
  19. package/dist/components/Aside/styles.css.d.ts +44 -0
  20. package/dist/components/Aside/styles.css.d.ts.map +1 -0
  21. package/dist/components/Button/styles.css.d.ts +2 -0
  22. package/dist/components/Button/styles.css.d.ts.map +1 -1
  23. package/dist/components/ButtonGroup/ButtonGroup.stories.d.ts +3 -3
  24. package/dist/components/ButtonGroup/ButtonGroup.stories.d.ts.map +1 -1
  25. package/dist/components/CodeBlock/CodeBlock.d.ts +29 -0
  26. package/dist/components/CodeBlock/CodeBlock.d.ts.map +1 -0
  27. package/dist/components/CodeBlock/CodeBlock.meta.d.ts +3 -0
  28. package/dist/components/CodeBlock/CodeBlock.meta.d.ts.map +1 -0
  29. package/dist/components/CodeBlock/CodeBlock.stories.d.ts +67 -0
  30. package/dist/components/CodeBlock/CodeBlock.stories.d.ts.map +1 -0
  31. package/dist/components/CodeBlock/styles.css.d.ts +32 -0
  32. package/dist/components/CodeBlock/styles.css.d.ts.map +1 -0
  33. package/dist/components/Grid/Grid.d.ts +13 -4
  34. package/dist/components/Grid/Grid.d.ts.map +1 -1
  35. package/dist/components/Grid/Grid.meta.d.ts.map +1 -1
  36. package/dist/components/Grid/Grid.stories.d.ts +28 -0
  37. package/dist/components/Grid/Grid.stories.d.ts.map +1 -1
  38. package/dist/components/Grid/styles.css.d.ts +3 -0
  39. package/dist/components/Grid/styles.css.d.ts.map +1 -1
  40. package/dist/components/Heading/Heading.d.ts +3 -1
  41. package/dist/components/Heading/Heading.d.ts.map +1 -1
  42. package/dist/components/Heading/Heading.stories.d.ts +9 -0
  43. package/dist/components/Heading/Heading.stories.d.ts.map +1 -0
  44. package/dist/components/LinkButton/LinkButton.stories.d.ts +7 -0
  45. package/dist/components/LinkButton/LinkButton.stories.d.ts.map +1 -1
  46. package/dist/components/LinkButton/styles.css.d.ts +2 -0
  47. package/dist/components/LinkButton/styles.css.d.ts.map +1 -1
  48. package/dist/components/LiveRegion/LiveRegion.d.ts +28 -0
  49. package/dist/components/LiveRegion/LiveRegion.d.ts.map +1 -0
  50. package/dist/components/LiveRegion/LiveRegion.meta.d.ts +3 -0
  51. package/dist/components/LiveRegion/LiveRegion.meta.d.ts.map +1 -0
  52. package/dist/components/LiveRegion/LiveRegion.stories.d.ts +66 -0
  53. package/dist/components/LiveRegion/LiveRegion.stories.d.ts.map +1 -0
  54. package/dist/components/Menu/Menu.stories.d.ts +7 -0
  55. package/dist/components/Menu/Menu.stories.d.ts.map +1 -1
  56. package/dist/components/Menu/styles.css.d.ts +2 -0
  57. package/dist/components/Menu/styles.css.d.ts.map +1 -1
  58. package/dist/components/PageNav/styles.css.d.ts +1 -1
  59. package/dist/components/Prose/Prose.d.ts +17 -0
  60. package/dist/components/Prose/Prose.d.ts.map +1 -0
  61. package/dist/components/Prose/Prose.meta.d.ts +3 -0
  62. package/dist/components/Prose/Prose.meta.d.ts.map +1 -0
  63. package/dist/components/Prose/Prose.stories.d.ts +63 -0
  64. package/dist/components/Prose/Prose.stories.d.ts.map +1 -0
  65. package/dist/components/SideNav/SideNav.d.ts +7 -1
  66. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  67. package/dist/components/SideNav/SideNav.stories.d.ts +3 -0
  68. package/dist/components/SideNav/SideNav.stories.d.ts.map +1 -1
  69. package/dist/components/Time/Time.d.ts +26 -0
  70. package/dist/components/Time/Time.d.ts.map +1 -0
  71. package/dist/components/Time/Time.meta.d.ts +3 -0
  72. package/dist/components/Time/Time.meta.d.ts.map +1 -0
  73. package/dist/components/Time/Time.stories.d.ts +77 -0
  74. package/dist/components/Time/Time.stories.d.ts.map +1 -0
  75. package/dist/components/Time/relative.d.ts +27 -0
  76. package/dist/components/Time/relative.d.ts.map +1 -0
  77. package/dist/form.js +1 -1
  78. package/dist/hooks/useContainerBelow.d.ts +18 -0
  79. package/dist/hooks/useContainerBelow.d.ts.map +1 -0
  80. package/dist/index.css +1 -1
  81. package/dist/index.d.ts +9 -1
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +4766 -4088
  84. package/dist/index.js.map +1 -1
  85. package/dist/table.js +2 -2
  86. package/package.json +2 -2
  87. package/src/components/AppShell/AppShell.meta.ts +62 -0
  88. package/src/components/AppShell/AppShell.stories.tsx +770 -0
  89. package/src/components/AppShell/AppShell.tsx +346 -0
  90. package/src/components/AppShell/styles.css.ts +219 -0
  91. package/src/components/Aside/Aside.meta.ts +33 -0
  92. package/src/components/Aside/Aside.stories.tsx +106 -0
  93. package/src/components/Aside/Aside.tsx +42 -0
  94. package/src/components/Aside/styles.css.ts +60 -0
  95. package/src/components/Button/styles.css.ts +7 -2
  96. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +4 -5
  97. package/src/components/CodeBlock/CodeBlock.meta.ts +29 -0
  98. package/src/components/CodeBlock/CodeBlock.stories.tsx +162 -0
  99. package/src/components/CodeBlock/CodeBlock.tsx +99 -0
  100. package/src/components/CodeBlock/styles.css.ts +36 -0
  101. package/src/components/Grid/Grid.meta.ts +2 -1
  102. package/src/components/Grid/Grid.stories.tsx +202 -3
  103. package/src/components/Grid/Grid.tsx +35 -6
  104. package/src/components/Grid/styles.css.ts +11 -0
  105. package/src/components/Heading/Heading.stories.tsx +51 -0
  106. package/src/components/Heading/Heading.tsx +38 -7
  107. package/src/components/LinkButton/LinkButton.stories.tsx +41 -1
  108. package/src/components/LinkButton/styles.css.ts +6 -2
  109. package/src/components/LiveRegion/LiveRegion.meta.ts +29 -0
  110. package/src/components/LiveRegion/LiveRegion.stories.tsx +139 -0
  111. package/src/components/LiveRegion/LiveRegion.tsx +48 -0
  112. package/src/components/Menu/Menu.stories.tsx +62 -0
  113. package/src/components/Menu/styles.css.ts +6 -3
  114. package/src/components/Prose/Prose.meta.ts +32 -0
  115. package/src/components/Prose/Prose.stories.tsx +233 -0
  116. package/src/components/Prose/Prose.tsx +25 -0
  117. package/src/components/Prose/prose.css +177 -0
  118. package/src/components/SideNav/SideNav.stories.tsx +29 -0
  119. package/src/components/SideNav/SideNav.tsx +14 -2
  120. package/src/components/Time/Time.meta.ts +17 -0
  121. package/src/components/Time/Time.stories.tsx +173 -0
  122. package/src/components/Time/Time.tsx +33 -0
  123. package/src/components/Time/relative.ts +89 -0
  124. package/src/hooks/useContainerBelow.ts +39 -0
  125. package/src/index.ts +13 -1
  126. package/src/strict.css +4 -1
  127. package/dist/Table-Dj7PXqO_.js.map +0 -1
@@ -0,0 +1,187 @@
1
+ import { css } from 'react-strict-dom';
2
+ export declare const styles: Readonly<{
3
+ readonly container: Readonly<{
4
+ readonly containerType: css.StyleXClassNameFor<"containerType", "inline-size">;
5
+ readonly position: css.StyleXClassNameFor<"position", "relative">;
6
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
7
+ }>;
8
+ readonly grid: Readonly<{
9
+ readonly display: css.StyleXClassNameFor<"display", "grid">;
10
+ readonly minHeight: css.StyleXClassNameFor<"minHeight", "100dvh">;
11
+ readonly color: css.StyleXClassNameFor<"color", string>;
12
+ readonly backgroundColor: css.StyleXClassNameFor<"backgroundColor", string>;
13
+ readonly gridTemplateRows: css.StyleXClassNameFor<"gridTemplateRows", "auto 1fr">;
14
+ }>;
15
+ readonly gridSm: Readonly<{
16
+ readonly gridTemplateColumns: css.StyleXClassNameFor<"gridTemplateColumns", string>;
17
+ readonly gridTemplateAreas: css.StyleXClassNameFor<"gridTemplateAreas", "\"bar\" \"main\"" | "\"rail bar\" \"rail main\"">;
18
+ readonly '--duro-app-shell-bar': css.StyleXClassNameFor<"--duro-app-shell-bar", string>;
19
+ }>;
20
+ readonly gridMd: Readonly<{
21
+ readonly gridTemplateColumns: css.StyleXClassNameFor<"gridTemplateColumns", string>;
22
+ readonly gridTemplateAreas: css.StyleXClassNameFor<"gridTemplateAreas", "\"bar\" \"main\"" | "\"rail bar\" \"rail main\"">;
23
+ readonly '--duro-app-shell-bar': css.StyleXClassNameFor<"--duro-app-shell-bar", string>;
24
+ }>;
25
+ readonly gridLg: Readonly<{
26
+ readonly gridTemplateColumns: css.StyleXClassNameFor<"gridTemplateColumns", string>;
27
+ readonly gridTemplateAreas: css.StyleXClassNameFor<"gridTemplateAreas", "\"bar\" \"main\"" | "\"rail bar\" \"rail main\"">;
28
+ readonly '--duro-app-shell-bar': css.StyleXClassNameFor<"--duro-app-shell-bar", string>;
29
+ }>;
30
+ readonly skip: Readonly<{
31
+ readonly position: css.StyleXClassNameFor<"position", "absolute">;
32
+ readonly top: css.StyleXClassNameFor<"top", string>;
33
+ readonly left: css.StyleXClassNameFor<"left", string>;
34
+ readonly zIndex: css.StyleXClassNameFor<"zIndex", number>;
35
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
36
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
37
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
38
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
39
+ readonly borderRadius: css.StyleXClassNameFor<"borderRadius", string>;
40
+ readonly backgroundColor: css.StyleXClassNameFor<"backgroundColor", string>;
41
+ readonly transform: css.StyleXClassNameFor<"transform", "none" | "translateY(-200%)">;
42
+ readonly opacity: css.StyleXClassNameFor<"opacity", 0 | 1>;
43
+ }>;
44
+ readonly rail: Readonly<{
45
+ readonly gridArea: css.StyleXClassNameFor<"gridArea", "rail">;
46
+ readonly alignSelf: css.StyleXClassNameFor<"alignSelf", "start">;
47
+ readonly position: css.StyleXClassNameFor<"position", "sticky">;
48
+ readonly top: css.StyleXClassNameFor<"top", 0>;
49
+ readonly height: css.StyleXClassNameFor<"height", "100dvh">;
50
+ readonly flexDirection: css.StyleXClassNameFor<"flexDirection", "column">;
51
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
52
+ readonly backgroundColor: css.StyleXClassNameFor<"backgroundColor", string>;
53
+ readonly borderRightWidth: css.StyleXClassNameFor<"borderRightWidth", string>;
54
+ readonly borderRightStyle: css.StyleXClassNameFor<"borderRightStyle", "solid">;
55
+ readonly borderRightColor: css.StyleXClassNameFor<"borderRightColor", string>;
56
+ }>;
57
+ readonly railSm: Readonly<{
58
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
59
+ }>;
60
+ readonly railMd: Readonly<{
61
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
62
+ }>;
63
+ readonly railLg: Readonly<{
64
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
65
+ }>;
66
+ readonly railBrand: Readonly<{
67
+ readonly flexShrink: css.StyleXClassNameFor<"flexShrink", 0>;
68
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
69
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
70
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
71
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
72
+ }>;
73
+ readonly railBody: Readonly<{
74
+ readonly flexGrow: css.StyleXClassNameFor<"flexGrow", 1>;
75
+ readonly minHeight: css.StyleXClassNameFor<"minHeight", 0>;
76
+ readonly overflowY: css.StyleXClassNameFor<"overflowY", "auto">;
77
+ readonly overscrollBehavior: css.StyleXClassNameFor<"overscrollBehavior", "contain">;
78
+ }>;
79
+ readonly railFooter: Readonly<{
80
+ readonly flexShrink: css.StyleXClassNameFor<"flexShrink", 0>;
81
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
82
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
83
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
84
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
85
+ readonly borderTopWidth: css.StyleXClassNameFor<"borderTopWidth", string>;
86
+ readonly borderTopStyle: css.StyleXClassNameFor<"borderTopStyle", "solid">;
87
+ readonly borderTopColor: css.StyleXClassNameFor<"borderTopColor", string>;
88
+ }>;
89
+ readonly drawerFooter: Readonly<{
90
+ readonly marginTop: css.StyleXClassNameFor<"marginTop", string>;
91
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
92
+ readonly borderTopWidth: css.StyleXClassNameFor<"borderTopWidth", string>;
93
+ readonly borderTopStyle: css.StyleXClassNameFor<"borderTopStyle", "solid">;
94
+ readonly borderTopColor: css.StyleXClassNameFor<"borderTopColor", string>;
95
+ }>;
96
+ readonly bar: Readonly<{
97
+ readonly gridArea: css.StyleXClassNameFor<"gridArea", "bar">;
98
+ readonly display: css.StyleXClassNameFor<"display", "flex">;
99
+ readonly alignItems: css.StyleXClassNameFor<"alignItems", "center">;
100
+ readonly gap: css.StyleXClassNameFor<"gap", string>;
101
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
102
+ readonly backgroundColor: css.StyleXClassNameFor<"backgroundColor", string>;
103
+ readonly borderBottomWidth: css.StyleXClassNameFor<"borderBottomWidth", string>;
104
+ readonly borderBottomStyle: css.StyleXClassNameFor<"borderBottomStyle", "solid">;
105
+ readonly borderBottomColor: css.StyleXClassNameFor<"borderBottomColor", string>;
106
+ }>;
107
+ readonly barSm: Readonly<{
108
+ readonly position: css.StyleXClassNameFor<"position", "static" | "sticky">;
109
+ readonly top: css.StyleXClassNameFor<"top", 0>;
110
+ readonly zIndex: css.StyleXClassNameFor<"zIndex", number | "auto">;
111
+ readonly height: css.StyleXClassNameFor<"height", string>;
112
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
113
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
114
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
115
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
116
+ }>;
117
+ readonly barMd: Readonly<{
118
+ readonly position: css.StyleXClassNameFor<"position", "static" | "sticky">;
119
+ readonly top: css.StyleXClassNameFor<"top", 0>;
120
+ readonly zIndex: css.StyleXClassNameFor<"zIndex", number | "auto">;
121
+ readonly height: css.StyleXClassNameFor<"height", string>;
122
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
123
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
124
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
125
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
126
+ }>;
127
+ readonly barLg: Readonly<{
128
+ readonly position: css.StyleXClassNameFor<"position", "static" | "sticky">;
129
+ readonly top: css.StyleXClassNameFor<"top", 0>;
130
+ readonly zIndex: css.StyleXClassNameFor<"zIndex", number | "auto">;
131
+ readonly height: css.StyleXClassNameFor<"height", string>;
132
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
133
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
134
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
135
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
136
+ }>;
137
+ readonly barEmptySm: Readonly<{
138
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
139
+ }>;
140
+ readonly barEmptyMd: Readonly<{
141
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
142
+ }>;
143
+ readonly barEmptyLg: Readonly<{
144
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
145
+ }>;
146
+ readonly narrowSm: Readonly<{
147
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
148
+ }>;
149
+ readonly narrowMd: Readonly<{
150
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
151
+ }>;
152
+ readonly narrowLg: Readonly<{
153
+ readonly display: css.StyleXClassNameFor<"display", "flex" | "none">;
154
+ }>;
155
+ readonly narrowItem: Readonly<{
156
+ readonly flexShrink: css.StyleXClassNameFor<"flexShrink", 0>;
157
+ readonly alignItems: css.StyleXClassNameFor<"alignItems", "center">;
158
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
159
+ }>;
160
+ readonly header: Readonly<{
161
+ readonly display: css.StyleXClassNameFor<"display", "flex">;
162
+ readonly alignItems: css.StyleXClassNameFor<"alignItems", "center">;
163
+ readonly gap: css.StyleXClassNameFor<"gap", string>;
164
+ readonly flexGrow: css.StyleXClassNameFor<"flexGrow", 1>;
165
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
166
+ }>;
167
+ readonly main: Readonly<{
168
+ readonly gridArea: css.StyleXClassNameFor<"gridArea", "main">;
169
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
170
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
171
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
172
+ readonly outlineStyle: css.StyleXClassNameFor<"outlineStyle", "none">;
173
+ }>;
174
+ readonly mainSm: Readonly<{
175
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
176
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
177
+ }>;
178
+ readonly mainMd: Readonly<{
179
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
180
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
181
+ }>;
182
+ readonly mainLg: Readonly<{
183
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
184
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
185
+ }>;
186
+ }>;
187
+ //# sourceMappingURL=styles.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/styles.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAkCpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwLjB,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { ReactNode, Ref } from 'react';
2
+ import { SpacingToken } from '@duro-app/tokens/keys';
3
+ interface AsideProps {
4
+ /** Names the landmark ("Page outline"); required, from your text catalog. */
5
+ 'aria-label': string;
6
+ /**
7
+ * The gap kept above the aside while it is stuck, and below it when it is
8
+ * taller than the viewport. Default `lg`.
9
+ */
10
+ offset?: SpacingToken;
11
+ /** The `aside` element. */
12
+ ref?: Ref<HTMLElement>;
13
+ children: ReactNode;
14
+ }
15
+ /**
16
+ * Aside — content beside the main reading column (a table of contents,
17
+ * related pages): a labelled `aside` landmark that sticks within the viewport
18
+ * while the page scrolls and scrolls on its own when it is taller than the
19
+ * viewport. Put it in the second track of `Grid layout="content-aside"`.
20
+ */
21
+ export declare function Aside({ 'aria-label': ariaLabel, offset, ref, children }: AsideProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=Aside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Aside.d.ts","sourceRoot":"","sources":["../../../src/components/Aside/Aside.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAGvD,UAAU,UAAU;IAClB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IACtB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAaD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAC,YAAY,EAAE,SAAS,EAAE,MAAa,EAAE,GAAG,EAAE,QAAQ,EAAC,EAAE,UAAU,2CAMxF"}
@@ -0,0 +1,3 @@
1
+ import { ComponentMeta } from '../component-meta';
2
+ export declare const meta: ComponentMeta;
3
+ //# sourceMappingURL=Aside.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Aside.meta.d.ts","sourceRoot":"","sources":["../../../src/components/Aside/Aside.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,IAAI,EAAE,aA8BlB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ import { SpacingToken } from '@duro-app/tokens/keys';
3
+ interface AsideArgs {
4
+ 'aria-label': string;
5
+ /** The gap kept between the viewport's top and the Aside while it sticks. */
6
+ offset: SpacingToken;
7
+ }
8
+ declare const meta: {
9
+ title: string;
10
+ args: {
11
+ 'aria-label': string;
12
+ offset: "lg";
13
+ };
14
+ argTypes: {
15
+ 'aria-label': {
16
+ control: "text";
17
+ };
18
+ offset: {
19
+ control: "select";
20
+ options: ("xs" | "sm" | "md" | "lg" | "xl" | "ms" | "xxl" | "xxxl")[];
21
+ };
22
+ };
23
+ parameters: {
24
+ a11y: {
25
+ test: string;
26
+ };
27
+ };
28
+ decorators: import('@storybook/react').Decorator[];
29
+ render: (args: AsideArgs) => import("react/jsx-runtime").JSX.Element;
30
+ };
31
+ export default meta;
32
+ type Story = StoryObj<typeof meta>;
33
+ /**
34
+ * A long page with its outline beside it. Scroll the canvas: the Aside sticks
35
+ * `offset` below the viewport's top and scrolls on its own, being taller than
36
+ * the viewport. Change `offset` to move where it sticks.
37
+ */
38
+ export declare const Playground: Story;
39
+ /**
40
+ * Sticks within the viewport while the page scrolls, and scrolls on its own
41
+ * when it is taller than the viewport; a labelled complementary landmark.
42
+ * It scrolls the page, so it runs as a test only.
43
+ */
44
+ export declare const StickyAndScrolling: Story;
45
+ //# sourceMappingURL=Aside.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Aside.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Aside/Aside.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAIpD,OAAO,EAA2B,KAAK,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAQjF,UAAU,SAAS;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,6EAA6E;IAC7E,MAAM,EAAE,YAAY,CAAA;CACrB;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;CAUiB,CAAA;AAE3B,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAkClC;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,KAAU,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,KA4BhC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { css } from 'react-strict-dom';
2
+ export declare const styles: Readonly<{
3
+ readonly root: Readonly<{
4
+ readonly position: css.StyleXClassNameFor<"position", "sticky">;
5
+ readonly alignSelf: css.StyleXClassNameFor<"alignSelf", "start">;
6
+ readonly zIndex: css.StyleXClassNameFor<"zIndex", number>;
7
+ readonly overflowY: css.StyleXClassNameFor<"overflowY", "auto">;
8
+ readonly overscrollBehavior: css.StyleXClassNameFor<"overscrollBehavior", "contain">;
9
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
10
+ }>;
11
+ readonly offsetXs: Readonly<{
12
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
13
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
14
+ }>;
15
+ readonly offsetSm: Readonly<{
16
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
17
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
18
+ }>;
19
+ readonly offsetMs: Readonly<{
20
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
21
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
22
+ }>;
23
+ readonly offsetMd: Readonly<{
24
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
25
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
26
+ }>;
27
+ readonly offsetLg: Readonly<{
28
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
29
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
30
+ }>;
31
+ readonly offsetXl: Readonly<{
32
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
33
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
34
+ }>;
35
+ readonly offsetXxl: Readonly<{
36
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
37
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
38
+ }>;
39
+ readonly offsetXxxl: Readonly<{
40
+ readonly top: css.StyleXClassNameFor<"top", `calc(var(--duro-app-shell-bar, 0px) + ${css.StyleXVar<string>})`>;
41
+ readonly maxHeight: css.StyleXClassNameFor<"maxHeight", `calc(100dvh - var(--duro-app-shell-bar, 0px) - 2 * ${css.StyleXVar<string>})`>;
42
+ }>;
43
+ }>;
44
+ //# sourceMappingURL=styles.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/Aside/styles.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAQpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDjB,CAAA"}
@@ -18,6 +18,7 @@ export declare const styles: Readonly<{
18
18
  readonly transitionTimingFunction: css.StyleXClassNameFor<"transitionTimingFunction", string>;
19
19
  readonly textDecoration: css.StyleXClassNameFor<"textDecoration", "none">;
20
20
  readonly whiteSpace: css.StyleXClassNameFor<"whiteSpace", "nowrap">;
21
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", string | null>;
21
22
  readonly transform: css.StyleXClassNameFor<"transform", "scale(1)" | "scale(0.97)">;
22
23
  readonly outlineWidth: css.StyleXClassNameFor<"outlineWidth", string | 0>;
23
24
  readonly outlineStyle: css.StyleXClassNameFor<"outlineStyle", "none" | "solid">;
@@ -29,6 +30,7 @@ export declare const styles: Readonly<{
29
30
  readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
30
31
  readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
31
32
  readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
33
+ readonly minHeight: css.StyleXClassNameFor<"minHeight", string | null>;
32
34
  }>;
33
35
  readonly sizeSmall: Readonly<{
34
36
  readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/Button/styles.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAQpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiIjB,CAAA"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/Button/styles.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAQpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIjB,CAAA"}
@@ -37,8 +37,8 @@ export declare const AttachedMixedSmall: Story;
37
37
  * them): every one is controlSm tall whatever it holds, with Toggle's
38
38
  * padding and font. The ghost Menu trigger is the small icon-button size. */
39
39
  export declare const SmallTriggersRow: Story;
40
- /** The same row under a coarse pointer: Toggle and the three triggers reach
41
- * touchTarget, the ghost Menu too. Button has no touch size at any size, so the small Button stays
42
- * controlSm (the 5.5 plan's addendum). */
40
+ /** The same row under a coarse pointer: every control reaches touchTarget —
41
+ * Toggle, the three triggers, the ghost Menu, and since 5.6 Button too (the
42
+ * 5.5 addendum had left Button out; the person chose to close it). */
43
43
  export declare const SmallTriggersRowCoarsePointer: Story;
44
44
  //# sourceMappingURL=ButtonGroup.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonGroup/ButtonGroup.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAWpD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAazC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CASlC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;AAEzC,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KActB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAqBtB,CAAA;AA2ED,sEAAsE;AACtE,eAAO,MAAM,eAAe,EAAE,KAK7B,CAAA;AAED;yDACyD;AACzD,eAAO,MAAM,oBAAoB,EAAE,KAMlC,CAAA;AAID,eAAO,MAAM,qBAAqB,EAAE,KAkBnC,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,EAAE,KAgBjC,CAAA;AAkDD;oCACoC;AACpC,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAA;AAED;mCACmC;AACnC,eAAO,MAAM,qBAAqB,EAAE,KAWnC,CAAA;AAiBD,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,EAAE,KAwBtC,CAAA;AAED;sEACsE;AACtE,eAAO,MAAM,sBAAsB,EAAE,KAwBpC,CAAA;AAQD,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,KASlC,CAAA;AAED;+BAC+B;AAC/B,eAAO,MAAM,kBAAkB,EAAE,KAMhC,CAAA;AAkDD;;;8EAG8E;AAC9E,eAAO,MAAM,gBAAgB,EAAE,KA4B9B,CAAA;AAED;;2CAE2C;AAC3C,eAAO,MAAM,6BAA6B,EAAE,KAmB3C,CAAA"}
1
+ {"version":3,"file":"ButtonGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonGroup/ButtonGroup.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAWpD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAazC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CASlC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;AAEzC,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KActB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAqBtB,CAAA;AA2ED,sEAAsE;AACtE,eAAO,MAAM,eAAe,EAAE,KAK7B,CAAA;AAED;yDACyD;AACzD,eAAO,MAAM,oBAAoB,EAAE,KAMlC,CAAA;AAID,eAAO,MAAM,qBAAqB,EAAE,KAkBnC,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,EAAE,KAgBjC,CAAA;AAkDD;oCACoC;AACpC,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAA;AAED;mCACmC;AACnC,eAAO,MAAM,qBAAqB,EAAE,KAWnC,CAAA;AAiBD,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,EAAE,KAwBtC,CAAA;AAED;sEACsE;AACtE,eAAO,MAAM,sBAAsB,EAAE,KAwBpC,CAAA;AAQD,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,KASlC,CAAA;AAED;+BAC+B;AAC/B,eAAO,MAAM,kBAAkB,EAAE,KAMhC,CAAA;AAkDD;;;8EAG8E;AAC9E,eAAO,MAAM,gBAAgB,EAAE,KA4B9B,CAAA;AAED;;uEAEuE;AACvE,eAAO,MAAM,6BAA6B,EAAE,KAkB3C,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ interface CodeBlockProps {
3
+ /**
4
+ * The code: text, or the `<code>` element a Markdown renderer produced
5
+ * (highlighted spans included). What is copied is its text content.
6
+ */
7
+ children: ReactNode;
8
+ /** The copy button's label ("Copy"), from your text catalog. */
9
+ copyLabel: string;
10
+ /**
11
+ * The label while the copy is confirmed ("Copied"), also announced to
12
+ * screen readers.
13
+ */
14
+ copiedLabel: string;
15
+ /** How long the confirmation stays, in milliseconds. Default 2000. */
16
+ copiedDuration?: number;
17
+ /** Called when the clipboard refuses the write (an insecure context, a denied permission). */
18
+ onCopyError?: (error: unknown) => void;
19
+ }
20
+ /**
21
+ * CodeBlock — a block of code with a copy button: a `pre` that scrolls
22
+ * sideways when a line is long (and is then focusable, so a keyboard can
23
+ * scroll it), and a Button that copies its text and
24
+ * confirms ("Copied") on the button and through a polite LiveRegion. Inside
25
+ * `Prose`, pass it as the Markdown renderer's `pre`.
26
+ */
27
+ export declare function CodeBlock({ children, copyLabel, copiedLabel, copiedDuration, onCopyError, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
28
+ export {};
29
+ //# sourceMappingURL=CodeBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAC,MAAM,OAAO,CAAA;AAO9E,UAAU,cAAc;IACtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAqB,EACrB,WAAW,GACZ,EAAE,cAAc,2CA2DhB"}
@@ -0,0 +1,3 @@
1
+ import { ComponentMeta } from '../component-meta';
2
+ export declare const meta: ComponentMeta;
3
+ //# sourceMappingURL=CodeBlock.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.meta.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/CodeBlock.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,IAAI,EAAE,aA0BlB,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ interface CodeBlockArgs {
3
+ /** The code shown (and copied). */
4
+ code: string;
5
+ copyLabel: string;
6
+ copiedLabel: string;
7
+ /** How long the copied label stays, in ms. */
8
+ copiedDuration: number;
9
+ /** A refused clipboard (permission denied, an insecure page). */
10
+ onCopyError: (error: unknown) => void;
11
+ }
12
+ declare const meta: {
13
+ title: string;
14
+ args: {
15
+ code: string;
16
+ copyLabel: string;
17
+ copiedLabel: string;
18
+ copiedDuration: number;
19
+ onCopyError: import('storybook/test').Mock<(...args: any[]) => any>;
20
+ };
21
+ argTypes: {
22
+ code: {
23
+ control: "text";
24
+ };
25
+ copyLabel: {
26
+ control: "text";
27
+ };
28
+ copiedLabel: {
29
+ control: "text";
30
+ };
31
+ copiedDuration: {
32
+ control: {
33
+ type: "number";
34
+ min: number;
35
+ step: number;
36
+ };
37
+ };
38
+ };
39
+ parameters: {
40
+ a11y: {
41
+ test: string;
42
+ };
43
+ };
44
+ decorators: import('@storybook/react').Decorator[];
45
+ render: ({ code, ...args }: CodeBlockArgs) => import("react/jsx-runtime").JSX.Element;
46
+ };
47
+ export default meta;
48
+ type Story = StoryObj<typeof meta>;
49
+ /**
50
+ * Press the copy button: the label changes to `copiedLabel` for
51
+ * `copiedDuration` ms and a polite region announces it. A refused clipboard
52
+ * shows up in Actions as `onCopyError`.
53
+ */
54
+ export declare const Playground: Story;
55
+ /** Playground's checks, kept off the visible story so a Control change cannot fail them. */
56
+ export declare const PlaygroundChecks: Story;
57
+ /** A long line scrolls inside the block instead of widening the page. */
58
+ export declare const LongLineScrolls: Story;
59
+ /** LongLineScrolls's checks, kept off the visible story so a Control change cannot fail them. */
60
+ export declare const LongLineScrollsChecks: Story;
61
+ /** Copies the text, confirms on the button and announces it, then resets. */
62
+ export declare const CopiesAndAnnounces: Story;
63
+ /** A refused clipboard confirms nothing and reports the error. */
64
+ export declare const CopyRefused: Story;
65
+ /** Without onCopyError, a refused clipboard still reaches the console. */
66
+ export declare const CopyRefusedWithoutHandler: Story;
67
+ //# sourceMappingURL=CodeBlock.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.stories.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/CodeBlock.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAMpD,UAAU,aAAa;IACrB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACtC;AAKD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBqB,CAAA;AAE/B,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAQlC;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,KAAU,CAAA;AAEnC,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,eAAe,EAAE,KAS7B,CAAA;AAED,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,KAUnC,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,EAAE,KAsBhC,CAAA;AAED,kEAAkE;AAClE,eAAO,MAAM,WAAW,EAAE,KAezB,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,EAAE,KAsBvC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { css } from 'react-strict-dom';
2
+ export declare const styles: Readonly<{
3
+ readonly root: Readonly<{
4
+ readonly position: css.StyleXClassNameFor<"position", "relative">;
5
+ readonly minWidth: css.StyleXClassNameFor<"minWidth", 0>;
6
+ }>;
7
+ readonly pre: Readonly<{
8
+ readonly margin: css.StyleXClassNameFor<"margin", 0>;
9
+ readonly paddingTop: css.StyleXClassNameFor<"paddingTop", string>;
10
+ readonly paddingBottom: css.StyleXClassNameFor<"paddingBottom", string>;
11
+ readonly paddingLeft: css.StyleXClassNameFor<"paddingLeft", string>;
12
+ readonly paddingRight: css.StyleXClassNameFor<"paddingRight", string>;
13
+ readonly overflowX: css.StyleXClassNameFor<"overflowX", "auto">;
14
+ readonly color: css.StyleXClassNameFor<"color", string>;
15
+ readonly backgroundColor: css.StyleXClassNameFor<"backgroundColor", string>;
16
+ readonly borderWidth: css.StyleXClassNameFor<"borderWidth", string>;
17
+ readonly borderStyle: css.StyleXClassNameFor<"borderStyle", "solid">;
18
+ readonly borderColor: css.StyleXClassNameFor<"borderColor", string>;
19
+ readonly borderRadius: css.StyleXClassNameFor<"borderRadius", string>;
20
+ readonly whiteSpace: css.StyleXClassNameFor<"whiteSpace", "pre">;
21
+ readonly outlineWidth: css.StyleXClassNameFor<"outlineWidth", string | 0>;
22
+ readonly outlineStyle: css.StyleXClassNameFor<"outlineStyle", "none" | "solid">;
23
+ readonly outlineColor: css.StyleXClassNameFor<"outlineColor", string>;
24
+ readonly outlineOffset: css.StyleXClassNameFor<"outlineOffset", string | 0>;
25
+ }>;
26
+ readonly copy: Readonly<{
27
+ readonly position: css.StyleXClassNameFor<"position", "absolute">;
28
+ readonly top: css.StyleXClassNameFor<"top", string>;
29
+ readonly right: css.StyleXClassNameFor<"right", string>;
30
+ }>;
31
+ }>;
32
+ //# sourceMappingURL=styles.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/styles.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAKpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BjB,CAAA"}
@@ -1,8 +1,8 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode, Ref } from 'react';
2
2
  import { GridColumns } from './columns';
3
3
  import { SpacingToken } from '@duro-app/tokens/keys';
4
4
  import { GridTrack, Length } from '../../shared/length';
5
- export type GridLayout = 'split' | 'split-wide';
5
+ export type GridLayout = 'split' | 'split-wide' | 'content-aside';
6
6
  interface GridProps {
7
7
  gap?: SpacingToken;
8
8
  /** A column count (equal columns) or weights: `[1, 2]` gives a one-third /
@@ -20,7 +20,9 @@ interface GridProps {
20
20
  * column on the width of its OWN container — `split` below `sm` (640px),
21
21
  * `split-wide` below `md` (768px) — so a split nested inside another
22
22
  * split, or beside an open DetailPanel, collapses when it runs out of room
23
- * rather than when the window does. Wins over `columns` / `minColumnWidth`.
23
+ * rather than when the window does. `content-aside` is a reading column
24
+ * beside an `Aside` (`asideW`, 320px), one column below `md`. Wins over
25
+ * `columns` / `minColumnWidth`.
24
26
  */
25
27
  layout?: GridLayout;
26
28
  /**
@@ -32,8 +34,15 @@ interface GridProps {
32
34
  * wins over it.
33
35
  */
34
36
  tracks?: readonly GridTrack[];
37
+ /**
38
+ * The Grid's outer element: with a `layout`, the wrapper its container
39
+ * query measures (hand it to `useContainerBelow` to follow the same
40
+ * collapse); otherwise the grid itself. Web only: on native the ref is not
41
+ * attached.
42
+ */
43
+ ref?: Ref<HTMLDivElement>;
35
44
  children: ReactNode;
36
45
  }
37
- export declare function Grid({ gap, columns, minColumnWidth, layout, tracks, children }: GridProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function Grid({ gap, columns, minColumnWidth, layout, tracks, ref, children, }: GridProps): import("react/jsx-runtime").JSX.Element;
38
47
  export {};
39
48
  //# sourceMappingURL=Grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAC,MAAM,OAAO,CAAA;AAI9C,OAAO,EAAuD,KAAK,WAAW,EAAC,MAAM,WAAW,CAAA;AAChG,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAE5F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,CAAA;AAE/C,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB;;+DAE2D;IAC3D,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB;;;oCAGgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AA0DD,wBAAgB,IAAI,CAAC,EAAC,GAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAE,SAAS,2CA8B9F"}
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,KAAK,GAAG,EAAC,MAAM,OAAO,CAAA;AAIxD,OAAO,EAAuD,KAAK,WAAW,EAAC,MAAM,WAAW,CAAA;AAChG,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAE5F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAA;AAEjE,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB;;+DAE2D;IAC3D,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB;;;oCAGgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IAC7B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IACzB,QAAQ,EAAE,SAAS,CAAA;CACpB;AA4DD,wBAAgB,IAAI,CAAC,EACnB,GAAU,EACV,OAAO,EACP,cAAc,EACd,MAAM,EACN,MAAM,EACN,GAAG,EACH,QAAQ,GACT,EAAE,SAAS,2CAwCX"}
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.meta.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,IAAI,EAAE,aAiDlB,CAAA"}
1
+ {"version":3,"file":"Grid.meta.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,IAAI,EAAE,aAkDlB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { Meta, StoryObj } from '@storybook/react';
2
2
  import { Grid } from './Grid';
3
+ import { SpacingToken } from '@duro-app/tokens/keys';
3
4
  declare const meta: Meta<typeof Grid>;
4
5
  export default meta;
5
6
  type Story = StoryObj<typeof Grid>;
@@ -25,4 +26,31 @@ export declare const WeightedColumns: Story;
25
26
  export declare const WithContainerQuery: Story;
26
27
  export declare const TracksWithAside: Story;
27
28
  export declare const TracksWithMinmax: Story;
29
+ interface ContentAsideArgs {
30
+ /** The gap between the reading column and the Aside. */
31
+ gap: SpacingToken;
32
+ /** The frame's width in px: the container the Grid measures. */
33
+ width: number;
34
+ }
35
+ /**
36
+ * A reading column beside an Aside (asideW); one column below md (768px),
37
+ * measured on the Grid's own container. Drag `width` across 768 to see it
38
+ * collapse: the column reports what `useContainerBelow` sees.
39
+ */
40
+ export declare const ContentAside: StoryObj<ContentAsideArgs>;
41
+ /** ContentAside's checks, kept off the visible story so a Control change cannot fail them. */
42
+ export declare const ContentAsideChecks: StoryObj<ContentAsideArgs>;
43
+ /** ContentAside's checks below md (pageSm, 600px): the Aside stacks under the column. */
44
+ export declare const ContentAsideStackedChecks: StoryObj<ContentAsideArgs>;
45
+ /** A wide page and a narrow one, side by side: beside, then stacked. */
46
+ export declare const ContentAsideWideAndNarrow: Story;
47
+ /**
48
+ * The collapse and `useContainerBelow` follow the Grid's container, not the
49
+ * window: in a 1440px viewport the 600px page stacks and reports "below md",
50
+ * the 1200px one does not. The forwarded ref is the container the query
51
+ * measures. Sizes the browser through Vitest, so it runs as a test only.
52
+ */
53
+ export declare const ContentAsideFollowsItsContainer: Story;
54
+ /** `ref` reaches the grid element itself when there is no named layout. */
55
+ export declare const RefWithoutLayout: Story;
28
56
  //# sourceMappingURL=Grid.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAGpD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAgB3B,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AA2BlC,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAiBnB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,KAqC1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAmB7B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAsBhC,CAAA;AAID,eAAO,MAAM,eAAe,EAAE,KAmB7B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAgB9B,CAAA"}
1
+ {"version":3,"file":"Grid.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Grid.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAGpD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAI3B,OAAO,EAAyB,KAAK,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAU/E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAgB3B,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AA2BlC,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAiBnB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,KAqC1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAmB7B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAsBhC,CAAA;AAID,eAAO,MAAM,eAAe,EAAE,KAmB7B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAgB9B,CAAA;AAuDD,UAAU,gBAAgB;IACxB,wDAAwD;IACxD,GAAG,EAAE,YAAY,CAAA;IACjB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAanD,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB,CAiBzD,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,gBAAgB,CAGhE,CAAA;AAED,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,EAAE,KA2BvC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,KA2C7C,CAAA;AAID,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,EAAE,KAY9B,CAAA"}