timvir 0.1.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 (142) hide show
  1. package/blocks/Arbitrary/Arbitrary.d.ts +11 -0
  2. package/blocks/Arbitrary/context.d.ts +7 -0
  3. package/blocks/Arbitrary/docs/index.mdx +36 -0
  4. package/blocks/Arbitrary/index.d.ts +2 -0
  5. package/blocks/Arbitrary/index.js +117 -0
  6. package/blocks/Arbitrary/samples/basic.d.ts +5 -0
  7. package/blocks/Arbitrary/styles.css +6 -0
  8. package/blocks/Code/Code.d.ts +35 -0
  9. package/blocks/Code/docs/api.mdx +76 -0
  10. package/blocks/Code/docs/index.mdx +39 -0
  11. package/blocks/Code/index.d.ts +1 -0
  12. package/blocks/Code/index.js +154 -0
  13. package/blocks/Code/samples/basic.d.ts +5 -0
  14. package/blocks/Code/samples/toggle.d.ts +2 -0
  15. package/blocks/Code/styles.css +14 -0
  16. package/blocks/Code/theme.d.ts +2 -0
  17. package/blocks/ColorBar/ColorBar.d.ts +18 -0
  18. package/blocks/ColorBar/docs/api.mdx +76 -0
  19. package/blocks/ColorBar/docs/index.mdx +128 -0
  20. package/blocks/ColorBar/index.d.ts +1 -0
  21. package/blocks/ColorBar/index.js +90 -0
  22. package/blocks/ColorBar/samples/basic.d.ts +2 -0
  23. package/blocks/ColorBar/styles.css +5 -0
  24. package/blocks/ColorBook/ColorBook.d.ts +16 -0
  25. package/blocks/ColorBook/docs/api.mdx +76 -0
  26. package/blocks/ColorBook/docs/index.mdx +12 -0
  27. package/blocks/ColorBook/index.d.ts +1 -0
  28. package/blocks/ColorBook/index.js +77 -0
  29. package/blocks/ColorBook/samples/basic.d.ts +2 -0
  30. package/blocks/ColorBook/styles.css +6 -0
  31. package/blocks/Cover/Cover.d.ts +20 -0
  32. package/blocks/Cover/docs/api.mdx +76 -0
  33. package/blocks/Cover/docs/index.mdx +20 -0
  34. package/blocks/Cover/index.d.ts +1 -0
  35. package/blocks/Cover/index.js +64 -0
  36. package/blocks/Cover/samples/basic.d.ts +2 -0
  37. package/blocks/Exhibit/Exhibit.d.ts +19 -0
  38. package/blocks/Exhibit/docs/api.mdx +76 -0
  39. package/blocks/Exhibit/docs/index.mdx +56 -0
  40. package/blocks/Exhibit/index.d.ts +1 -0
  41. package/blocks/Exhibit/index.js +83 -0
  42. package/blocks/Exhibit/samples/basic.d.ts +2 -0
  43. package/blocks/Exhibit/styles.css +3 -0
  44. package/blocks/Font/Font.d.ts +15 -0
  45. package/blocks/Font/docs/api.mdx +76 -0
  46. package/blocks/Font/docs/index.mdx +23 -0
  47. package/blocks/Font/index.d.ts +1 -0
  48. package/blocks/Font/index.js +131 -0
  49. package/blocks/Font/samples/basic.d.ts +5 -0
  50. package/blocks/Font/samples/system.d.ts +2 -0
  51. package/blocks/Font/styles.css +9 -0
  52. package/blocks/Grid/Grid.d.ts +9 -0
  53. package/blocks/Grid/docs/api.mdx +76 -0
  54. package/blocks/Grid/docs/index.mdx +82 -0
  55. package/blocks/Grid/index.d.ts +1 -0
  56. package/blocks/Grid/index.js +53 -0
  57. package/blocks/Grid/samples/basic.d.ts +2 -0
  58. package/blocks/Grid/styles.css +1 -0
  59. package/blocks/Icon/Icon.d.ts +11 -0
  60. package/blocks/Icon/docs/api.mdx +76 -0
  61. package/blocks/Icon/docs/index.mdx +218 -0
  62. package/blocks/Icon/index.d.ts +1 -0
  63. package/blocks/Icon/index.js +155 -0
  64. package/blocks/Icon/internal/Canvas.d.ts +9 -0
  65. package/blocks/Icon/internal/index.d.ts +1 -0
  66. package/blocks/Icon/samples/basic.d.ts +2 -0
  67. package/blocks/Icon/styles.css +5 -0
  68. package/blocks/Icon/types.d.ts +10 -0
  69. package/blocks/Message/Message.d.ts +10 -0
  70. package/blocks/Message/docs/api.mdx +76 -0
  71. package/blocks/Message/docs/index.mdx +63 -0
  72. package/blocks/Message/index.d.ts +1 -0
  73. package/blocks/Message/index.js +72 -0
  74. package/blocks/Message/samples/basic.d.ts +5 -0
  75. package/blocks/Message/styles.css +6 -0
  76. package/blocks/Swatch/Swatch.d.ts +33 -0
  77. package/blocks/Swatch/docs/api.mdx +76 -0
  78. package/blocks/Swatch/docs/index.mdx +39 -0
  79. package/blocks/Swatch/index.d.ts +1 -0
  80. package/blocks/Swatch/index.js +84 -0
  81. package/blocks/Swatch/samples/basic.d.ts +2 -0
  82. package/blocks/Swatch/styles.css +4 -0
  83. package/blocks/Viewport/Viewport.d.ts +17 -0
  84. package/blocks/Viewport/docs/api.mdx +76 -0
  85. package/blocks/Viewport/docs/index.mdx +34 -0
  86. package/blocks/Viewport/index.d.ts +1 -0
  87. package/blocks/Viewport/index.js +322 -0
  88. package/blocks/Viewport/internal/Caption.d.ts +8 -0
  89. package/blocks/Viewport/internal/Handle.d.ts +10 -0
  90. package/blocks/Viewport/internal/Ruler.d.ts +7 -0
  91. package/blocks/Viewport/internal/index.d.ts +3 -0
  92. package/blocks/Viewport/samples/basic.d.ts +2 -0
  93. package/blocks/Viewport/styles.css +14 -0
  94. package/blocks/WebLink/WebLink.d.ts +10 -0
  95. package/blocks/WebLink/docs/api.mdx +76 -0
  96. package/blocks/WebLink/docs/index.mdx +13 -0
  97. package/blocks/WebLink/index.d.ts +1 -0
  98. package/blocks/WebLink/index.js +97 -0
  99. package/blocks/WebLink/samples/basic.d.ts +5 -0
  100. package/blocks/WebLink/styles.css +8 -0
  101. package/blocks/index.d.ts +13 -0
  102. package/blocks/index.js +13 -0
  103. package/blocks/styles.css +81 -0
  104. package/bus/index.d.ts +12 -0
  105. package/bus/index.js +22 -0
  106. package/bus/messages.d.ts +15 -0
  107. package/context/index.d.ts +20 -0
  108. package/context/index.js +15 -0
  109. package/core/components/Footer/Footer.d.ts +16 -0
  110. package/core/components/Footer/docs/api.mdx +76 -0
  111. package/core/components/Footer/docs/index.mdx +27 -0
  112. package/core/components/Footer/index.d.ts +1 -0
  113. package/core/components/Footer/samples/basic.d.ts +5 -0
  114. package/core/components/NavigationFooter/NavigationFooter.d.ts +19 -0
  115. package/core/components/NavigationFooter/docs/api.mdx +76 -0
  116. package/core/components/NavigationFooter/docs/index.mdx +10 -0
  117. package/core/components/NavigationFooter/index.d.ts +1 -0
  118. package/core/components/NavigationFooter/samples/basic.d.ts +5 -0
  119. package/core/components/Page/Page.d.ts +60 -0
  120. package/core/components/Page/components.d.ts +46 -0
  121. package/core/components/Page/docs/api.mdx +76 -0
  122. package/core/components/Page/docs/index.mdx +37 -0
  123. package/core/components/Page/index.d.ts +2 -0
  124. package/core/components/Page/internal/Section.d.ts +7 -0
  125. package/core/components/Page/internal/Sidebar.d.ts +15 -0
  126. package/core/components/Page/internal/index.d.ts +2 -0
  127. package/core/components/Page/samples/basic.d.ts +2 -0
  128. package/core/components/Page/samples/layout.d.ts +2 -0
  129. package/core/components/Page/types.d.ts +5 -0
  130. package/core/index.d.ts +22 -0
  131. package/core/index.js +708 -0
  132. package/core/layout.d.ts +4 -0
  133. package/core/styles.css +47 -0
  134. package/core/theme/colors.d.ts +36 -0
  135. package/core/theme/index.d.ts +1 -0
  136. package/hooks/index.d.ts +1 -0
  137. package/hooks/index.js +72 -0
  138. package/hooks/useResizeObserver/index.d.ts +56 -0
  139. package/package.json +27 -0
  140. package/std/base58/index.d.ts +2 -0
  141. package/std/base58/index.js +71 -0
  142. package/styles.css +128 -0
@@ -0,0 +1,82 @@
1
+ import { Grid } from "..";
2
+ import { Exhibit } from "../../Exhibit";
3
+ import { Image } from "../../../../src/components/Image";
4
+ import { fullWidth } from "timvir/core";
5
+
6
+ import image1 from "../../../../assets/khachik-simonian-nXOB-wh4Oyc-unsplash.jpg"
7
+ import image2 from "../../../../assets/frank-mckenna-4V8JxijgZ_c-unsplash.jpg"
8
+ import image3 from "../../../../assets/jay-mantri-TFyi0QOx08c-unsplash.jpg"
9
+ import image4 from "../../../../assets/jeremy-bishop-EwKXn5CapA4-unsplash.jpg"
10
+ import image5 from "../../../../assets/lukasz-szmigiel-jFCViYFYcus-unsplash.jpg"
11
+ import image6 from "../../../../assets/qingbao-meng-01_igFr7hd4-unsplash.jpg"
12
+ import image7 from "../../../../assets/v2osk-1Z2niiBPg5A-unsplash.jpg"
13
+
14
+ # Grid
15
+
16
+ > CSS grid with a predefined template (columns, gaps etc)
17
+
18
+ ```
19
+ <Grid>
20
+ <div>ITEM</div>
21
+ <div>ITEM</div>
22
+ <div>ITEM</div>
23
+ <div>ITEM</div>
24
+ <div>ITEM</div>
25
+ </Grid>
26
+ ```
27
+
28
+ ## Basic
29
+
30
+ <Grid>
31
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
32
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
33
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
34
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
35
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
36
+ </Grid>
37
+
38
+ ## Fullwidth
39
+
40
+ <Grid className={fullWidth}>
41
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
42
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
43
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
44
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
45
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
46
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
47
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
48
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
49
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
50
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
51
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
52
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
53
+ </Grid>
54
+
55
+ Combine `<Grid>` with the `<Image>` component.
56
+
57
+ <Grid>
58
+ <Image metadata={image1} img={{ src: image1.src }} sources={[]} />
59
+ <Image metadata={image2} img={{ src: image2.src }} sources={[]} />
60
+ <Image metadata={image3} img={{ src: image3.src }} sources={[]} />
61
+ <Image metadata={image4} img={{ src: image4.src }} sources={[]} />
62
+ <Image metadata={image5} img={{ src: image5.src }} sources={[]} />
63
+ <Image metadata={image6} img={{ src: image6.src }} sources={[]} />
64
+ <Image metadata={image7} img={{ src: image7.src }} sources={[]} />
65
+ </Grid>
66
+
67
+ Combine `<Grid>` with the `<Exhibit>` component.
68
+
69
+ <Grid>
70
+ <Exhibit bleed={8}>
71
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
72
+ </Exhibit>
73
+ <Exhibit bleed={8}>
74
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
75
+ </Exhibit>
76
+ <Exhibit bleed={8}>
77
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
78
+ </Exhibit>
79
+ <Exhibit bleed={8}>
80
+ <div style={{ height: 100, background: "rgba(0,0,0,.2)", display: "flex", alignItems: "center", justifyContent: "center" }}>ITEM</div>
81
+ </Exhibit>
82
+ </Grid>
@@ -0,0 +1 @@
1
+ export { default as Grid } from "./Grid";
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Takes a list of class names and filters for truthy ones, joining them into a single class name for convenience.
5
+ * eg.
6
+ * ```js
7
+ * cx('red', isBig && 'big') // returns 'red big' if `isBig` is true, otherwise returns 'red'
8
+ * ```
9
+ * If arguments provided are objects, these objects are merged together, and the values are taken as class names:
10
+ *
11
+ * ```js
12
+ * cx({ color: 'class1', textDecoration: 'class2'}, { color: 'class3' }) // returns `class3 class2`
13
+ * ```
14
+ *
15
+ * @returns the combined, space separated class names that can be applied directly to the class attribute
16
+ */
17
+ const cx = function cx() {
18
+ const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean); // In the basic case, `cx` is passed all strings, and we simply need to join them together with space separators
19
+
20
+ const classNamesResult = presentClassNames.filter(arg => typeof arg !== 'object'); // There might also be objects (eg. from the atomic API) such as cx('foo', {
21
+ // key1: 'bar', key2: 'fizz'}, { key1: 'buzz' }) the desired behavior is to
22
+ // deduplicate the values based on their properties. The object's values are
23
+ // the class names
24
+
25
+ const styleCollectionResult = Object.values(Object.assign({}, ...presentClassNames.filter(arg => typeof arg === 'object')));
26
+ return [...styleCollectionResult, ...classNamesResult].join(' ');
27
+ };
28
+
29
+ /**
30
+ * The underlying DOM element which is rendered by this component.
31
+ */
32
+
33
+ const Root = "div";
34
+
35
+ function Grid(props, ref) {
36
+ const {
37
+ children,
38
+ className,
39
+ ...rest
40
+ } = props;
41
+ return /*#__PURE__*/React.createElement(Root, {
42
+ ref: ref,
43
+ className: cx(className, classes.root),
44
+ ...rest
45
+ }, children);
46
+ }
47
+
48
+ var Grid$1 = /*#__PURE__*/React.forwardRef(Grid);
49
+ const classes = {
50
+ root: "r1c1ozpm"
51
+ };
52
+
53
+ export { Grid$1 as Grid };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function Sample(): JSX.Element;
@@ -0,0 +1 @@
1
+ .r1c1ozpm{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { Descriptor } from "./types";
3
+ /**
4
+ * The underlying DOM element which is rendered by this component.
5
+ */
6
+ declare const Root = "div";
7
+ interface Props extends React.ComponentProps<typeof Root> {
8
+ descriptor: Descriptor;
9
+ }
10
+ declare const _default: React.ForwardRefExoticComponent<Pick<Props, "key" | "dir" | "onError" | "hidden" | "color" | "style" | "translate" | "prefix" | "slot" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "descriptor"> & React.RefAttributes<HTMLDivElement>>;
11
+ export default _default;
@@ -0,0 +1,76 @@
1
+ # API
2
+
3
+ <div style={ { display: "grid", gridTemplateColumns: "min-content 1fr" } }>
4
+ <div style={ { fontWeight: "bold", marginRight: 16 } }>Root:</div>
5
+ <div>{`<div>`}</div>
6
+ <div style={ { fontWeight: "bold", marginRight: 16 } }>Ref:</div>
7
+ <div>Forward <span style={ { color: "rgb(153, 153, 153)" } }>(HTMLDivElement)</span></div>
8
+ </div>
9
+
10
+ ## Props
11
+
12
+ <Props {...{"fields":[{"name":"allSizes","type":{"optional":false,"name":"Size[]","module":""},"comment":{"shortText":""}},{"name":"descriptor","type":{"optional":false,"name":"Descriptor","module":""},"comment":{"shortText":""}}]}} />
13
+
14
+ export const required = (
15
+ <svg
16
+ x="0px"
17
+ y="0px"
18
+ width="10px"
19
+ height="10px"
20
+ viewBox="0 0 16 16"
21
+ style={ { position: "relative", top: 0, display: "inline-block", marginRight: 8 } }
22
+ >
23
+ <g transform="translate(0, 0)">
24
+ <circle cx="8" cy="8" r="8" fill="#444444"></circle>
25
+ </g>
26
+ </svg>
27
+ );
28
+
29
+ export const optional = (
30
+ <svg
31
+ x="0px"
32
+ y="0px"
33
+ width="10px"
34
+ height="10px"
35
+ viewBox="0 0 16 16"
36
+ style={ { position: "relative", top: 0, display: "inline-block", marginRight: 8 } }
37
+ >
38
+ <g transform="translate(0, 0)">
39
+ <circle
40
+ cx="8"
41
+ cy="8"
42
+ r="7.5"
43
+ fill="none"
44
+ stroke="#444444"
45
+ strokeLinecap="round"
46
+ strokeLinejoin="round"
47
+ data-cap="butt"
48
+ ></circle>
49
+ </g>
50
+ </svg>
51
+ );
52
+
53
+ export const Props = ({ fields }) => (
54
+ <div style={ { marginTop: 16, display: "grid", gridGap: 24 } }>
55
+ {fields.map(({ name, type, def, example, comment }) => (
56
+ <div key={name}>
57
+ <div style={ { marginLeft: -18 } }>
58
+ {type.optional ? optional : required}
59
+ <span style={ { fontWeight: "bold" } }>{name}</span>{`: `}
60
+ <span>{type.name}</span>
61
+ {def && (
62
+ <>
63
+ {` = `}<span style={ { fontWeight: "bold" } }>{def}</span>
64
+ </>
65
+ )}
66
+ </div>
67
+ <div>{comment.shortText}</div>
68
+ {example && (
69
+ <div style={ { marginLeft: 0, marginTop: 8, color: "rgb(153, 153, 153)", fontSize: "0.8rem" } }>
70
+ Example: <span style={ { fontWeight: "bold" } }>{example}</span>
71
+ </div>
72
+ )}
73
+ </div>
74
+ ))}
75
+ </div>
76
+ )
@@ -0,0 +1,218 @@
1
+ import { Icon } from "..";
2
+ import { Exhibit } from "../../Exhibit";
3
+ import { Grid } from "../../Grid";
4
+ import { extendedWidth } from "timvir/core";
5
+
6
+ # Icon
7
+
8
+ The `<Icon>` component is used to display a single, square component. Usually a `<svg>`, up to ~80px in size.
9
+
10
+ <Exhibit>
11
+ <div style={{ padding: 40, display: "flex", alignItems: "center", justifyContent: "center", width: "100%" }}>
12
+ <div style={{ width: 120 }}>
13
+ <Icon
14
+ descriptor={{
15
+ name: "ArrowRight",
16
+ instances: [
17
+ {
18
+ size: 12,
19
+ Component: () => (
20
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
21
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
22
+ </svg>
23
+ ),
24
+ },
25
+ ],
26
+ }}
27
+ />
28
+ </div>
29
+ </div>
30
+ </Exhibit>
31
+
32
+ ## In a `<Grid>`
33
+
34
+ <Grid
35
+ className={extendedWidth}
36
+ style={{ margin: 24, gridTemplateColumns: "repeat(auto-fit, minmax(120px, 1fr))", gridGap: 24 }}
37
+ >
38
+ <Icon
39
+ descriptor={{
40
+ name: "ArrowRight",
41
+ instances: [
42
+ {
43
+ size: 12,
44
+ Component: () => (
45
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
46
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
47
+ </svg>
48
+ ),
49
+ },
50
+ ],
51
+ }}
52
+ />
53
+ <Icon
54
+ descriptor={{
55
+ name: "ArrowRight",
56
+ instances: [
57
+ {
58
+ size: 12,
59
+ Component: () => (
60
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
61
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
62
+ </svg>
63
+ ),
64
+ },
65
+ ],
66
+ }}
67
+ />
68
+ <Icon
69
+ descriptor={{
70
+ name: "ArrowRight",
71
+ instances: [
72
+ {
73
+ size: 12,
74
+ Component: () => (
75
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
76
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
77
+ </svg>
78
+ ),
79
+ },
80
+ ],
81
+ }}
82
+ />
83
+ <Icon
84
+ descriptor={{
85
+ name: "ArrowRight",
86
+ instances: [
87
+ {
88
+ size: 12,
89
+ Component: () => (
90
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
91
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
92
+ </svg>
93
+ ),
94
+ },
95
+ ],
96
+ }}
97
+ />
98
+ <Icon
99
+ descriptor={{
100
+ name: "ArrowRight",
101
+ instances: [
102
+ {
103
+ size: 12,
104
+ Component: () => (
105
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
106
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
107
+ </svg>
108
+ ),
109
+ },
110
+ ],
111
+ }}
112
+ />
113
+ <Icon
114
+ descriptor={{
115
+ name: "ArrowRight",
116
+ instances: [
117
+ {
118
+ size: 12,
119
+ Component: () => (
120
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
121
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
122
+ </svg>
123
+ ),
124
+ },
125
+ ],
126
+ }}
127
+ />
128
+ <Icon
129
+ descriptor={{
130
+ name: "ArrowRight",
131
+ instances: [
132
+ {
133
+ size: 12,
134
+ Component: () => (
135
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
136
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
137
+ </svg>
138
+ ),
139
+ },
140
+ ],
141
+ }}
142
+ />
143
+ <Icon
144
+ descriptor={{
145
+ name: "NavigationArrowLeft",
146
+ instances: [
147
+ {
148
+ size: 12,
149
+ Component: () => (
150
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
151
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
152
+ </svg>
153
+ ),
154
+ },
155
+ ],
156
+ }}
157
+ />
158
+ <Icon
159
+ descriptor={{
160
+ name: "ArrowRight",
161
+ instances: [
162
+ {
163
+ size: 12,
164
+ Component: () => (
165
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
166
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
167
+ </svg>
168
+ ),
169
+ },
170
+ ],
171
+ }}
172
+ />
173
+ <Icon
174
+ descriptor={{
175
+ name: "ArrowRight",
176
+ instances: [
177
+ {
178
+ size: 12,
179
+ Component: () => (
180
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
181
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
182
+ </svg>
183
+ ),
184
+ },
185
+ ],
186
+ }}
187
+ />
188
+ <Icon
189
+ descriptor={{
190
+ name: "ArrowRight",
191
+ instances: [
192
+ {
193
+ size: 12,
194
+ Component: () => (
195
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
196
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
197
+ </svg>
198
+ ),
199
+ },
200
+ ],
201
+ }}
202
+ />
203
+ <Icon
204
+ descriptor={{
205
+ name: "ArrowRight",
206
+ instances: [
207
+ {
208
+ size: 12,
209
+ Component: () => (
210
+ <svg width="12px" height="12px" viewBox="0 0 12 12">
211
+ <path fill="#444" d="M1.98 2.1L5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1z" />
212
+ </svg>
213
+ ),
214
+ },
215
+ ],
216
+ }}
217
+ />
218
+ </Grid>
@@ -0,0 +1 @@
1
+ export { default as Icon } from "./Icon";
@@ -0,0 +1,155 @@
1
+ import { useResizeObserverEntry } from 'timvir/hooks';
2
+ import * as React from 'react';
3
+
4
+ /**
5
+ * Takes a list of class names and filters for truthy ones, joining them into a single class name for convenience.
6
+ * eg.
7
+ * ```js
8
+ * cx('red', isBig && 'big') // returns 'red big' if `isBig` is true, otherwise returns 'red'
9
+ * ```
10
+ * If arguments provided are objects, these objects are merged together, and the values are taken as class names:
11
+ *
12
+ * ```js
13
+ * cx({ color: 'class1', textDecoration: 'class2'}, { color: 'class3' }) // returns `class3 class2`
14
+ * ```
15
+ *
16
+ * @returns the combined, space separated class names that can be applied directly to the class attribute
17
+ */
18
+ const cx = function cx() {
19
+ const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean); // In the basic case, `cx` is passed all strings, and we simply need to join them together with space separators
20
+
21
+ const classNamesResult = presentClassNames.filter(arg => typeof arg !== 'object'); // There might also be objects (eg. from the atomic API) such as cx('foo', {
22
+ // key1: 'bar', key2: 'fizz'}, { key1: 'buzz' }) the desired behavior is to
23
+ // deduplicate the values based on their properties. The object's values are
24
+ // the class names
25
+
26
+ const styleCollectionResult = Object.values(Object.assign({}, ...presentClassNames.filter(arg => typeof arg === 'object')));
27
+ return [...styleCollectionResult, ...classNamesResult].join(' ');
28
+ };
29
+
30
+ const Root$1 = "div";
31
+ const classes$1 = {
32
+ backdrop: "b1a0xzv7",
33
+ grid: "g10obtzp"
34
+ };
35
+
36
+ function Canvas(props) {
37
+ const {
38
+ width,
39
+ height,
40
+ size,
41
+ Component
42
+ } = props;
43
+ return /*#__PURE__*/React.createElement(Root$1, {
44
+ className: "r1bcczis",
45
+ style: {
46
+ width,
47
+ height
48
+ }
49
+ }, /*#__PURE__*/React.createElement("div", {
50
+ className: classes$1.backdrop
51
+ }), /*#__PURE__*/React.createElement(Grid, {
52
+ className: classes$1.grid,
53
+ size: size
54
+ }), /*#__PURE__*/React.createElement("div", {
55
+ style: {
56
+ fontSize: `${size}px`,
57
+ zIndex: 1
58
+ }
59
+ }, /*#__PURE__*/React.createElement(Component, null)));
60
+ }
61
+
62
+ function Grid({
63
+ size,
64
+ ...rest
65
+ }) {
66
+ const halfSize = size / 2;
67
+ const center = 60;
68
+ const whiskerLength = Math.min(16, size / 2);
69
+
70
+ const Corner = ({
71
+ dx,
72
+ dy
73
+ }) => /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("line", {
74
+ x1: dx(center, halfSize),
75
+ x2: dx(center, halfSize + whiskerLength),
76
+ y1: dy(center, halfSize),
77
+ y2: dy(center, halfSize),
78
+ strokeWidth: 1,
79
+ stroke: "#EEEEEE"
80
+ }), /*#__PURE__*/React.createElement("line", {
81
+ x1: dx(center, halfSize),
82
+ x2: dx(center, halfSize),
83
+ y1: dy(center, halfSize),
84
+ y2: dy(center, halfSize + whiskerLength),
85
+ strokeWidth: 1,
86
+ stroke: "#EEEEEE"
87
+ }));
88
+
89
+ const add = (a, b) => a + b;
90
+
91
+ const sub = (a, b) => a - b;
92
+
93
+ return /*#__PURE__*/React.createElement("svg", {
94
+ width: "120",
95
+ height: "120",
96
+ viewBox: "0 0 120 120",
97
+ ...rest
98
+ }, /*#__PURE__*/React.createElement("rect", {
99
+ x: center - halfSize,
100
+ y: center - halfSize,
101
+ width: size,
102
+ height: size,
103
+ fill: "#FFBBFF88"
104
+ }), /*#__PURE__*/React.createElement(Corner, {
105
+ dx: sub,
106
+ dy: sub
107
+ }), /*#__PURE__*/React.createElement(Corner, {
108
+ dx: add,
109
+ dy: sub
110
+ }), /*#__PURE__*/React.createElement(Corner, {
111
+ dx: add,
112
+ dy: add
113
+ }), /*#__PURE__*/React.createElement(Corner, {
114
+ dx: sub,
115
+ dy: add
116
+ }));
117
+ }
118
+
119
+ /**
120
+ * The underlying DOM element which is rendered by this component.
121
+ */
122
+ const Root = "div";
123
+ const classes = {
124
+ name: "n1xsexuc"
125
+ };
126
+
127
+ function Icon(props, ref) {
128
+ const {
129
+ descriptor,
130
+ className,
131
+ ...rest
132
+ } = props;
133
+ const [roRef, roe] = useResizeObserverEntry();
134
+ const width = roe === null || roe === void 0 ? void 0 : roe.contentRect.width;
135
+ return /*#__PURE__*/React.createElement(Root, {
136
+ ref: ref,
137
+ className: cx(className, "r1k0w618"),
138
+ ...rest
139
+ }, /*#__PURE__*/React.createElement("div", {
140
+ ref: roRef
141
+ }, width !== undefined && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Canvas, {
142
+ width: width,
143
+ height: width,
144
+ size: 32
145
+ /*descriptor.instances[0].size as number */
146
+ ,
147
+ Component: descriptor.instances[0].Component
148
+ }), /*#__PURE__*/React.createElement("div", {
149
+ className: classes.name
150
+ }, descriptor.name))));
151
+ }
152
+
153
+ var Icon$1 = /*#__PURE__*/React.forwardRef(Icon);
154
+
155
+ export { Icon$1 as Icon };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ interface Props {
3
+ width: number;
4
+ height: number;
5
+ size: number;
6
+ Component: React.ElementType;
7
+ }
8
+ declare function Canvas(props: Props): JSX.Element;
9
+ export default Canvas;
@@ -0,0 +1 @@
1
+ export { default as Canvas } from "./Canvas";
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function Sample(): JSX.Element;
@@ -0,0 +1,5 @@
1
+ .n1xsexuc{margin-top:6px;white-space:nowrap;font-size:0.75rem;opacity:0;transition:all 0.16s;z-index:-1;color:var(--timvir-secondary-text-color);text-align:center;user-select:none;pointer-events:none;position:absolute;left:50%;bottom:-20px;transform:translateX(-50%);}
2
+ .r1k0w618{position:relative;z-index:1;}.r1k0w618 svg{display:block;}.r1k0w618:hover .n1xsexuc{opacity:1;bottom:-26px;color:var(--timvir-text-color);}.r1k0w618:active .n1xsexuc{bottom:-24px;}
3
+ .b1a0xzv7{background:white;place-self:stretch;border-radius:2px;transition:all 0.2s;box-shadow:0 0 0 0 rgba(0,0,0,0.1);}
4
+ .g10obtzp{opacity:0;transition:all 0.2s;pointer-events:none;}
5
+ .r1bcczis{display:grid;place-items:center;cursor:pointer;}.r1bcczis > *{grid-column:1;grid-row:1;}.r1bcczis:hover .b1a0xzv7{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);}.r1bcczis:active .b1a0xzv7{margin:1px;box-shadow:inset 0 0 0 1px rgba(16,22,26,0.2),0 1px 1px rgba(16,22,26,0.2);}.r1bcczis:hover .g10obtzp{opacity:1;}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ export declare type Size = "responsive" | number;
3
+ export interface Instance {
4
+ size: Size;
5
+ Component: React.ElementType;
6
+ }
7
+ export interface Descriptor {
8
+ name: string;
9
+ instances: Instance[];
10
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ /**
3
+ * The underlying DOM element which is rendered by this component.
4
+ */
5
+ declare const Root = "div";
6
+ interface Props extends React.ComponentPropsWithoutRef<typeof Root> {
7
+ variant?: "info" | "warning" | "alert";
8
+ }
9
+ declare const _default: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
10
+ export default _default;