timvir 0.2.38 → 0.2.42

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 (113) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/blocks/Arbitrary/Arbitrary.d.ts +1 -1
  3. package/blocks/Arbitrary/index.js +232 -78
  4. package/blocks/Arbitrary/samples/basic.d.ts +1 -1
  5. package/blocks/Arbitrary/styles.css +166 -6
  6. package/blocks/Code/Code.d.ts +0 -6
  7. package/blocks/Code/docs/index.mdx +0 -11
  8. package/blocks/Code/index.js +213 -112
  9. package/blocks/Code/samples/basic.d.ts +1 -1
  10. package/blocks/Code/samples/toggle.d.ts +1 -2
  11. package/blocks/Code/styles.css +100 -15
  12. package/blocks/ColorBar/docs/index.mdx +8 -2
  13. package/blocks/ColorBar/index.js +223 -68
  14. package/blocks/ColorBar/samples/basic.d.ts +1 -2
  15. package/blocks/ColorBar/styles.css +103 -4
  16. package/blocks/ColorBook/docs/index.mdx +1 -1
  17. package/blocks/ColorBook/index.js +222 -60
  18. package/blocks/ColorBook/samples/basic.d.ts +1 -2
  19. package/blocks/ColorBook/styles.css +166 -6
  20. package/blocks/Cover/index.js +177 -48
  21. package/blocks/Cover/samples/basic.d.ts +1 -2
  22. package/blocks/Cover/styles.css +18 -0
  23. package/blocks/Exhibit/index.js +205 -50
  24. package/blocks/Exhibit/samples/basic.d.ts +1 -2
  25. package/blocks/Exhibit/samples/bleed.d.ts +1 -1
  26. package/blocks/Exhibit/samples/usage.d.ts +1 -2
  27. package/blocks/Exhibit/styles.css +66 -3
  28. package/blocks/Font/index.js +239 -98
  29. package/blocks/Font/samples/basic.d.ts +1 -1
  30. package/blocks/Font/samples/timvir/body1.d.ts +1 -1
  31. package/blocks/Font/samples/timvir/caption.d.ts +1 -1
  32. package/blocks/Font/samples/timvir/h1.d.ts +1 -1
  33. package/blocks/Font/samples/timvir/h2.d.ts +1 -1
  34. package/blocks/Font/samples/timvir/h3.d.ts +1 -1
  35. package/blocks/Font/samples/timvir/h4.d.ts +1 -1
  36. package/blocks/Font/styles.css +82 -8
  37. package/blocks/Grid/docs/index.mdx +4 -4
  38. package/blocks/Grid/index.js +181 -36
  39. package/blocks/Grid/samples/basic.d.ts +1 -2
  40. package/blocks/Grid/styles.css +20 -1
  41. package/blocks/Icon/docs/index.mdx +13 -13
  42. package/blocks/Icon/index.js +93 -100
  43. package/blocks/Icon/internal/Canvas.d.ts +1 -1
  44. package/blocks/Icon/samples/basic.d.ts +1 -2
  45. package/blocks/Icon/styles.css +117 -5
  46. package/blocks/Icon/types.d.ts +3 -2
  47. package/blocks/Message/docs/index.mdx +5 -8
  48. package/blocks/Message/index.js +238 -55
  49. package/blocks/Message/samples/basic.d.ts +1 -1
  50. package/blocks/Message/styles.css +94 -6
  51. package/blocks/Swatch/docs/index.mdx +16 -16
  52. package/blocks/Swatch/index.js +199 -45
  53. package/blocks/Swatch/samples/basic.d.ts +1 -2
  54. package/blocks/Swatch/styles.css +82 -4
  55. package/blocks/Viewport/index.js +360 -237
  56. package/blocks/Viewport/internal/Caption.d.ts +1 -1
  57. package/blocks/Viewport/internal/Handle.d.ts +1 -1
  58. package/blocks/Viewport/internal/Ruler.d.ts +1 -2
  59. package/blocks/Viewport/samples/basic.d.ts +1 -2
  60. package/blocks/Viewport/styles.css +259 -14
  61. package/blocks/WebLink/index.js +217 -62
  62. package/blocks/WebLink/samples/basic.d.ts +1 -1
  63. package/blocks/WebLink/styles.css +170 -8
  64. package/blocks/styles.css +1460 -97
  65. package/builtins/components.d.ts +2 -2
  66. package/builtins/index.js +306 -239
  67. package/builtins/styles.css +267 -14
  68. package/context/index.d.ts +6 -1
  69. package/core/components/Commands/Commands.d.ts +2 -0
  70. package/core/components/Commands/internal/Action.d.ts +1 -1
  71. package/core/components/Commands/internal/Dialog.d.ts +1 -2
  72. package/core/components/Commands/internal/index.d.ts +0 -1
  73. package/core/components/Footer/samples/basic.d.ts +1 -1
  74. package/core/components/NavigationFooter/NavigationFooter.d.ts +4 -2
  75. package/core/components/NavigationFooter/samples/basic.d.ts +1 -1
  76. package/core/components/Page/Page.d.ts +12 -3
  77. package/core/components/Page/docs/index.mdx +44 -11
  78. package/core/components/Page/internal/Section.d.ts +1 -2
  79. package/core/components/Page/internal/Sidebar.d.ts +1 -1
  80. package/core/components/Page/internal/SidebarItem.d.ts +1 -2
  81. package/core/components/Page/internal/index.d.ts +0 -1
  82. package/core/components/Page/samples/basic.d.ts +1 -2
  83. package/core/components/Page/samples/layout.d.ts +1 -2
  84. package/core/index.d.ts +191 -2
  85. package/core/index.js +674 -449
  86. package/core/layout.d.ts +40 -0
  87. package/core/styles.css +857 -88
  88. package/core/theme/detector.js +1 -1
  89. package/global.css +79 -0
  90. package/internal/cx.d.ts +1 -0
  91. package/knip.config.d.ts +5 -0
  92. package/package.json +1 -2
  93. package/search/Search/samples/basic.d.ts +1 -2
  94. package/search/index.js +2 -208
  95. package/styles.css +2670 -222
  96. package/blocks/Code/theme.d.ts +0 -2
  97. package/bus/styles.css +0 -1
  98. package/context/styles.css +0 -1
  99. package/core/theme/index.d.ts +0 -1
  100. package/hooks/styles.css +0 -1
  101. package/search/Search/internal/Dialog.d.ts +0 -20
  102. package/search/Search/internal/index.d.ts +0 -1
  103. package/search/SearchBoxInput/SearchBoxInput.d.ts +0 -11
  104. package/search/SearchBoxInput/docs/api.mdx +0 -76
  105. package/search/SearchBoxInput/docs/index.mdx +0 -6
  106. package/search/SearchBoxInput/index.d.ts +0 -1
  107. package/search/SearchBoxInput/samples/basic.d.ts +0 -2
  108. package/search/SearchBoxListItem/SearchBoxListItem.d.ts +0 -13
  109. package/search/SearchBoxListItem/docs/api.mdx +0 -76
  110. package/search/SearchBoxListItem/docs/index.mdx +0 -30
  111. package/search/SearchBoxListItem/index.d.ts +0 -1
  112. package/search/SearchBoxListItem/samples/basic.d.ts +0 -2
  113. package/search/styles.css +0 -16
@@ -1,90 +1,245 @@
1
1
  'use client';
2
2
  import { Swatch } from 'timvir/blocks';
3
- import { useBlock } from 'timvir/core';
3
+ import { useBlock, layoutStyles } from 'timvir/core';
4
4
  import * as React from 'react';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
6
 
6
- // src/css.ts
7
+ function cx(...args) {
8
+ let str = "";
9
+ for (let i = 0; i < args.length; i++) {
10
+ const arg = args[i];
11
+ if (typeof arg === "string") {
12
+ str += (str && " ") + arg;
13
+ }
14
+ }
15
+ return str;
16
+ }
7
17
 
8
- // src/cx.ts
9
- var cx = function cx2() {
10
- const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean);
11
- const atomicClasses = {};
12
- const nonAtomicClasses = [];
13
- presentClassNames.forEach((arg) => {
14
- const individualClassNames = arg ? arg.split(" ") : [];
15
- individualClassNames.forEach((className) => {
16
- if (className.startsWith("atm_")) {
17
- const [, keyHash] = className.split("_");
18
- atomicClasses[keyHash] = className;
19
- } else {
20
- nonAtomicClasses.push(className);
21
- }
18
+ var styleq = {};
19
+ var hasRequiredStyleq;
20
+ function requireStyleq() {
21
+ if (hasRequiredStyleq) return styleq;
22
+ hasRequiredStyleq = 1;
23
+ Object.defineProperty(styleq, "__esModule", {
24
+ value: true
22
25
  });
23
- });
24
- const result = [];
25
- for (const keyHash in atomicClasses) {
26
- if (Object.prototype.hasOwnProperty.call(atomicClasses, keyHash)) {
27
- result.push(atomicClasses[keyHash]);
26
+ styleq.styleq = void 0;
27
+ var cache = new WeakMap();
28
+ var compiledKey = '$$css';
29
+ function createStyleq(options) {
30
+ var disableCache;
31
+ var disableMix;
32
+ var transform;
33
+ if (options != null) {
34
+ disableCache = options.disableCache === true;
35
+ disableMix = options.disableMix === true;
36
+ transform = options.transform;
37
+ }
38
+ return function styleq() {
39
+ var definedProperties = [];
40
+ var className = '';
41
+ var inlineStyle = null;
42
+ var debugString = '';
43
+ var nextCache = disableCache ? null : cache;
44
+ var styles = new Array(arguments.length);
45
+ for(var i = 0; i < arguments.length; i++){
46
+ styles[i] = arguments[i];
47
+ }
48
+ while(styles.length > 0){
49
+ var possibleStyle = styles.pop();
50
+ if (possibleStyle == null || possibleStyle === false) {
51
+ continue;
52
+ }
53
+ if (Array.isArray(possibleStyle)) {
54
+ for(var _i = 0; _i < possibleStyle.length; _i++){
55
+ styles.push(possibleStyle[_i]);
56
+ }
57
+ continue;
58
+ }
59
+ var style = transform != null ? transform(possibleStyle) : possibleStyle;
60
+ if (style.$$css != null) {
61
+ var classNameChunk = '';
62
+ if (nextCache != null && nextCache.has(style)) {
63
+ var cacheEntry = nextCache.get(style);
64
+ if (cacheEntry != null) {
65
+ classNameChunk = cacheEntry[0];
66
+ debugString = cacheEntry[2];
67
+ definedProperties.push.apply(definedProperties, cacheEntry[1]);
68
+ nextCache = cacheEntry[3];
69
+ }
70
+ } else {
71
+ var definedPropertiesChunk = [];
72
+ for(var prop in style){
73
+ var value = style[prop];
74
+ if (prop === compiledKey) {
75
+ var compiledKeyValue = style[prop];
76
+ if (compiledKeyValue !== true) {
77
+ debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;
78
+ }
79
+ continue;
80
+ }
81
+ if (typeof value === 'string' || value === null) {
82
+ if (!definedProperties.includes(prop)) {
83
+ definedProperties.push(prop);
84
+ if (nextCache != null) {
85
+ definedPropertiesChunk.push(prop);
86
+ }
87
+ if (typeof value === 'string') {
88
+ classNameChunk += classNameChunk ? ' ' + value : value;
89
+ }
90
+ }
91
+ } else {
92
+ console.error("styleq: ".concat(prop, " typeof ").concat(String(value), " is not \"string\" or \"null\"."));
93
+ }
94
+ }
95
+ if (nextCache != null) {
96
+ var weakMap = new WeakMap();
97
+ nextCache.set(style, [
98
+ classNameChunk,
99
+ definedPropertiesChunk,
100
+ debugString,
101
+ weakMap
102
+ ]);
103
+ nextCache = weakMap;
104
+ }
105
+ }
106
+ if (classNameChunk) {
107
+ className = className ? classNameChunk + ' ' + className : classNameChunk;
108
+ }
109
+ } else {
110
+ if (disableMix) {
111
+ if (inlineStyle == null) {
112
+ inlineStyle = {};
113
+ }
114
+ inlineStyle = Object.assign({}, style, inlineStyle);
115
+ } else {
116
+ var subStyle = null;
117
+ for(var _prop in style){
118
+ var _value = style[_prop];
119
+ if (_value !== undefined) {
120
+ if (!definedProperties.includes(_prop)) {
121
+ if (_value != null) {
122
+ if (inlineStyle == null) {
123
+ inlineStyle = {};
124
+ }
125
+ if (subStyle == null) {
126
+ subStyle = {};
127
+ }
128
+ subStyle[_prop] = _value;
129
+ }
130
+ definedProperties.push(_prop);
131
+ nextCache = null;
132
+ }
133
+ }
134
+ }
135
+ if (subStyle != null) {
136
+ inlineStyle = Object.assign(subStyle, inlineStyle);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ var styleProps = [
142
+ className,
143
+ inlineStyle,
144
+ debugString
145
+ ];
146
+ return styleProps;
147
+ };
28
148
  }
29
- }
30
- result.push(...nonAtomicClasses);
31
- return result.join(" ");
32
- };
33
- var cx_default = cx;
149
+ var styleq$1 = styleq.styleq = createStyleq();
150
+ styleq$1.factory = createStyleq;
151
+ return styleq;
152
+ }
153
+ var styleqExports = requireStyleq();
154
+ function props(...styles) {
155
+ const [className, style, dataStyleSrc] = styleqExports.styleq(styles);
156
+ const result = {};
157
+ if (className != null && className !== '') {
158
+ result.className = className;
159
+ }
160
+ if (style != null && Object.keys(style).length > 0) {
161
+ result.style = style;
162
+ }
163
+ if (dataStyleSrc != null && dataStyleSrc !== '') {
164
+ result['data-style-src'] = dataStyleSrc;
165
+ }
166
+ return result;
167
+ }
34
168
 
35
- /**
36
- * The underlying DOM element which is rendered by this component.
37
- */
38
169
  const Root = "div";
39
- function ColorBar(props, ref) {
40
- const block = useBlock(props);
170
+ function ColorBar(props$1, ref) {
171
+ const block = useBlock(props$1);
41
172
  const {
42
173
  values,
43
- className,
44
174
  ...rest
45
175
  } = block.props;
46
176
  const [selected, setSelected] = React.useState(undefined);
47
- return /*#__PURE__*/React.createElement(Root, {
177
+ const rootStyleProps = props(layoutStyles.block, styles.root);
178
+ return /*#__PURE__*/jsxs(Root, {
48
179
  ref: ref,
49
- className: cx_default(className, classes.root, selected && tweaks.selected),
50
- ...rest
51
- }, /*#__PURE__*/React.createElement("div", {
52
- className: classes.bar,
180
+ ...rest,
181
+ ...rootStyleProps,
182
+ className: cx(rest.className, rootStyleProps.className),
53
183
  style: {
54
- opacity: selected ? 0 : 1
55
- }
56
- }, values.map((value, i) => /*#__PURE__*/React.createElement("div", {
57
- key: i,
58
- className: classes.value
59
- }, /*#__PURE__*/React.createElement("div", {
60
- style: {
61
- background: typeof value === "string" ? value : value.value
184
+ ...rootStyleProps.style,
185
+ ...rest.style
62
186
  },
63
- onClick: () => {
64
- setSelected(value);
65
- }
66
- })))), /*#__PURE__*/React.createElement("div", {
67
- className: classes.overlay
68
- }, /*#__PURE__*/React.createElement(Swatch, {
69
- ...(typeof selected === "string" ? {
70
- value: selected
71
- } : {
72
- value: selected?.value ?? ""
73
- }),
74
- onMouseLeave: () => {
75
- setSelected(undefined);
76
- }
77
- })));
187
+ children: [/*#__PURE__*/jsx("div", {
188
+ className: "timvir-s-rvj5dj timvir-s-1sdr0u7 timvir-s-dz4c1r",
189
+ style: {
190
+ opacity: selected ? 0 : 1
191
+ },
192
+ children: values.map((value, i, self) => /*#__PURE__*/jsx("div", {
193
+ className: "timvir-s-1vqgdyp timvir-s-1iyjqo2 timvir-s-rvj5dj timvir-s-13b6k1y timvir-s-1ypdohk timvir-s-zkaem6 timvir-s-15311qs timvir-s-inzabm timvir-s-1bxid8z",
194
+ children: /*#__PURE__*/jsx("div", {
195
+ ...props(i === 0 ? styles.firstChild : null, i === self.length - 1 ? styles.lastChild : null, styles.valueInner),
196
+ style: {
197
+ background: typeof value === "string" ? value : value.value
198
+ },
199
+ onClick: () => {
200
+ setSelected(value);
201
+ }
202
+ })
203
+ }, i))
204
+ }), selected !== undefined && /*#__PURE__*/jsx("div", {
205
+ className: "timvir-s-10l6tqk timvir-s-wa60dl timvir-s-3m8u43 timvir-s-u96u03 timvir-s-1cb1t30 timvir-s-oegz02",
206
+ children: /*#__PURE__*/jsx(Swatch, {
207
+ ...(typeof selected === "string" ? {
208
+ value: selected
209
+ } : {
210
+ value: selected.value
211
+ }),
212
+ style: {
213
+ margin: 0
214
+ },
215
+ onMouseLeave: () => {
216
+ setSelected(undefined);
217
+ }
218
+ })
219
+ })]
220
+ });
78
221
  }
79
222
  var ColorBar$1 = /*#__PURE__*/React.forwardRef(ColorBar);
80
- const tweaks = {
81
- selected: "s4sqb81"
82
- };
83
- const classes = {
84
- root: "r1f19pie",
85
- bar: "b15hqsfj",
86
- value: "v1uw85xw",
87
- overlay: "o1823law"
223
+ const styles = {
224
+ root: {
225
+ kVAEAm: "timvir-s-1n2onr6",
226
+ $$css: true
227
+ },
228
+ valueInner: {
229
+ kmkexE: "timvir-s-zhuw26",
230
+ kaIpWk: "timvir-s-nfsnhl",
231
+ kogj98: "timvir-s-1ehn4u0",
232
+ kwh8RV: "timvir-s-32zglm",
233
+ $$css: true
234
+ },
235
+ firstChild: {
236
+ "--timvir-b-ColorBar-value-borderRadiusDefault": "timvir-s-16gz6n8",
237
+ $$css: true
238
+ },
239
+ lastChild: {
240
+ "--timvir-b-ColorBar-value-borderRadiusDefault": "timvir-s-btcsfn",
241
+ $$css: true
242
+ }
88
243
  };
89
244
 
90
245
  export { ColorBar$1 as ColorBar };
@@ -1,2 +1 @@
1
- import * as React from "react";
2
- export default function Sample(): React.JSX.Element;
1
+ export default function Sample(): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,105 @@
1
+ @layer priority1 {
2
+ .timvir-s-btcsfn {
3
+ --timvir-b-ColorBar-value-borderRadiusDefault: 0 2px 2px 0;
4
+ }
1
5
 
2
- .r1f19pie{position:relative;}
3
- .b15hqsfj{display:-ms-grid;display:grid;-ms-grid-auto-flow:row;grid-auto-flow:row;-ms-grid-columns:repeat(auto-fit, minmax(0, 1fr));grid-template-columns:repeat(auto-fit, minmax(0, 1fr));-webkit-transition:all 0.16s;transition:all 0.16s;}.b15hqsfj::before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:2;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);content:"";pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.16s;transition:all 0.16s;}.b15hqsfj:hover::before{opacity:0;}
4
- .v1uw85xw{height:40px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:-ms-grid;display:grid;place-items:stretch;}.v1uw85xw>div{-webkit-transition:all 0.16s;transition:all 0.16s;cursor:pointer;}.v1uw85xw:first-child>div{border-radius:2px 0 0 2px;}.v1uw85xw:last-child>div{border-radius:0 2px 2px 0;}.v1uw85xw:hover{z-index:3;}.v1uw85xw:hover>div{border-radius:2px;margin:-3px 1px;box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2),0 2px 4px rgba(16, 22, 26, 0.1),0 8px 24px rgba(16, 22, 26, 0.2);}
5
- .o1823law{position:absolute;top:50%;right:0px;left:0px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none;opacity:0;z-index:4;-webkit-transition:opacity 0.16s;transition:opacity 0.16s;}.s4sqb81 .o1823law{pointer-events:all;opacity:1;}
6
+ .timvir-s-16gz6n8 {
7
+ --timvir-b-ColorBar-value-borderRadiusDefault: 2px 0 0 2px;
8
+ }
6
9
 
10
+ .timvir-s-15311qs {
11
+ --timvir-b-ColorBar-value-margin: 0;
12
+ }
13
+
14
+ .timvir-s-inzabm:hover {
15
+ --timvir-b-ColorBar-value-borderRadius: 2px;
16
+ }
17
+
18
+ .timvir-s-1bxid8z:hover {
19
+ --timvir-b-ColorBar-value-margin: -3px 1px;
20
+ }
21
+ }
22
+
23
+ @layer priority2 {
24
+ .timvir-s-1ehn4u0 {
25
+ margin: var(--timvir-b-ColorBar-value-margin);
26
+ }
27
+ }
28
+
29
+ @layer priority3 {
30
+ .timvir-s-nfsnhl {
31
+ border-radius: var(--timvir-b-ColorBar-value-borderRadius, var(--timvir-b-ColorBar-value-borderRadiusDefault));
32
+ }
33
+
34
+ .timvir-s-13b6k1y {
35
+ place-items: stretch stretch;
36
+ }
37
+
38
+ .timvir-s-zhuw26 {
39
+ transition: all .16s;
40
+ }
41
+ }
42
+
43
+ @layer priority4 {
44
+ .timvir-s-1ypdohk {
45
+ cursor: pointer;
46
+ }
47
+
48
+ .timvir-s-rvj5dj {
49
+ display: grid;
50
+ }
51
+
52
+ .timvir-s-1iyjqo2 {
53
+ flex-grow: 1;
54
+ }
55
+
56
+ .timvir-s-1sdr0u7 {
57
+ grid-auto-flow: row;
58
+ }
59
+
60
+ .timvir-s-dz4c1r {
61
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
62
+ }
63
+
64
+ .timvir-s-10l6tqk {
65
+ position: absolute;
66
+ }
67
+
68
+ .timvir-s-1n2onr6 {
69
+ position: relative;
70
+ }
71
+
72
+ .timvir-s-1cb1t30 {
73
+ transform: translateY(-50%);
74
+ }
75
+
76
+ .timvir-s-zkaem6 {
77
+ z-index: 3;
78
+ }
79
+
80
+ .timvir-s-oegz02 {
81
+ z-index: 4;
82
+ }
83
+
84
+ .timvir-s-32zglm:hover {
85
+ box-shadow: inset 0 0 0 1px #10161a33, 0 2px 4px #10161a1a, 0 8px 24px #10161a33;
86
+ }
87
+ }
88
+
89
+ @layer priority5 {
90
+ .timvir-s-1vqgdyp {
91
+ height: 40px;
92
+ }
93
+
94
+ .timvir-s-u96u03 {
95
+ left: 0;
96
+ }
97
+
98
+ .timvir-s-3m8u43 {
99
+ right: 0;
100
+ }
101
+
102
+ .timvir-s-wa60dl {
103
+ top: 50%;
104
+ }
105
+ }
@@ -7,6 +7,6 @@ The `<ColorBook>` component provides an overview of different color palettes. Th
7
7
  The user can interact with the book: select individual chapters. How selection is interpreted not handled by this component. In the example below
8
8
  upon selecting one of the first two chapters, some extra elements are displayed below the `<ColorBook>`.
9
9
 
10
- <div style={{ marginTop: "5vh" }}>
10
+ <div style={{ marginTop: "5vh", gridColumn: "lc / rc" }}>
11
11
  <Sample variant="basic" />
12
12
  </div>