@luscii-healthtech/web-ui 0.7.2 → 0.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.
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { BaseButtonProps } from "../ButtonV2/ButtonProps.type";
3
+ import { TimelineStepProps } from "./TimelineStep";
4
+ export interface TimelineProps {
5
+ steps: TimelineStepProps[];
6
+ loadMoreButtonProps?: BaseButtonProps;
7
+ }
8
+ export declare const Timeline: (props: TimelineProps) => JSX.Element;
9
+ export default Timeline;
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export interface TimelineStepProps {
3
+ key: string | number;
4
+ type?: "wide" | "base";
5
+ content: React.ReactNode;
6
+ }
7
+ export declare const TimelineStep: {
8
+ ({ content, type, }: TimelineStepProps): JSX.Element;
9
+ defaultProps: {
10
+ type: "wide" | "base" | undefined;
11
+ };
12
+ };
package/dist/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export { default as TextEditor } from "./components/TextEditor/TextEditor";
49
49
  export { default as TextEditorV2 } from "./components/TextEditorV2/TextEditorV2";
50
50
  export { TextLink, TextLinkProps } from "./components/TextLink/TextLink";
51
51
  export { Title, TitleStyle } from "./components/Title/Title";
52
+ export { Timeline } from "./components/Timeline/Timeline";
52
53
  export { ViewItem, ViewItemProps } from "./components/ViewItem/ViewItem";
53
54
  export { default as Text } from "./components/Text/Text";
54
55
  export { IconProps } from "./components/Icons/types/IconProps.type";
@@ -819,6 +819,12 @@ video {
819
819
  border-color: rgba(8, 128, 236, var(--border-opacity));
820
820
  }
821
821
 
822
+ .border-blue-800 {
823
+ --border-opacity: 1;
824
+ border-color: #0074DD;
825
+ border-color: rgba(0, 116, 221, var(--border-opacity));
826
+ }
827
+
822
828
  .border-slate-50 {
823
829
  --border-opacity: 1;
824
830
  border-color: #f8fafc;
@@ -972,6 +978,10 @@ video {
972
978
  border-width: 1px;
973
979
  }
974
980
 
981
+ .border-l-2 {
982
+ border-left-width: 2px;
983
+ }
984
+
975
985
  .border-t {
976
986
  border-top-width: 1px;
977
987
  }
@@ -1148,6 +1158,10 @@ video {
1148
1158
  height: 100vh;
1149
1159
  }
1150
1160
 
1161
+ .last\:h-0:last-child {
1162
+ height: 0;
1163
+ }
1164
+
1151
1165
  .text-xs {
1152
1166
  font-size: 0.75rem;
1153
1167
  }
@@ -1225,6 +1239,11 @@ video {
1225
1239
  margin-bottom: 1.5rem;
1226
1240
  }
1227
1241
 
1242
+ .mx-auto {
1243
+ margin-left: auto;
1244
+ margin-right: auto;
1245
+ }
1246
+
1228
1247
  .ml-0 {
1229
1248
  margin-left: 0;
1230
1249
  }
@@ -1277,6 +1296,10 @@ video {
1277
1296
  margin-left: 1rem;
1278
1297
  }
1279
1298
 
1299
+ .mt-6 {
1300
+ margin-top: 1.5rem;
1301
+ }
1302
+
1280
1303
  .mb-6 {
1281
1304
  margin-bottom: 1.5rem;
1282
1305
  }
@@ -1309,6 +1332,10 @@ video {
1309
1332
  margin-left: 0.625rem;
1310
1333
  }
1311
1334
 
1335
+ .-ml-px {
1336
+ margin-left: -1px;
1337
+ }
1338
+
1312
1339
  .first\:ml-0:first-child {
1313
1340
  margin-left: 0;
1314
1341
  }
@@ -1469,6 +1496,10 @@ video {
1469
1496
  padding-left: 0.25rem;
1470
1497
  }
1471
1498
 
1499
+ .pt-3 {
1500
+ padding-top: 0.75rem;
1501
+ }
1502
+
1472
1503
  .pl-4 {
1473
1504
  padding-left: 1rem;
1474
1505
  }
@@ -1481,6 +1512,10 @@ video {
1481
1512
  padding-bottom: 1.5rem;
1482
1513
  }
1483
1514
 
1515
+ .pl-6 {
1516
+ padding-left: 1.5rem;
1517
+ }
1518
+
1484
1519
  .pl-10 {
1485
1520
  padding-left: 2.5rem;
1486
1521
  }
@@ -1561,10 +1596,18 @@ video {
1561
1596
  left: 0;
1562
1597
  }
1563
1598
 
1599
+ .top-3 {
1600
+ top: 0.75rem;
1601
+ }
1602
+
1564
1603
  .-top-1 {
1565
1604
  top: -0.25rem;
1566
1605
  }
1567
1606
 
1607
+ .-left-3 {
1608
+ left: -0.75rem;
1609
+ }
1610
+
1568
1611
  .-right-54 {
1569
1612
  right: -13.5rem;
1570
1613
  }
@@ -4185,6 +4185,58 @@ var TextEditorV2 = function TextEditorV2(_ref) {
4185
4185
  }));
4186
4186
  };
4187
4187
 
4188
+ var SmallCircleIcon = function SmallCircleIcon(props) {
4189
+ return /*#__PURE__*/React__default.createElement("svg", {
4190
+ className: props.className,
4191
+ onClick: props.onClick,
4192
+ role: props.onClick ? "button" : undefined,
4193
+ width: "24",
4194
+ height: "24",
4195
+ viewBox: "0 0 24 24",
4196
+ fill: "none",
4197
+ xmlns: "http://www.w3.org/2000/svg"
4198
+ }, /*#__PURE__*/React__default.createElement("circle", {
4199
+ cx: "12",
4200
+ cy: "12",
4201
+ r: "6",
4202
+ fill: "currentColor"
4203
+ }), /*#__PURE__*/React__default.createElement("circle", {
4204
+ cx: "14.5",
4205
+ cy: "9.5",
4206
+ r: "1.5",
4207
+ fill: "white",
4208
+ fillOpacity: "0.1"
4209
+ }));
4210
+ };
4211
+
4212
+ var TimelineStep = function TimelineStep(_ref) {
4213
+ var _classNames;
4214
+
4215
+ var content = _ref.content,
4216
+ type = _ref.type;
4217
+ var isWideStep = type === "wide";
4218
+ var borderClassNames = "ml-4 pl-6 border-blue-800 border-l-2";
4219
+ var containerClassNames = classNames("relative", (_classNames = {}, _classNames[borderClassNames] = !isWideStep, _classNames["pt-3"] = !isWideStep, _classNames["bg-white rounded-lg overflow-hidden"] = isWideStep, _classNames));
4220
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
4221
+ className: containerClassNames
4222
+ }, content, !isWideStep && /*#__PURE__*/React__default.createElement(SmallCircleIcon, {
4223
+ className: "text-blue-800 absolute top-3 -left-3 -ml-px"
4224
+ })), /*#__PURE__*/React__default.createElement("div", {
4225
+ className: classNames(borderClassNames, "h-6 last:h-0")
4226
+ }));
4227
+ };
4228
+ TimelineStep.defaultProps = {
4229
+ type: "base"
4230
+ };
4231
+
4232
+ var Timeline = function Timeline(props) {
4233
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", null, props.steps.map(function (step) {
4234
+ return /*#__PURE__*/React__default.createElement(TimelineStep, Object.assign({}, step));
4235
+ })), props.loadMoreButtonProps && /*#__PURE__*/React__default.createElement(SecondaryButton, Object.assign({
4236
+ className: "mt-6 mx-auto"
4237
+ }, props.loadMoreButtonProps)));
4238
+ };
4239
+
4188
4240
  var _excluded$g = ["titleProps", "title", "titleAccessory", "contentProps", "content", "defaultContent", "className", "buttons"];
4189
4241
  function ViewItem(_ref) {
4190
4242
  var titleProps = _ref.titleProps,
@@ -4894,30 +4946,6 @@ var PinIcon = function PinIcon(props) {
4894
4946
  }));
4895
4947
  };
4896
4948
 
4897
- var SmallCircleIcon = function SmallCircleIcon(props) {
4898
- return /*#__PURE__*/React__default.createElement("svg", {
4899
- className: props.className,
4900
- onClick: props.onClick,
4901
- role: props.onClick ? "button" : undefined,
4902
- width: "24",
4903
- height: "24",
4904
- viewBox: "0 0 24 24",
4905
- fill: "none",
4906
- xmlns: "http://www.w3.org/2000/svg"
4907
- }, /*#__PURE__*/React__default.createElement("circle", {
4908
- cx: "12",
4909
- cy: "12",
4910
- r: "6",
4911
- fill: "currentColor"
4912
- }), /*#__PURE__*/React__default.createElement("circle", {
4913
- cx: "14.5",
4914
- cy: "9.5",
4915
- r: "1.5",
4916
- fill: "white",
4917
- fillOpacity: "0.1"
4918
- }));
4919
- };
4920
-
4921
4949
  var SmallDiamondIcon = function SmallDiamondIcon(props) {
4922
4950
  return /*#__PURE__*/React__default.createElement("svg", {
4923
4951
  className: props.className,
@@ -5137,6 +5165,7 @@ exports.TextArea = Textarea;
5137
5165
  exports.TextEditor = TextEditor;
5138
5166
  exports.TextEditorV2 = TextEditorV2;
5139
5167
  exports.TextLink = TextLink;
5168
+ exports.Timeline = Timeline;
5140
5169
  exports.Title = Title;
5141
5170
  exports.ViewItem = ViewItem;
5142
5171
  //# sourceMappingURL=web-ui.cjs.development.js.map