@rufous/ui 0.1.23 → 0.1.29

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.
@@ -1,4 +1,22 @@
1
- import "../chunk-2WPUS5VV.js";
1
+ import "../chunk-HYVDDN42.js";
2
+ import {
3
+ viewIcon_default
4
+ } from "../chunk-XPRBPIS5.js";
5
+ import {
6
+ workItemIcon_default
7
+ } from "../chunk-QJPQC544.js";
8
+ import {
9
+ suspendUserIcon_default
10
+ } from "../chunk-5BB3H3YO.js";
11
+ import {
12
+ tickIcon_default
13
+ } from "../chunk-ITZTTNM2.js";
14
+ import {
15
+ timerIcon_default
16
+ } from "../chunk-WWAHNTUH.js";
17
+ import {
18
+ trashIcon_default
19
+ } from "../chunk-6KIFTMUN.js";
2
20
  import {
3
21
  unArchivedIcon_default
4
22
  } from "../chunk-ZJAV3FEQ.js";
@@ -12,11 +30,17 @@ import {
12
30
  userAssignIcon_default
13
31
  } from "../chunk-BH53P2UM.js";
14
32
  import {
15
- viewIcon_default
16
- } from "../chunk-XPRBPIS5.js";
33
+ refreshIcon_default
34
+ } from "../chunk-RNA4TTYR.js";
17
35
  import {
18
- workItemIcon_default
19
- } from "../chunk-QJPQC544.js";
36
+ resendInviteIcon_default
37
+ } from "../chunk-WG3Q6GZN.js";
38
+ import {
39
+ rolesIcon_default
40
+ } from "../chunk-RJ43D3XB.js";
41
+ import {
42
+ rufousAiIcon_default
43
+ } from "../chunk-DE73YGRW.js";
20
44
  import {
21
45
  rufousBirdIcon_default
22
46
  } from "../chunk-DMP72IAP.js";
@@ -30,17 +54,17 @@ import {
30
54
  subscribeIcon_default
31
55
  } from "../chunk-ZDVP4SUD.js";
32
56
  import {
33
- suspendUserIcon_default
34
- } from "../chunk-5BB3H3YO.js";
57
+ questionStatusAllIcon_default
58
+ } from "../chunk-GYLL3HRD.js";
35
59
  import {
36
- tickIcon_default
37
- } from "../chunk-ITZTTNM2.js";
60
+ questionStatusPrivateIcon_default
61
+ } from "../chunk-WZTZFC36.js";
38
62
  import {
39
- timerIcon_default
40
- } from "../chunk-WWAHNTUH.js";
63
+ questionStatusPublicIcon_default
64
+ } from "../chunk-QA2AYT4A.js";
41
65
  import {
42
- trashIcon_default
43
- } from "../chunk-6KIFTMUN.js";
66
+ questionTypeAllIcon_default
67
+ } from "../chunk-WHGVO3HV.js";
44
68
  import {
45
69
  questionTypeCodingIcon_default
46
70
  } from "../chunk-FOUXNPQA.js";
@@ -54,17 +78,17 @@ import {
54
78
  questionTypeSingleIcon_default
55
79
  } from "../chunk-ZJYLZ6I6.js";
56
80
  import {
57
- refreshIcon_default
58
- } from "../chunk-RNA4TTYR.js";
81
+ industryIcon_default
82
+ } from "../chunk-NSW6ZGZF.js";
59
83
  import {
60
- resendInviteIcon_default
61
- } from "../chunk-WG3Q6GZN.js";
84
+ invoiceIcon_default
85
+ } from "../chunk-KYJ3475B.js";
62
86
  import {
63
- rolesIcon_default
64
- } from "../chunk-RJ43D3XB.js";
87
+ locationPinIcon_default
88
+ } from "../chunk-UTYIBUY2.js";
65
89
  import {
66
- rufousAiIcon_default
67
- } from "../chunk-DE73YGRW.js";
90
+ logsIcon_default
91
+ } from "../chunk-N4EJKMJK.js";
68
92
  import {
69
93
  minExperienceIcon_default
70
94
  } from "../chunk-MKK7M3BH.js";
@@ -78,17 +102,14 @@ import {
78
102
  projectIcon_default
79
103
  } from "../chunk-BYJP2WNC.js";
80
104
  import {
81
- questionStatusAllIcon_default
82
- } from "../chunk-GYLL3HRD.js";
83
- import {
84
- questionStatusPrivateIcon_default
85
- } from "../chunk-WZTZFC36.js";
105
+ editChatIcon_default
106
+ } from "../chunk-QONKYAQ5.js";
86
107
  import {
87
- questionStatusPublicIcon_default
88
- } from "../chunk-QA2AYT4A.js";
108
+ editIcon_default
109
+ } from "../chunk-H372BAXA.js";
89
110
  import {
90
- questionTypeAllIcon_default
91
- } from "../chunk-WHGVO3HV.js";
111
+ engagementIcon_default
112
+ } from "../chunk-FSRABKKC.js";
92
113
  import {
93
114
  functionIcon_default
94
115
  } from "../chunk-ZAYWFYP4.js";
@@ -102,14 +123,14 @@ import {
102
123
  inactiveGroupIcon_default
103
124
  } from "../chunk-7WNPZ4B7.js";
104
125
  import {
105
- industryIcon_default
106
- } from "../chunk-NSW6ZGZF.js";
126
+ closeIcon_default
127
+ } from "../chunk-WXXJX3FF.js";
107
128
  import {
108
- invoiceIcon_default
109
- } from "../chunk-KYJ3475B.js";
129
+ copyIcon_default
130
+ } from "../chunk-6FEUS4CQ.js";
110
131
  import {
111
- logsIcon_default
112
- } from "../chunk-N4EJKMJK.js";
132
+ difficultyAllIcon_default
133
+ } from "../chunk-PPNZC5ZQ.js";
113
134
  import {
114
135
  difficultyEasyIcon_default
115
136
  } from "../chunk-JI5XMLWT.js";
@@ -125,15 +146,6 @@ import {
125
146
  import {
126
147
  downloadIcon_default
127
148
  } from "../chunk-IOEQAR2M.js";
128
- import {
129
- editChatIcon_default
130
- } from "../chunk-QONKYAQ5.js";
131
- import {
132
- editIcon_default
133
- } from "../chunk-H372BAXA.js";
134
- import {
135
- engagementIcon_default
136
- } from "../chunk-FSRABKKC.js";
137
149
  import {
138
150
  activateUserIcon_default
139
151
  } from "../chunk-AH6RCYDL.js";
@@ -143,16 +155,11 @@ import {
143
155
  import {
144
156
  assignGroupIcon_default
145
157
  } from "../chunk-MNPAE2ZF.js";
146
- import {
147
- copyIcon_default
148
- } from "../chunk-6FEUS4CQ.js";
149
- import {
150
- difficultyAllIcon_default
151
- } from "../chunk-PPNZC5ZQ.js";
152
158
  export {
153
159
  activateUserIcon_default as ActivateUserIcon,
154
160
  archivedIcon_default as ArchivedIcon,
155
161
  assignGroupIcon_default as AssignGroupIcon,
162
+ closeIcon_default as CloseIcon,
156
163
  copyIcon_default as CopyIcon,
157
164
  difficultyAllIcon_default as DifficultyAllIcon,
158
165
  difficultyEasyIcon_default as DifficultyEasyIcon,
@@ -169,6 +176,7 @@ export {
169
176
  inactiveGroupIcon_default as InactiveGroupIcon,
170
177
  industryIcon_default as IndustryIcon,
171
178
  invoiceIcon_default as InvoiceIcon,
179
+ locationPinIcon_default as LocationPinIcon,
172
180
  logsIcon_default as LogsIcon,
173
181
  minExperienceIcon_default as MinExperienceIcon,
174
182
  nineDotMenuIcon_default as NineDotMenuIcon,
@@ -0,0 +1,37 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // lib/icons/locationPinIcon.tsx
30
+ var locationPinIcon_exports = {};
31
+ __export(locationPinIcon_exports, {
32
+ default: () => locationPinIcon_default
33
+ });
34
+ module.exports = __toCommonJS(locationPinIcon_exports);
35
+ var React = __toESM(require("react"), 1);
36
+ var LocationPinIcon = ({ color = "#3a3a3a", ...props }) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "21", height: "21", viewBox: "0 0 21 21", ...props }, /* @__PURE__ */ React.createElement("g", { id: "Group_26169", "data-name": "Group 26169", transform: "translate(-147 -322)" }, /* @__PURE__ */ React.createElement("rect", { id: "Rectangle_19841", "data-name": "Rectangle 19841", width: "21", height: "21", transform: "translate(147 322)", fill: "none" }), /* @__PURE__ */ React.createElement("g", { id: "location", transform: "translate(150.096 323.076)" }, /* @__PURE__ */ React.createElement("path", { id: "Path_60763", "data-name": "Path 60763", d: "M69.375,54.75a3.375,3.375,0,1,1,3.375-3.375A3.375,3.375,0,0,1,69.375,54.75Zm0-5.4A2.025,2.025,0,1,0,71.4,51.375,2.025,2.025,0,0,0,69.375,49.35Z", transform: "translate(-61.971 -43.968)", fill: color }), /* @__PURE__ */ React.createElement("path", { id: "Path_60764", "data-name": "Path 60764", d: "M37.4,30.848l-5.678-6.7q-.118-.151-.234-.3A7.33,7.33,0,0,1,30,19.4a7.4,7.4,0,1,1,14.809,0,7.326,7.326,0,0,1-1.491,4.441v0s-.2.265-.232.3Zm-4.838-7.812s.158.207.193.252L37.4,28.766l4.651-5.486c.03-.037.187-.246.188-.246A5.991,5.991,0,0,0,43.462,19.4a6.058,6.058,0,0,0-12.116,0,5.994,5.994,0,0,0,1.22,3.632Z", transform: "translate(-30 -12)", fill: color }))));
37
+ var locationPinIcon_default = LocationPinIcon;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+
3
+ interface LocationPinProps extends React.SVGProps<SVGSVGElement> {
4
+ color?: string;
5
+ }
6
+ declare const LocationPinIcon: React.FC<LocationPinProps>;
7
+
8
+ export { type LocationPinProps, LocationPinIcon as default };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+
3
+ interface LocationPinProps extends React.SVGProps<SVGSVGElement> {
4
+ color?: string;
5
+ }
6
+ declare const LocationPinIcon: React.FC<LocationPinProps>;
7
+
8
+ export { type LocationPinProps, LocationPinIcon as default };
@@ -0,0 +1,6 @@
1
+ import {
2
+ locationPinIcon_default
3
+ } from "../chunk-UTYIBUY2.js";
4
+ export {
5
+ locationPinIcon_default as default
6
+ };
package/dist/main.cjs CHANGED
@@ -34,7 +34,9 @@ __export(main_exports, {
34
34
  AddButton: () => addButton_default,
35
35
  ArchivedIcon: () => archivedIcon_default,
36
36
  AssignGroupIcon: () => assignGroupIcon_default,
37
+ BaseDialog: () => BaseDialog_default,
37
38
  CancelButton: () => cancelButton_default,
39
+ CloseIcon: () => closeIcon_default,
38
40
  CopyIcon: () => copyIcon_default,
39
41
  DifficultyAllIcon: () => difficultyAllIcon_default,
40
42
  DifficultyEasyIcon: () => difficultyEasyIcon_default,
@@ -51,6 +53,7 @@ __export(main_exports, {
51
53
  InactiveGroupIcon: () => inactiveGroupIcon_default,
52
54
  IndustryIcon: () => industryIcon_default,
53
55
  InvoiceIcon: () => invoiceIcon_default,
56
+ LocationPinIcon: () => locationPinIcon_default,
54
57
  LogsIcon: () => logsIcon_default,
55
58
  MinExperienceIcon: () => minExperienceIcon_default,
56
59
  NineDotMenuIcon: () => nineDotMenuIcon_default,
@@ -1066,15 +1069,25 @@ var React50 = __toESM(require("react"), 1);
1066
1069
  var RufousAiIcon = ({ color = "#3a3a3a", ...props }) => /* @__PURE__ */ React50.createElement("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React50.createElement("path", { d: "M16 31C24.2843 31 31 24.2843 31 16C31 7.71573 24.2843 1 16 1C7.71573 1 1 7.71573 1 16C1 24.2843 7.71573 31 16 31Z", stroke: color, "stroke-width": "2" }), /* @__PURE__ */ React50.createElement("path", { d: "M16.0999 20.167C16.1447 20.0478 16.2145 19.9396 16.3045 19.8495C16.3945 19.7595 16.5028 19.6898 16.6219 19.645L21.3489 17.87L16.6219 16.097C16.5026 16.0524 16.3941 15.9827 16.3039 15.8926C16.2137 15.8026 16.1438 15.6943 16.0989 15.575L14.3239 10.846L12.5509 15.574L12.5419 15.597C12.4955 15.7114 12.4259 15.8149 12.3374 15.9009C12.2489 15.987 12.1436 16.0538 12.0279 16.097L7.29895 17.87L12.0279 19.645C12.1471 19.6898 12.2554 19.7595 12.3454 19.8495C12.4354 19.9396 12.5052 20.0478 12.5499 20.167L14.3229 24.894L16.0999 20.167Z", stroke: color, "stroke-width": "1.5" }), /* @__PURE__ */ React50.createElement("path", { d: "M22.372 11.523C22.4108 11.4198 22.4712 11.3261 22.5492 11.2482C22.6271 11.1702 22.7209 11.1098 22.824 11.071L24.831 10.317L22.824 9.564C22.7242 9.52656 22.6332 9.46884 22.5568 9.39449C22.4804 9.32014 22.4202 9.23077 22.38 9.132L22.372 9.112L21.618 7.104L20.865 9.112L20.858 9.131C20.8178 9.23002 20.7575 9.31961 20.6809 9.39414C20.6043 9.46867 20.5131 9.52651 20.413 9.564L18.405 10.317L20.413 11.071C20.5163 11.1096 20.6101 11.17 20.6881 11.248C20.7661 11.3259 20.8264 11.4197 20.865 11.523L21.618 13.53L22.372 11.523Z", stroke: color, "stroke-width": "1.2" }));
1067
1070
  var rufousAiIcon_default = RufousAiIcon;
1068
1071
 
1069
- // lib/Buttons/addButton.tsx
1072
+ // lib/icons/closeIcon.tsx
1070
1073
  var React51 = __toESM(require("react"), 1);
1074
+ var CloseIcon = ({ color = "#3a3a3a", ...props }) => /* @__PURE__ */ React51.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "336", height: "336", viewBox: "0 0 336 336", fill: "none", ...props }, /* @__PURE__ */ React51.createElement("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M132.323 167.676L0 299.999L35.3553 335.356L167.68 203.032L300.003 335.356L335.36 299.999L203.037 167.676L335.357 35.3553L300 0L167.68 132.319L35.3593 0L0.00398954 35.3553L132.323 167.676Z", fill: color }));
1075
+ var closeIcon_default = CloseIcon;
1076
+
1077
+ // lib/icons/locationPinIcon.tsx
1078
+ var React52 = __toESM(require("react"), 1);
1079
+ var LocationPinIcon = ({ color = "#3a3a3a", ...props }) => /* @__PURE__ */ React52.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "21", height: "21", viewBox: "0 0 21 21", ...props }, /* @__PURE__ */ React52.createElement("g", { id: "Group_26169", "data-name": "Group 26169", transform: "translate(-147 -322)" }, /* @__PURE__ */ React52.createElement("rect", { id: "Rectangle_19841", "data-name": "Rectangle 19841", width: "21", height: "21", transform: "translate(147 322)", fill: "none" }), /* @__PURE__ */ React52.createElement("g", { id: "location", transform: "translate(150.096 323.076)" }, /* @__PURE__ */ React52.createElement("path", { id: "Path_60763", "data-name": "Path 60763", d: "M69.375,54.75a3.375,3.375,0,1,1,3.375-3.375A3.375,3.375,0,0,1,69.375,54.75Zm0-5.4A2.025,2.025,0,1,0,71.4,51.375,2.025,2.025,0,0,0,69.375,49.35Z", transform: "translate(-61.971 -43.968)", fill: color }), /* @__PURE__ */ React52.createElement("path", { id: "Path_60764", "data-name": "Path 60764", d: "M37.4,30.848l-5.678-6.7q-.118-.151-.234-.3A7.33,7.33,0,0,1,30,19.4a7.4,7.4,0,1,1,14.809,0,7.326,7.326,0,0,1-1.491,4.441v0s-.2.265-.232.3Zm-4.838-7.812s.158.207.193.252L37.4,28.766l4.651-5.486c.03-.037.187-.246.188-.246A5.991,5.991,0,0,0,43.462,19.4a6.058,6.058,0,0,0-12.116,0,5.994,5.994,0,0,0,1.22,3.632Z", transform: "translate(-30 -12)", fill: color }))));
1080
+ var locationPinIcon_default = LocationPinIcon;
1081
+
1082
+ // lib/Buttons/addButton.tsx
1083
+ var React53 = __toESM(require("react"), 1);
1071
1084
  var AddButton = ({ children, ...props }) => {
1072
- return /* @__PURE__ */ React51.createElement("button", { className: "add-btn", ...props }, "+ ", children);
1085
+ return /* @__PURE__ */ React53.createElement("button", { className: "add-btn", ...props }, "+ ", children);
1073
1086
  };
1074
1087
  var addButton_default = AddButton;
1075
1088
 
1076
1089
  // lib/Buttons/submitButton.tsx
1077
- var React52 = __toESM(require("react"), 1);
1090
+ var React54 = __toESM(require("react"), 1);
1078
1091
  var SubmitButton = ({
1079
1092
  children,
1080
1093
  type = "submit",
@@ -1090,22 +1103,103 @@ var SubmitButton = ({
1090
1103
  ...onClick ? {} : { type }
1091
1104
  // only set type when no onClick
1092
1105
  };
1093
- return /* @__PURE__ */ React52.createElement("button", { ...buttonProps }, loading ? "Loading..." : children);
1106
+ return /* @__PURE__ */ React54.createElement("button", { ...buttonProps }, loading ? "Loading..." : children);
1094
1107
  };
1095
1108
  var submitButton_default = SubmitButton;
1096
1109
 
1097
1110
  // lib/Buttons/cancelButton.tsx
1098
- var React53 = __toESM(require("react"), 1);
1099
- var CancelButton = ({ children, ...props }) => /* @__PURE__ */ React53.createElement("button", { className: "cancel-btn", ...props }, children);
1111
+ var React55 = __toESM(require("react"), 1);
1112
+ var CancelButton = ({ children, ...props }) => /* @__PURE__ */ React55.createElement("button", { className: "cancel-btn", ...props }, children);
1100
1113
  var cancelButton_default = CancelButton;
1101
1114
 
1115
+ // lib/Dialogs/BaseDialog.tsx
1116
+ var React56 = __toESM(require("react"), 1);
1117
+ var import_react13 = require("react");
1118
+ var BaseDialog = ({
1119
+ open = false,
1120
+ onConfirm,
1121
+ onClose,
1122
+ onCancel,
1123
+ children,
1124
+ minWidth,
1125
+ minHeight,
1126
+ customButtons,
1127
+ cancelText = "Cancel",
1128
+ confirmText = "Ok",
1129
+ submitText = "Submit",
1130
+ title = "",
1131
+ isLoading = false,
1132
+ disableConfirmBtn = false,
1133
+ fullScreen = false,
1134
+ loading = false,
1135
+ showCloseButton = true,
1136
+ buttonAlign = "flex-end",
1137
+ showCancelButton = true,
1138
+ formatTitle = true,
1139
+ fullWidth = false,
1140
+ className,
1141
+ dialogBodyStyle = {}
1142
+ }) => {
1143
+ const { theme } = useRufousTheme();
1144
+ const successBtnRef = (0, import_react13.useRef)(null);
1145
+ if (!open) return null;
1146
+ const renderButtons = () => /* @__PURE__ */ React56.createElement("div", { className: "dialog-footer", style: { justifyContent: buttonAlign } }, showCancelButton && /* @__PURE__ */ React56.createElement(
1147
+ "button",
1148
+ {
1149
+ className: "btn-cancel",
1150
+ onClick: onCancel || onClose,
1151
+ disabled: isLoading
1152
+ },
1153
+ cancelText
1154
+ ), onConfirm && /* @__PURE__ */ React56.createElement(
1155
+ "button",
1156
+ {
1157
+ ref: successBtnRef,
1158
+ className: "btn-confirm",
1159
+ disabled: disableConfirmBtn || loading,
1160
+ onClick: async () => {
1161
+ if (successBtnRef.current) successBtnRef.current.disabled = true;
1162
+ await onConfirm?.();
1163
+ if (successBtnRef.current) successBtnRef.current.disabled = false;
1164
+ }
1165
+ },
1166
+ loading ? /* @__PURE__ */ React56.createElement("span", { className: "spinner" }) : /* @__PURE__ */ React56.createElement("span", null, confirmText)
1167
+ ));
1168
+ return /* @__PURE__ */ React56.createElement("div", { className: `dialog-overlay ${fullScreen ? "fullscreen" : ""}` }, /* @__PURE__ */ React56.createElement(
1169
+ "div",
1170
+ {
1171
+ className: `dialog-container ${className || ""}`,
1172
+ style: {
1173
+ minWidth: minWidth || (fullScreen ? "100%" : "685px"),
1174
+ minHeight,
1175
+ width: fullWidth ? "100%" : "auto"
1176
+ }
1177
+ },
1178
+ /* @__PURE__ */ React56.createElement("div", { className: "dialog-title" }, /* @__PURE__ */ React56.createElement("h2", null, formatTitle ? title?.charAt(0).toUpperCase() + title?.slice(1).toLowerCase() : title), showCloseButton && /* @__PURE__ */ React56.createElement("button", { className: "btn-close", onClick: onClose }, /* @__PURE__ */ React56.createElement(closeIcon_default, { color: theme?.customStyles?.iconColor || "#707070" }))),
1179
+ /* @__PURE__ */ React56.createElement("div", { className: "dialog-divider" }),
1180
+ /* @__PURE__ */ React56.createElement(
1181
+ "div",
1182
+ {
1183
+ className: "dialog-body",
1184
+ style: {
1185
+ ...fullScreen ? { height: "100%" } : { maxHeight: "700px", minHeight },
1186
+ ...dialogBodyStyle
1187
+ }
1188
+ },
1189
+ children
1190
+ ),
1191
+ customButtons || renderButtons()
1192
+ ));
1193
+ };
1194
+ var BaseDialog_default = BaseDialog;
1195
+
1102
1196
  // lib/Contexts/rufousThemeProvider.tsx
1103
- var import_react13 = __toESM(require("react"), 1);
1104
- var RufousThemeContext = (0, import_react13.createContext)(null);
1197
+ var import_react14 = __toESM(require("react"), 1);
1198
+ var RufousThemeContext = (0, import_react14.createContext)(null);
1105
1199
  var RufousThemeProvider = ({ children }) => {
1106
- const [committedThemeKey, setCommittedThemeKey] = (0, import_react13.useState)("default");
1107
- const [previewThemeKey, setPreviewThemeKey] = (0, import_react13.useState)("default");
1108
- const [settings, setSettings] = (0, import_react13.useState)(null);
1200
+ const [committedThemeKey, setCommittedThemeKey] = (0, import_react14.useState)("default");
1201
+ const [previewThemeKey, setPreviewThemeKey] = (0, import_react14.useState)("default");
1202
+ const [settings, setSettings] = (0, import_react14.useState)(null);
1109
1203
  const getGeneralSettings = async () => {
1110
1204
  try {
1111
1205
  const theme = localStorage.getItem("theme") || "default";
@@ -1115,10 +1209,10 @@ var RufousThemeProvider = ({ children }) => {
1115
1209
  console.error("Error fetching general settings:", err);
1116
1210
  }
1117
1211
  };
1118
- (0, import_react13.useEffect)(() => {
1212
+ (0, import_react14.useEffect)(() => {
1119
1213
  getGeneralSettings();
1120
1214
  }, []);
1121
- const fullTheme = (0, import_react13.useMemo)(() => {
1215
+ const fullTheme = (0, import_react14.useMemo)(() => {
1122
1216
  return {
1123
1217
  themeKey: previewThemeKey || settings.theme,
1124
1218
  customStyles: APP_THEMES[previewThemeKey || settings.theme]
@@ -1131,7 +1225,7 @@ var RufousThemeProvider = ({ children }) => {
1131
1225
  setCommittedThemeKey(key);
1132
1226
  };
1133
1227
  const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
1134
- return /* @__PURE__ */ import_react13.default.createElement(
1228
+ return /* @__PURE__ */ import_react14.default.createElement(
1135
1229
  RufousThemeContext.Provider,
1136
1230
  {
1137
1231
  value: {
@@ -1145,7 +1239,7 @@ var RufousThemeProvider = ({ children }) => {
1145
1239
  updateSettings: (v) => setSettings(v)
1146
1240
  }
1147
1241
  },
1148
- /* @__PURE__ */ import_react13.default.createElement(
1242
+ /* @__PURE__ */ import_react14.default.createElement(
1149
1243
  "div",
1150
1244
  {
1151
1245
  className: `theme-${previewThemeKey || committedThemeKey || "default"}`
@@ -1154,7 +1248,7 @@ var RufousThemeProvider = ({ children }) => {
1154
1248
  )
1155
1249
  );
1156
1250
  };
1157
- var useRufousTheme = () => (0, import_react13.useContext)(RufousThemeContext);
1251
+ var useRufousTheme = () => (0, import_react14.useContext)(RufousThemeContext);
1158
1252
  // Annotate the CommonJS export names for ESM import in node:
1159
1253
  0 && (module.exports = {
1160
1254
  APP_THEMES,
@@ -1162,7 +1256,9 @@ var useRufousTheme = () => (0, import_react13.useContext)(RufousThemeContext);
1162
1256
  AddButton,
1163
1257
  ArchivedIcon,
1164
1258
  AssignGroupIcon,
1259
+ BaseDialog,
1165
1260
  CancelButton,
1261
+ CloseIcon,
1166
1262
  CopyIcon,
1167
1263
  DifficultyAllIcon,
1168
1264
  DifficultyEasyIcon,
@@ -1179,6 +1275,7 @@ var useRufousTheme = () => (0, import_react13.useContext)(RufousThemeContext);
1179
1275
  InactiveGroupIcon,
1180
1276
  IndustryIcon,
1181
1277
  InvoiceIcon,
1278
+ LocationPinIcon,
1182
1279
  LogsIcon,
1183
1280
  MinExperienceIcon,
1184
1281
  NineDotMenuIcon,
package/dist/main.css CHANGED
@@ -31,6 +31,59 @@
31
31
  cursor: not-allowed;
32
32
  }
33
33
  .submit-btn {
34
+ display: -webkit-inline-box;
35
+ display: -webkit-inline-flex;
36
+ display: -ms-inline-flexbox;
37
+ display: inline-flex;
38
+ -webkit-align-items: center;
39
+ -webkit-box-align: center;
40
+ -ms-flex-align: center;
41
+ align-items: center;
42
+ -webkit-box-pack: center;
43
+ -ms-flex-pack: center;
44
+ -webkit-justify-content: center;
45
+ justify-content: center;
46
+ position: relative;
47
+ box-sizing: border-box;
48
+ -webkit-tap-highlight-color: transparent;
49
+ background-color: transparent;
50
+ outline: 0;
51
+ margin: 0;
52
+ cursor: pointer;
53
+ -webkit-user-select: none;
54
+ -moz-user-select: none;
55
+ -ms-user-select: none;
56
+ user-select: none;
57
+ vertical-align: middle;
58
+ -moz-appearance: none;
59
+ -webkit-appearance: none;
60
+ -webkit-text-decoration: none;
61
+ text-decoration: none;
62
+ color: inherit;
63
+ font-family:
64
+ "Roboto",
65
+ "Helvetica",
66
+ "Arial",
67
+ sans-serif;
68
+ font-weight: 500;
69
+ font-size: 0.875rem;
70
+ line-height: 1.75;
71
+ letter-spacing: 0.02857em;
72
+ min-width: 64px;
73
+ padding: 6px 8px;
74
+ border-radius: 4px;
75
+ -webkit-transition:
76
+ background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
77
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
78
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
79
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
80
+ transition:
81
+ background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
82
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
83
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
84
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
85
+ background: #a81c07;
86
+ border: 1px solid #a81c07;
34
87
  background-color: #9b1906;
35
88
  color: #fff;
36
89
  font-size: 12px;
@@ -68,6 +121,98 @@
68
121
  color: #ffffff;
69
122
  }
70
123
 
124
+ /* lib/styles/dialog.css */
125
+ .dialog-overlay {
126
+ position: fixed;
127
+ inset: 0;
128
+ background: rgba(0, 0, 0, 0.5);
129
+ display: flex;
130
+ justify-content: center;
131
+ align-items: center;
132
+ z-index: 1300;
133
+ }
134
+ .dialog-container {
135
+ background: white;
136
+ border-radius: 8px;
137
+ max-height: 90vh;
138
+ display: flex;
139
+ flex-direction: column;
140
+ }
141
+ .dialog-title {
142
+ background: #fff;
143
+ padding: 8px 16px;
144
+ position: sticky;
145
+ top: 0;
146
+ display: flex;
147
+ justify-content: space-between;
148
+ align-items: center;
149
+ color: #707070;
150
+ z-index: 2;
151
+ }
152
+ .dialog-title h2 {
153
+ font-size: 1.125rem;
154
+ margin: 0;
155
+ }
156
+ .btn-close {
157
+ background: none;
158
+ border: none;
159
+ cursor: pointer;
160
+ }
161
+ .dialog-divider {
162
+ border-top: 1px solid #e0e0e0;
163
+ }
164
+ .dialog-body {
165
+ overflow: auto;
166
+ padding: 16px 30px;
167
+ flex: 1;
168
+ }
169
+ .dialog-footer {
170
+ display: flex;
171
+ gap: 8px;
172
+ padding: 8px 16px;
173
+ }
174
+ .btn-cancel {
175
+ border: 1px solid #a41b06;
176
+ border-radius: 34px;
177
+ padding: 7px 10px;
178
+ background: #fff;
179
+ color: #a41b06;
180
+ font-size: 12px;
181
+ cursor: pointer;
182
+ }
183
+ .btn-cancel:hover {
184
+ background: #f5f5f5;
185
+ }
186
+ .btn-confirm {
187
+ border-radius: 34px;
188
+ padding: 7px 16px;
189
+ background: #a21b07;
190
+ color: white;
191
+ font-size: 12px;
192
+ cursor: pointer;
193
+ border: none;
194
+ }
195
+ .btn-confirm:hover {
196
+ background: #a21b07;
197
+ }
198
+ .spinner {
199
+ border: 2px solid #f3f3f3;
200
+ border-top: 2px solid #c5c5c5;
201
+ border-radius: 50%;
202
+ width: 16px;
203
+ height: 16px;
204
+ animation: spin 1s linear infinite;
205
+ display: inline-block;
206
+ }
207
+ @keyframes spin {
208
+ 0% {
209
+ transform: rotate(0deg);
210
+ }
211
+ 100% {
212
+ transform: rotate(360deg);
213
+ }
214
+ }
215
+
71
216
  /* lib/style.css */
72
217
  .theme-rufous .act-icon svg {
73
218
  color: #a81c08 !important;
package/dist/main.d.cts CHANGED
@@ -49,8 +49,11 @@ export { default as MinExperienceIcon } from './icons/minExperienceIcon.cjs';
49
49
  export { default as ProjectIcon } from './icons/projectIcon.cjs';
50
50
  export { default as RolesIcon } from './icons/rolesIcon.cjs';
51
51
  export { default as RufousAiIcon } from './icons/rufousAiIcon.cjs';
52
+ export { default as CloseIcon } from './icons/closeIcon.cjs';
53
+ export { default as LocationPinIcon } from './icons/locationPinIcon.cjs';
52
54
  export { default as AddButton } from './Buttons/addButton.cjs';
53
55
  export { default as SubmitButton } from './Buttons/submitButton.cjs';
54
56
  export { default as CancelButton } from './Buttons/cancelButton.cjs';
57
+ export { default as BaseDialog } from './Dialogs/BaseDialog.cjs';
55
58
  export { RufousThemeProvider, useRufousTheme } from './Contexts/rufousThemeProvider.cjs';
56
59
  import 'react';
package/dist/main.d.ts CHANGED
@@ -49,8 +49,11 @@ export { default as MinExperienceIcon } from './icons/minExperienceIcon.js';
49
49
  export { default as ProjectIcon } from './icons/projectIcon.js';
50
50
  export { default as RolesIcon } from './icons/rolesIcon.js';
51
51
  export { default as RufousAiIcon } from './icons/rufousAiIcon.js';
52
+ export { default as CloseIcon } from './icons/closeIcon.js';
53
+ export { default as LocationPinIcon } from './icons/locationPinIcon.js';
52
54
  export { default as AddButton } from './Buttons/addButton.js';
53
55
  export { default as SubmitButton } from './Buttons/submitButton.js';
54
56
  export { default as CancelButton } from './Buttons/cancelButton.js';
57
+ export { default as BaseDialog } from './Dialogs/BaseDialog.js';
55
58
  export { RufousThemeProvider, useRufousTheme } from './Contexts/rufousThemeProvider.js';
56
59
  import 'react';