@rufous/ui 0.3.52 → 0.3.53

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.
package/dist/main.cjs CHANGED
@@ -37,6 +37,7 @@ __export(main_exports, {
37
37
  AddButton: () => addButton_default,
38
38
  AddIcon: () => AddIcon,
39
39
  AddressLookup: () => AddressLookup_default,
40
+ Alert: () => Alert,
40
41
  AlertTriangleIcon: () => alertTriangleIcon_default,
41
42
  ArchivedIcon: () => archivedIcon_default,
42
43
  ArrowDownIcon: () => arrowDownIcon_default,
@@ -54,6 +55,7 @@ __export(main_exports, {
54
55
  Breadcrumbs: () => Breadcrumbs,
55
56
  BusinessIcon: () => businessIcon_default,
56
57
  Button: () => Button,
58
+ ButtonGroup: () => ButtonGroup,
57
59
  CalendarIcon: () => calendarIcon_default,
58
60
  CameraIcon: () => cameraIcon_default,
59
61
  CancelButton: () => cancelButton_default,
@@ -77,6 +79,7 @@ __export(main_exports, {
77
79
  CloseIcon: () => closeIcon_default,
78
80
  Collapse: () => Collapse,
79
81
  ContactsIcon: () => contactsIcon_default,
82
+ Container: () => Container,
80
83
  CopyIcon: () => copyIcon_default,
81
84
  CustomImage: () => CustomImage,
82
85
  CustomTaskItem: () => CustomTaskItem,
@@ -106,6 +109,7 @@ __export(main_exports, {
106
109
  FlagIcon: () => flagIcon_default,
107
110
  FontFamily: () => FontFamily,
108
111
  FontSize: () => FontSize,
112
+ FormGroup: () => FormGroup,
109
113
  FunctionIcon: () => functionIcon_default,
110
114
  GlobeIcon: () => globeIcon_default,
111
115
  Grid: () => Grid,
@@ -124,6 +128,7 @@ __export(main_exports, {
124
128
  InfoIcon: () => infoIcon_default,
125
129
  InvoiceIcon: () => invoiceIcon_default,
126
130
  LineHeight: () => LineHeight,
131
+ LinearProgress: () => LinearProgress,
127
132
  Link: () => Link,
128
133
  LinkIcon: () => linkIcon_default,
129
134
  List: () => List,
@@ -155,6 +160,7 @@ __export(main_exports, {
155
160
  NotesIcon: () => notesIcon_default,
156
161
  NotificationIcon: () => notificationIcon_default,
157
162
  OpenInFullIcon: () => openInFullIcon_default,
163
+ Pagination: () => Pagination,
158
164
  Paper: () => Paper,
159
165
  PaperclipIcon: () => paperclipIcon_default,
160
166
  PersonSearchIcon: () => personSearchIcon_default,
@@ -1764,8 +1770,48 @@ var IconButton = React130.forwardRef(
1764
1770
  );
1765
1771
  IconButton.displayName = "IconButton";
1766
1772
 
1767
- // lib/Dialogs/BaseDialog.tsx
1773
+ // lib/Buttons/ButtonGroup.tsx
1768
1774
  var React131 = __toESM(require("react"), 1);
1775
+ var ButtonGroup = React131.forwardRef(
1776
+ ({
1777
+ orientation = "horizontal",
1778
+ variant = "outlined",
1779
+ size = "medium",
1780
+ fullWidth = false,
1781
+ disabled = false,
1782
+ sx,
1783
+ className,
1784
+ children,
1785
+ ...rest
1786
+ }, ref) => {
1787
+ const sxClass = useSx(sx);
1788
+ const classes = [
1789
+ "rf-button-group",
1790
+ `rf-button-group--${orientation}`,
1791
+ `rf-button-group--${variant}`,
1792
+ `rf-button-group--${size}`,
1793
+ fullWidth ? "rf-button-group--full" : "",
1794
+ sxClass,
1795
+ className
1796
+ ].filter(Boolean).join(" ");
1797
+ const childArray = React131.Children.toArray(children);
1798
+ return /* @__PURE__ */ React131.createElement("div", { ref, role: "group", className: classes, ...rest }, childArray.map((child, idx) => {
1799
+ if (!React131.isValidElement(child)) return child;
1800
+ const childProps = child.props;
1801
+ return React131.cloneElement(child, {
1802
+ ...childProps,
1803
+ disabled: disabled || childProps.disabled || false,
1804
+ "data-rf-bg-index": idx,
1805
+ "data-rf-bg-last": idx === childArray.length - 1 ? "true" : void 0,
1806
+ key: child.key ?? idx
1807
+ });
1808
+ }));
1809
+ }
1810
+ );
1811
+ ButtonGroup.displayName = "ButtonGroup";
1812
+
1813
+ // lib/Dialogs/BaseDialog.tsx
1814
+ var React132 = __toESM(require("react"), 1);
1769
1815
  var import_react8 = require("react");
1770
1816
  var import_react_dom = __toESM(require("react-dom"), 1);
1771
1817
 
@@ -2060,7 +2106,7 @@ var __iconNode22 = [
2060
2106
  var X = createLucideIcon("x", __iconNode22);
2061
2107
 
2062
2108
  // lib/Dialogs/BaseDialog.tsx
2063
- var DialogDepthContext = React131.createContext(0);
2109
+ var DialogDepthContext = React132.createContext(0);
2064
2110
  var MIN_LOADING_MS2 = 1500;
2065
2111
  var BaseDialog = ({
2066
2112
  open = false,
@@ -2149,7 +2195,7 @@ var BaseDialog = ({
2149
2195
  }, [open, portalZ]);
2150
2196
  if (!open && !TransitionComponent) return null;
2151
2197
  const isButtonLoading = isSubmitting || loading;
2152
- const renderButtons = () => /* @__PURE__ */ React131.createElement(React131.Fragment, null, showCancelButton && /* @__PURE__ */ React131.createElement(
2198
+ const renderButtons = () => /* @__PURE__ */ React132.createElement(React132.Fragment, null, showCancelButton && /* @__PURE__ */ React132.createElement(
2153
2199
  "button",
2154
2200
  {
2155
2201
  className: "btn-cancel",
@@ -2158,7 +2204,7 @@ var BaseDialog = ({
2158
2204
  type: "button"
2159
2205
  },
2160
2206
  cancelText
2161
- ), form ? /* @__PURE__ */ React131.createElement(
2207
+ ), form ? /* @__PURE__ */ React132.createElement(
2162
2208
  "button",
2163
2209
  {
2164
2210
  className: "btn-confirm",
@@ -2166,9 +2212,9 @@ var BaseDialog = ({
2166
2212
  style: { position: "relative" },
2167
2213
  type: "submit"
2168
2214
  },
2169
- /* @__PURE__ */ React131.createElement("span", { style: { visibility: isButtonLoading ? "hidden" : "visible" } }, submitText),
2170
- isButtonLoading && /* @__PURE__ */ React131.createElement("span", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React131.createElement(circularProgress_default, { size: 18, color: "#ffffff80" }))
2171
- ) : onConfirm && /* @__PURE__ */ React131.createElement(
2215
+ /* @__PURE__ */ React132.createElement("span", { style: { visibility: isButtonLoading ? "hidden" : "visible" } }, submitText),
2216
+ isButtonLoading && /* @__PURE__ */ React132.createElement("span", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React132.createElement(circularProgress_default, { size: 18, color: "#ffffff80" }))
2217
+ ) : onConfirm && /* @__PURE__ */ React132.createElement(
2172
2218
  "button",
2173
2219
  {
2174
2220
  className: "btn-confirm",
@@ -2188,18 +2234,18 @@ var BaseDialog = ({
2188
2234
  }
2189
2235
  }
2190
2236
  },
2191
- /* @__PURE__ */ React131.createElement("span", { style: { visibility: isButtonLoading ? "hidden" : "visible" } }, confirmText),
2192
- isButtonLoading && /* @__PURE__ */ React131.createElement("span", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React131.createElement(circularProgress_default, { size: 18, color: "#ffffff80" }))
2237
+ /* @__PURE__ */ React132.createElement("span", { style: { visibility: isButtonLoading ? "hidden" : "visible" } }, confirmText),
2238
+ isButtonLoading && /* @__PURE__ */ React132.createElement("span", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ React132.createElement(circularProgress_default, { size: 18, color: "#ffffff80" }))
2193
2239
  ));
2194
2240
  const containerClass = ["dialog-container", size ? `size-${size}` : "", sxClass, className].filter(Boolean).join(" ");
2195
2241
  const containerStyle = { minWidth, minHeight };
2196
- const dialogInner = /* @__PURE__ */ React131.createElement(React131.Fragment, null, /* @__PURE__ */ React131.createElement("div", { className: "dialog-title" }, /* @__PURE__ */ React131.createElement("h2", null, formatTitle ? title?.charAt(0).toUpperCase() + title?.slice(1) : title), showCloseButton && /* @__PURE__ */ React131.createElement("button", { className: "btn-close", type: "button", onClick: onClose }, /* @__PURE__ */ React131.createElement(
2242
+ const dialogInner = /* @__PURE__ */ React132.createElement(React132.Fragment, null, /* @__PURE__ */ React132.createElement("div", { className: "dialog-title" }, /* @__PURE__ */ React132.createElement("h2", null, formatTitle ? title?.charAt(0).toUpperCase() + title?.slice(1) : title), showCloseButton && /* @__PURE__ */ React132.createElement("button", { className: "btn-close", type: "button", onClick: onClose }, /* @__PURE__ */ React132.createElement(
2197
2243
  X,
2198
2244
  {
2199
2245
  size: 18,
2200
2246
  color: themeConfig?.icon || "#666666"
2201
2247
  }
2202
- ))), /* @__PURE__ */ React131.createElement("div", { className: "dialog-divider" }), /* @__PURE__ */ React131.createElement(
2248
+ ))), /* @__PURE__ */ React132.createElement("div", { className: "dialog-divider" }), /* @__PURE__ */ React132.createElement(
2203
2249
  "div",
2204
2250
  {
2205
2251
  className: "dialog-body",
@@ -2209,8 +2255,8 @@ var BaseDialog = ({
2209
2255
  }
2210
2256
  },
2211
2257
  children
2212
- ), /* @__PURE__ */ React131.createElement("div", { className: "dialog-divider" }), /* @__PURE__ */ React131.createElement("div", { className: "dialog-footer", style: { justifyContent: buttonAlign } }, customButtons || renderButtons()));
2213
- const dialogContent = form ? /* @__PURE__ */ React131.createElement(
2258
+ ), /* @__PURE__ */ React132.createElement("div", { className: "dialog-divider" }), /* @__PURE__ */ React132.createElement("div", { className: "dialog-footer", style: { justifyContent: buttonAlign } }, customButtons || renderButtons()));
2259
+ const dialogContent = form ? /* @__PURE__ */ React132.createElement(
2214
2260
  "form",
2215
2261
  {
2216
2262
  ref: setContainerRef,
@@ -2222,7 +2268,7 @@ var BaseDialog = ({
2222
2268
  }
2223
2269
  },
2224
2270
  dialogInner
2225
- ) : /* @__PURE__ */ React131.createElement(
2271
+ ) : /* @__PURE__ */ React132.createElement(
2226
2272
  "div",
2227
2273
  {
2228
2274
  ref: setContainerRef,
@@ -2231,17 +2277,17 @@ var BaseDialog = ({
2231
2277
  },
2232
2278
  dialogInner
2233
2279
  );
2234
- const overlayNode = (content) => /* @__PURE__ */ React131.createElement(
2280
+ const overlayNode = (content) => /* @__PURE__ */ React132.createElement(
2235
2281
  "div",
2236
2282
  {
2237
2283
  className: `dialog-overlay ${size === "fullScreen" ? "overlay-fullscreen" : ""}`,
2238
2284
  style: { zIndex: overlayZ }
2239
2285
  },
2240
- /* @__PURE__ */ React131.createElement(DialogDepthContext.Provider, { value: depth + 1 }, content)
2286
+ /* @__PURE__ */ React132.createElement(DialogDepthContext.Provider, { value: depth + 1 }, content)
2241
2287
  );
2242
2288
  if (TransitionComponent) {
2243
2289
  return import_react_dom.default.createPortal(
2244
- /* @__PURE__ */ React131.createElement(
2290
+ /* @__PURE__ */ React132.createElement(
2245
2291
  TransitionComponent,
2246
2292
  {
2247
2293
  in: open,
@@ -4826,9 +4872,9 @@ var DateRangeField = ({
4826
4872
  setSelecting("start");
4827
4873
  };
4828
4874
  const handlePreset = (presetId) => {
4829
- const range = getPresetRange(presetId, draftStart);
4830
- const s2 = isoToDate2(range.start);
4831
- const e = isoToDate2(range.end);
4875
+ const range2 = getPresetRange(presetId, draftStart);
4876
+ const s2 = isoToDate2(range2.start);
4877
+ const e = isoToDate2(range2.end);
4832
4878
  setDraftStart(s2);
4833
4879
  setDraftEnd(e);
4834
4880
  setStartInputStr(s2 ? formatShort(s2) : "");
@@ -5121,14 +5167,84 @@ var DateRangeField = ({
5121
5167
  };
5122
5168
  DateRangeField.displayName = "DateRangeField";
5123
5169
 
5170
+ // lib/Progress/LinearProgress.tsx
5171
+ var React141 = __toESM(require("react"), 1);
5172
+ var clamp = (n) => Math.max(0, Math.min(100, n));
5173
+ var LinearProgress = React141.forwardRef(
5174
+ ({
5175
+ variant = "indeterminate",
5176
+ value = 0,
5177
+ valueBuffer = 0,
5178
+ color = "var(--primary-color, #a81c08)",
5179
+ trackColor = "rgba(0,0,0,0.08)",
5180
+ thickness = 4,
5181
+ sx,
5182
+ className,
5183
+ style,
5184
+ ...rest
5185
+ }, ref) => {
5186
+ const sxClass = useSx(sx);
5187
+ const classes = [
5188
+ "rf-linear-progress",
5189
+ `rf-linear-progress--${variant}`,
5190
+ sxClass,
5191
+ className
5192
+ ].filter(Boolean).join(" ");
5193
+ const v = clamp(value);
5194
+ const vb = clamp(valueBuffer);
5195
+ const ariaProps = variant === "determinate" || variant === "buffer" ? {
5196
+ "aria-valuenow": Math.round(v),
5197
+ "aria-valuemin": 0,
5198
+ "aria-valuemax": 100
5199
+ } : {};
5200
+ return /* @__PURE__ */ React141.createElement(
5201
+ "div",
5202
+ {
5203
+ ref,
5204
+ role: "progressbar",
5205
+ ...ariaProps,
5206
+ className: classes,
5207
+ style: {
5208
+ height: thickness,
5209
+ background: trackColor,
5210
+ ...style
5211
+ },
5212
+ ...rest
5213
+ },
5214
+ variant === "buffer" && /* @__PURE__ */ React141.createElement(
5215
+ "span",
5216
+ {
5217
+ className: "rf-linear-progress__buffer",
5218
+ style: { width: `${vb}%`, background: color, opacity: 0.3 }
5219
+ }
5220
+ ),
5221
+ /* @__PURE__ */ React141.createElement(
5222
+ "span",
5223
+ {
5224
+ className: "rf-linear-progress__bar",
5225
+ style: variant === "determinate" || variant === "buffer" ? { width: `${v}%`, background: color } : { background: color }
5226
+ }
5227
+ ),
5228
+ variant === "indeterminate" && /* @__PURE__ */ React141.createElement(
5229
+ "span",
5230
+ {
5231
+ className: "rf-linear-progress__bar rf-linear-progress__bar--secondary",
5232
+ style: { background: color }
5233
+ }
5234
+ )
5235
+ );
5236
+ }
5237
+ );
5238
+ LinearProgress.displayName = "LinearProgress";
5239
+
5124
5240
  // lib/Progress/RufousLogoLoader.tsx
5125
- var React140 = __toESM(require("react"), 1);
5241
+ var React142 = __toESM(require("react"), 1);
5126
5242
  var _uid = 0;
5127
5243
  var RufousLogoLoader = ({ size = 80, sx, className }) => {
5128
- const clipId = React140.useRef(`rll-${++_uid}`).current;
5244
+ const clipId = React142.useRef(`rll-${++_uid}`).current;
5129
5245
  const height = size * (38.795 / 54.585);
5130
5246
  const sxClass = useSx(sx);
5131
- return /* @__PURE__ */ React140.createElement("div", { className: ["rufous-logo-loader", sxClass, className].filter(Boolean).join(" "), style: { width: size, height } }, /* @__PURE__ */ React140.createElement(
5247
+ return /* @__PURE__ */ React142.createElement("div", { className: ["rufous-logo-loader", sxClass, className].filter(Boolean).join(" "), style: { width: size, height } }, /* @__PURE__ */ React142.createElement(
5132
5248
  "svg",
5133
5249
  {
5134
5250
  xmlns: "http://www.w3.org/2000/svg",
@@ -5137,14 +5253,14 @@ var RufousLogoLoader = ({ size = 80, sx, className }) => {
5137
5253
  height,
5138
5254
  className: "rufous-logo-loader__svg"
5139
5255
  },
5140
- /* @__PURE__ */ React140.createElement("defs", null, /* @__PURE__ */ React140.createElement("clipPath", { id: clipId }, /* @__PURE__ */ React140.createElement(
5256
+ /* @__PURE__ */ React142.createElement("defs", null, /* @__PURE__ */ React142.createElement("clipPath", { id: clipId }, /* @__PURE__ */ React142.createElement(
5141
5257
  "path",
5142
5258
  {
5143
5259
  transform: "translate(2208 18.205)",
5144
5260
  d: "M.7,38.8a3.783,3.783,0,0,1-.5-.045l-.031,0A.26.26,0,0,1,0,38.564a.279.279,0,0,1,.14-.2c.222-.126.45-.251.671-.371l.047-.026c.357-.194.8-.435,1.209-.685.783-.479,1.565-.993,2.32-1.489l.033-.022.218-.143.49-.32c.575-.374,1.226-.8,1.824-1.241.98-.726,1.834-1.407,2.611-2.081a22.444,22.444,0,0,0,1.783-1.774A14.2,14.2,0,0,0,12.5,28.749l.012-.016a15.8,15.8,0,0,0,1.151-1.8,10.351,10.351,0,0,0,.586-1.511l0-.011.092-.278a4.425,4.425,0,0,0,.14-.583l.007-.036c.024-.119.048-.243.079-.363a4.639,4.639,0,0,0-.034-2.566c-.064-.212-.126-.43-.184-.636l-.008-.028c-.111-.391-.225-.8-.369-1.181a8.71,8.71,0,0,0-2.279-3.24,14.363,14.363,0,0,0-3.239-2.326c-.75-.4-1.553-.727-2.329-1.046L6.1,13.114l-.157-.065c-.294-.122-.6-.221-.9-.318l-.025-.008c-.19-.061-.427-.136-.649-.218-.108-.04-.265-.172-.252-.229a.7.7,0,0,1,.235-.4.915.915,0,0,1,.449-.112c.383-.029.77-.063,1.165-.1.969-.085,1.971-.174,2.962-.181h.119a13.145,13.145,0,0,1,2.907.315,11.888,11.888,0,0,1,3.128,1.123,10.286,10.286,0,0,1,2.3,1.554.92.92,0,0,1,.273.4,12.722,12.722,0,0,1,.458,3.3c-.009,1.494-.014,2.867-.014,4.2,0,.309.013.588.039.852a1.013,1.013,0,0,0,.078.26l0,.01c.027.067.051.129.077.207.029-.064.054-.116.076-.161l.009-.017.006-.012a.823.823,0,0,0,.076-.189c.051-.247.1-.494.164-.767.136-.618.276-1.257.359-1.9a24.362,24.362,0,0,0,0-6.777,13.01,13.01,0,0,0-.559-2.1c-.061-.185-.125-.382-.187-.579a9.42,9.42,0,0,0-.583-1.469c-.367-.727-.786-1.449-1.184-2.126a9.376,9.376,0,0,0-.643-.918c-.076-.1-.151-.2-.224-.3L15.548,6.3a8.128,8.128,0,0,0-.865-1.057,32.021,32.021,0,0,0-2.466-2.183,12.673,12.673,0,0,0-1.905-1.188c-.48-.256-1-.485-1.462-.687-.221-.1-.457-.2-.683-.306a.663.663,0,0,1-.11-.071L8.039.795c-.027-.02-.058-.043-.1-.069L8.062.667,8.108.644a1.786,1.786,0,0,1,.27-.12A11.679,11.679,0,0,1,11.866,0a13.332,13.332,0,0,1,1.769.121A13.927,13.927,0,0,1,15.9.693l.471.147a10.775,10.775,0,0,1,1.656.658,9.622,9.622,0,0,1,1.768,1.041,32.024,32.024,0,0,1,3.092,2.717,25.62,25.62,0,0,1,2.245,2.829l.084.117c.617.86,1.171,1.777,1.678,2.641.255.435.484.9.687,1.3.14.281.285.572.436.854.262.491.534.977.835,1.516l.005.01q.169.3.337.6c.064.116.13.232.2.347l.027.047c.12.212.244.431.357.651a8.518,8.518,0,0,0,2.121,2.695c.065.024.137.054.212.086l.013.006a1.268,1.268,0,0,0,.376.123.087.087,0,0,0,.063-.02.209.209,0,0,0,.083-.151c0-.083-.08-.153-.157-.22a.694.694,0,0,1-.135-.142c-.134-.216-.273-.436-.407-.649l-.063-.1c-.373-.587-.8-1.251-1.157-1.923s-.666-1.373-.964-2.057l0-.008q-.123-.284-.247-.564a1.707,1.707,0,0,1,.239-1.554l.026-.046.005-.009A12.918,12.918,0,0,1,31.408,9.3,7.814,7.814,0,0,1,33.75,7.612a5.391,5.391,0,0,1,2.218-.444,11.369,11.369,0,0,1,1.882.186,9.211,9.211,0,0,1,2.845,1.022c.138.071.261.135.373.188a4.155,4.155,0,0,0,1.849.464h.093c1.993-.052,4-.14,5.95-.224l.846-.036c.9-.038,1.808-.066,2.682-.093L52.7,8.67l1.007-.031h.041a1.787,1.787,0,0,1,.73.163c.1.051.109.256.109.318,0,.081-.147.169-.257.175-.466.028-.994.043-1.485.043a37.855,37.855,0,0,0-6.3.577A9.221,9.221,0,0,0,42.7,11.3a7.884,7.884,0,0,0-1.565,1.5c-.593.743-1.116,1.545-1.621,2.321l-.121.185c-.228.35-.435.709-.662,1.109l-.041.071c-.136.236-.276.481-.42.717l-.007.012c-.349.572-.709,1.162-1.1,1.716l-.216.307-.01.014a21.585,21.585,0,0,1-1.451,1.907c-1.317,1.485-2.538,2.8-3.734,4.006a30.822,30.822,0,0,1-2.5,2.207c-.548.446-1.139.86-1.71,1.26l-.01.007q-.254.177-.5.355c-.536.379-1.109.78-1.7,1.157-.545.35-1.143.71-1.828,1.1-.842.483-1.586.9-2.275,1.26-.271.144-.553.272-.868.412-.13.058-.3.135-.467.213a6.838,6.838,0,0,1-1.18.3,5.079,5.079,0,0,1,.647-.771l.008-.008c.132-.136.251-.26.365-.393l.048-.056c.566-.667,1.151-1.357,1.7-2.059s1.126-1.439,1.649-2.2c.4-.579.749-1.2,1.134-1.888l.016-.028c.406-.734.826-1.493,1.181-2.266.274-.6.733-1.787.866-2.189l.023-.07c.13-.389.215-.646-.013-.916a.369.369,0,0,1-.041.031l0,0c-.028.021-.055.041-.058.065a2.307,2.307,0,0,1-.146.5,5.257,5.257,0,0,1-.374.709c-.281.468-.536.959-.782,1.434-.2.385-.379.731-.57,1.069a20.042,20.042,0,0,1-1.161,1.871,30.689,30.689,0,0,1-1.985,2.531c-.74.821-1.567,1.648-2.6,2.6a21.448,21.448,0,0,1-2.1,1.669c-.85.606-1.754,1.2-2.688,1.768a17.867,17.867,0,0,1-1.993,1.037c-.994.445-2.066.891-3.185,1.324a12.127,12.127,0,0,1-1.714.514c-.955.213-1.969.413-3.1.611-1.023.18-2.054.328-2.927.449A1.41,1.41,0,0,1,.7,38.8ZM37.945,10.58l-.007,0a.583.583,0,0,0-.223.048.677.677,0,0,0-.437.555.637.637,0,0,0,.426.527.621.621,0,0,0,.209.046h.016a.72.72,0,0,0,.464-.194.676.676,0,0,0,.194-.282l0-.011,0-.005,0-.006,0-.009a.415.415,0,0,0,.014-.109.734.734,0,0,0-.657-.56Z"
5145
5261
  }
5146
5262
  ))),
5147
- /* @__PURE__ */ React140.createElement("g", { transform: "translate(-123.275 -24)" }, /* @__PURE__ */ React140.createElement("g", { transform: "translate(-2084.725 5.795)", clipPath: `url(#${clipId})` }, /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-1", width: "40", height: "6", transform: "translate(2208 58) rotate(-90)", fill: "#d07f6f" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-2", width: "40", height: "6", transform: "translate(2214 58) rotate(-90)", fill: "#c66958" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-3", width: "40", height: "7", transform: "translate(2220 58) rotate(-90)", fill: "#bb5341" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-4", width: "40", height: "6", transform: "translate(2227 58) rotate(-90)", fill: "#b03a28" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-5", width: "40", height: "6", transform: "translate(2233 58) rotate(-90)", fill: "#a41b06" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-6", width: "40", height: "6", transform: "translate(2239 58) rotate(-90)", fill: "#8e1604" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-7", width: "40", height: "6", transform: "translate(2245 58) rotate(-90)", fill: "#791103" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-8", width: "40", height: "5", transform: "translate(2251 58) rotate(-90)", fill: "#640c02" }), /* @__PURE__ */ React140.createElement("rect", { className: "rufous-ls rufous-ls-9", width: "40", height: "7", transform: "translate(2256 58) rotate(-90)", fill: "#500801" })))
5263
+ /* @__PURE__ */ React142.createElement("g", { transform: "translate(-123.275 -24)" }, /* @__PURE__ */ React142.createElement("g", { transform: "translate(-2084.725 5.795)", clipPath: `url(#${clipId})` }, /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-1", width: "40", height: "6", transform: "translate(2208 58) rotate(-90)", fill: "#d07f6f" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-2", width: "40", height: "6", transform: "translate(2214 58) rotate(-90)", fill: "#c66958" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-3", width: "40", height: "7", transform: "translate(2220 58) rotate(-90)", fill: "#bb5341" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-4", width: "40", height: "6", transform: "translate(2227 58) rotate(-90)", fill: "#b03a28" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-5", width: "40", height: "6", transform: "translate(2233 58) rotate(-90)", fill: "#a41b06" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-6", width: "40", height: "6", transform: "translate(2239 58) rotate(-90)", fill: "#8e1604" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-7", width: "40", height: "6", transform: "translate(2245 58) rotate(-90)", fill: "#791103" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-8", width: "40", height: "5", transform: "translate(2251 58) rotate(-90)", fill: "#640c02" }), /* @__PURE__ */ React142.createElement("rect", { className: "rufous-ls rufous-ls-9", width: "40", height: "7", transform: "translate(2256 58) rotate(-90)", fill: "#500801" })))
5148
5264
  ));
5149
5265
  };
5150
5266
 
@@ -6576,7 +6692,7 @@ Select.displayName = "Select";
6576
6692
 
6577
6693
  // lib/Slider/Slider.tsx
6578
6694
  var import_react19 = __toESM(require("react"), 1);
6579
- function clamp(val, min, max) {
6695
+ function clamp2(val, min, max) {
6580
6696
  return Math.max(min, Math.min(max, val));
6581
6697
  }
6582
6698
  function snapToStep(val, min, step) {
@@ -6598,7 +6714,7 @@ var Slider = import_react19.default.forwardRef(function Slider2(props, ref) {
6598
6714
  size = "medium",
6599
6715
  orientation = "horizontal",
6600
6716
  valueLabelDisplay = "auto",
6601
- range = false,
6717
+ range: range2 = false,
6602
6718
  label,
6603
6719
  className = "",
6604
6720
  style,
@@ -6608,7 +6724,7 @@ var Slider = import_react19.default.forwardRef(function Slider2(props, ref) {
6608
6724
  const trackRef = (0, import_react19.useRef)(null);
6609
6725
  const draggingThumb = (0, import_react19.useRef)(null);
6610
6726
  const [dragging, setDragging] = (0, import_react19.useState)(null);
6611
- const isRange = range || Array.isArray(value);
6727
+ const isRange = range2 || Array.isArray(value);
6612
6728
  const rawVal = value ?? (isRange ? [min, max] : min);
6613
6729
  const vals = isRange ? Array.isArray(rawVal) ? [rawVal[0], rawVal[1]] : [rawVal, rawVal] : [rawVal, rawVal];
6614
6730
  const computedMarks = [];
@@ -6628,9 +6744,9 @@ var Slider = import_react19.default.forwardRef(function Slider2(props, ref) {
6628
6744
  } else {
6629
6745
  ratio = (e.clientX - rect.left) / rect.width;
6630
6746
  }
6631
- ratio = clamp(ratio, 0, 1);
6747
+ ratio = clamp2(ratio, 0, 1);
6632
6748
  const raw = min + ratio * (max - min);
6633
- return clamp(snapToStep(raw, min, step), min, max);
6749
+ return clamp2(snapToStep(raw, min, step), min, max);
6634
6750
  }, [min, max, step, orientation]);
6635
6751
  (0, import_react19.useEffect)(() => {
6636
6752
  if (dragging === null) return;
@@ -6688,10 +6804,10 @@ var Slider = import_react19.default.forwardRef(function Slider2(props, ref) {
6688
6804
  let next = current;
6689
6805
  if (e.key === "ArrowRight" || e.key === "ArrowUp") {
6690
6806
  e.preventDefault();
6691
- next = clamp(snapToStep(current + step, min, step), min, max);
6807
+ next = clamp2(snapToStep(current + step, min, step), min, max);
6692
6808
  } else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
6693
6809
  e.preventDefault();
6694
- next = clamp(snapToStep(current - step, min, step), min, max);
6810
+ next = clamp2(snapToStep(current - step, min, step), min, max);
6695
6811
  } else if (e.key === "Home") {
6696
6812
  e.preventDefault();
6697
6813
  next = min;
@@ -6938,6 +7054,25 @@ var RadioGroup = import_react21.default.forwardRef(function RadioGroup2(props, r
6938
7054
  });
6939
7055
  RadioGroup.displayName = "RadioGroup";
6940
7056
 
7057
+ // lib/FormGroup/FormGroup.tsx
7058
+ var React148 = __toESM(require("react"), 1);
7059
+ var FormGroup = React148.forwardRef(
7060
+ ({ row = false, spacing, sx, className, style, children, ...rest }, ref) => {
7061
+ const sxClass = useSx(sx);
7062
+ const classes = ["rf-form-group", sxClass, className].filter(Boolean).join(" ");
7063
+ const gap = spacing === void 0 ? row ? "8px" : "4px" : typeof spacing === "number" ? `${spacing * 8}px` : spacing;
7064
+ const inlineStyle = {
7065
+ display: "flex",
7066
+ flexDirection: row ? "row" : "column",
7067
+ flexWrap: row ? "wrap" : "nowrap",
7068
+ gap,
7069
+ ...style
7070
+ };
7071
+ return /* @__PURE__ */ React148.createElement("div", { ref, className: classes, style: inlineStyle, ...rest }, children);
7072
+ }
7073
+ );
7074
+ FormGroup.displayName = "FormGroup";
7075
+
6941
7076
  // lib/Rating/Rating.tsx
6942
7077
  var import_react22 = __toESM(require("react"), 1);
6943
7078
  var starSize = { small: 18, medium: 24, large: 32 };
@@ -7726,12 +7861,12 @@ var Skeleton = ({
7726
7861
  Skeleton.displayName = "Skeleton";
7727
7862
 
7728
7863
  // lib/Box/Box.tsx
7729
- var React154 = __toESM(require("react"), 1);
7864
+ var React157 = __toESM(require("react"), 1);
7730
7865
  function sp(val) {
7731
7866
  if (val === void 0) return void 0;
7732
7867
  return typeof val === "number" ? `${val * 8}px` : val;
7733
7868
  }
7734
- var Box = React154.forwardRef(
7869
+ var Box = React157.forwardRef(
7735
7870
  ({
7736
7871
  component = "div",
7737
7872
  children,
@@ -7831,18 +7966,18 @@ var Box = React154.forwardRef(
7831
7966
  };
7832
7967
  const classes = ["rf-box", sxClass, className].filter(Boolean).join(" ");
7833
7968
  const Tag = component;
7834
- return /* @__PURE__ */ React154.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, children);
7969
+ return /* @__PURE__ */ React157.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, children);
7835
7970
  }
7836
7971
  );
7837
7972
  Box.displayName = "Box";
7838
7973
 
7839
7974
  // lib/Stack/Stack.tsx
7840
- var React155 = __toESM(require("react"), 1);
7975
+ var React158 = __toESM(require("react"), 1);
7841
7976
  function sp2(val) {
7842
7977
  if (val === void 0) return void 0;
7843
7978
  return typeof val === "number" ? `${val * 8}px` : val;
7844
7979
  }
7845
- var Stack = React155.forwardRef(
7980
+ var Stack = React158.forwardRef(
7846
7981
  ({
7847
7982
  direction = "column",
7848
7983
  spacing,
@@ -7919,14 +8054,14 @@ var Stack = React155.forwardRef(
7919
8054
  const classes = ["rf-stack", sxClass, className].filter(Boolean).join(" ");
7920
8055
  let content;
7921
8056
  if (divider) {
7922
- const childArray = React155.Children.toArray(children).filter(
8057
+ const childArray = React158.Children.toArray(children).filter(
7923
8058
  (child) => child !== null && child !== void 0
7924
8059
  );
7925
8060
  content = childArray.reduce((acc, child, idx) => {
7926
8061
  acc.push(child);
7927
8062
  if (idx < childArray.length - 1) {
7928
8063
  acc.push(
7929
- /* @__PURE__ */ React155.createElement("div", { key: `divider-${idx}`, className: "rf-stack-divider" }, divider)
8064
+ /* @__PURE__ */ React158.createElement("div", { key: `divider-${idx}`, className: "rf-stack-divider" }, divider)
7930
8065
  );
7931
8066
  }
7932
8067
  return acc;
@@ -7935,13 +8070,13 @@ var Stack = React155.forwardRef(
7935
8070
  content = children;
7936
8071
  }
7937
8072
  const Tag = component;
7938
- return /* @__PURE__ */ React155.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, content);
8073
+ return /* @__PURE__ */ React158.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, content);
7939
8074
  }
7940
8075
  );
7941
8076
  Stack.displayName = "Stack";
7942
8077
 
7943
8078
  // lib/Grid/Grid.tsx
7944
- var React156 = __toESM(require("react"), 1);
8079
+ var React159 = __toESM(require("react"), 1);
7945
8080
  function sp3(val) {
7946
8081
  if (val === void 0) return void 0;
7947
8082
  return typeof val === "number" ? `${val * 8}px` : val;
@@ -7958,7 +8093,7 @@ function getSpacingGap(spacing) {
7958
8093
  const base = spacing.xs ?? spacing.sm ?? spacing.md ?? 0;
7959
8094
  return `${base * 8}px`;
7960
8095
  }
7961
- var Grid = React156.forwardRef(
8096
+ var Grid = React159.forwardRef(
7962
8097
  ({
7963
8098
  container = false,
7964
8099
  item = false,
@@ -8052,11 +8187,50 @@ var Grid = React156.forwardRef(
8052
8187
  className
8053
8188
  ].filter(Boolean).join(" ");
8054
8189
  const Tag = component;
8055
- return /* @__PURE__ */ React156.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, children);
8190
+ return /* @__PURE__ */ React159.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, children);
8056
8191
  }
8057
8192
  );
8058
8193
  Grid.displayName = "Grid";
8059
8194
 
8195
+ // lib/Container/Container.tsx
8196
+ var React160 = __toESM(require("react"), 1);
8197
+ var BREAKPOINT_PX = {
8198
+ xs: 444,
8199
+ sm: 600,
8200
+ md: 900,
8201
+ lg: 1200,
8202
+ xl: 1536
8203
+ };
8204
+ var Container = React160.forwardRef(
8205
+ ({
8206
+ maxWidth = "lg",
8207
+ fixed = false,
8208
+ disableGutters = false,
8209
+ component = "div",
8210
+ children,
8211
+ className,
8212
+ style,
8213
+ sx,
8214
+ ...rest
8215
+ }, ref) => {
8216
+ const sxClass = useSx(sx);
8217
+ const classes = ["rf-container", sxClass, className].filter(Boolean).join(" ");
8218
+ const mw = maxWidth === false ? void 0 : fixed ? `${BREAKPOINT_PX[maxWidth]}px` : `${BREAKPOINT_PX[maxWidth]}px`;
8219
+ const inlineStyle = {
8220
+ width: "100%",
8221
+ marginLeft: "auto",
8222
+ marginRight: "auto",
8223
+ boxSizing: "border-box",
8224
+ ...mw !== void 0 ? { maxWidth: mw } : {},
8225
+ ...disableGutters ? {} : { paddingLeft: 16, paddingRight: 16 },
8226
+ ...style
8227
+ };
8228
+ const Tag = component;
8229
+ return /* @__PURE__ */ React160.createElement(Tag, { ref, className: classes, style: inlineStyle, ...rest }, children);
8230
+ }
8231
+ );
8232
+ Container.displayName = "Container";
8233
+
8060
8234
  // lib/Table/Table.tsx
8061
8235
  var import_react30 = __toESM(require("react"), 1);
8062
8236
  var TableContext = (0, import_react30.createContext)({
@@ -8312,8 +8486,8 @@ var TablePagination = import_react30.default.forwardRef(
8312
8486
  TablePagination.displayName = "TablePagination";
8313
8487
 
8314
8488
  // lib/Paper/Paper.tsx
8315
- var React158 = __toESM(require("react"), 1);
8316
- var Paper = React158.forwardRef(
8489
+ var React162 = __toESM(require("react"), 1);
8490
+ var Paper = React162.forwardRef(
8317
8491
  ({
8318
8492
  elevation = 1,
8319
8493
  square = false,
@@ -8335,14 +8509,14 @@ var Paper = React158.forwardRef(
8335
8509
  className
8336
8510
  ].filter(Boolean).join(" ");
8337
8511
  const Tag = component;
8338
- return /* @__PURE__ */ React158.createElement(Tag, { ref, className: classes, style, ...rest }, children);
8512
+ return /* @__PURE__ */ React162.createElement(Tag, { ref, className: classes, style, ...rest }, children);
8339
8513
  }
8340
8514
  );
8341
8515
  Paper.displayName = "Paper";
8342
8516
 
8343
8517
  // lib/Card/Card.tsx
8344
- var React159 = __toESM(require("react"), 1);
8345
- var Card = React159.forwardRef(
8518
+ var React163 = __toESM(require("react"), 1);
8519
+ var Card = React163.forwardRef(
8346
8520
  ({
8347
8521
  elevation = 1,
8348
8522
  variant = "elevation",
@@ -8361,33 +8535,33 @@ var Card = React159.forwardRef(
8361
8535
  sxClass,
8362
8536
  className
8363
8537
  ].filter(Boolean).join(" ");
8364
- return /* @__PURE__ */ React159.createElement("div", { ref, className: classes, style, ...rest }, children);
8538
+ return /* @__PURE__ */ React163.createElement("div", { ref, className: classes, style, ...rest }, children);
8365
8539
  }
8366
8540
  );
8367
8541
  Card.displayName = "Card";
8368
- var CardContent = React159.forwardRef(
8542
+ var CardContent = React163.forwardRef(
8369
8543
  ({ children, className, style, sx, ...rest }, ref) => {
8370
8544
  const sxClass = useSx(sx);
8371
8545
  const classes = ["rf-card-content", sxClass, className].filter(Boolean).join(" ");
8372
- return /* @__PURE__ */ React159.createElement("div", { ref, className: classes, style, ...rest }, children);
8546
+ return /* @__PURE__ */ React163.createElement("div", { ref, className: classes, style, ...rest }, children);
8373
8547
  }
8374
8548
  );
8375
8549
  CardContent.displayName = "CardContent";
8376
- var CardHeader = React159.forwardRef(
8550
+ var CardHeader = React163.forwardRef(
8377
8551
  ({ title, subheader, avatar, action, className, style, sx, ...rest }, ref) => {
8378
8552
  const sxClass = useSx(sx);
8379
8553
  const classes = ["rf-card-header", sxClass, className].filter(Boolean).join(" ");
8380
- return /* @__PURE__ */ React159.createElement("div", { ref, className: classes, style, ...rest }, avatar && /* @__PURE__ */ React159.createElement("div", { className: "rf-card-header-avatar" }, avatar), /* @__PURE__ */ React159.createElement("div", { className: "rf-card-header-content" }, /* @__PURE__ */ React159.createElement("div", { className: "rf-card-header-title" }, title), subheader && /* @__PURE__ */ React159.createElement("div", { className: "rf-card-header-subheader" }, subheader)), action && /* @__PURE__ */ React159.createElement("div", { className: "rf-card-header-action" }, action));
8554
+ return /* @__PURE__ */ React163.createElement("div", { ref, className: classes, style, ...rest }, avatar && /* @__PURE__ */ React163.createElement("div", { className: "rf-card-header-avatar" }, avatar), /* @__PURE__ */ React163.createElement("div", { className: "rf-card-header-content" }, /* @__PURE__ */ React163.createElement("div", { className: "rf-card-header-title" }, title), subheader && /* @__PURE__ */ React163.createElement("div", { className: "rf-card-header-subheader" }, subheader)), action && /* @__PURE__ */ React163.createElement("div", { className: "rf-card-header-action" }, action));
8381
8555
  }
8382
8556
  );
8383
8557
  CardHeader.displayName = "CardHeader";
8384
- var CardMedia = React159.forwardRef(
8558
+ var CardMedia = React163.forwardRef(
8385
8559
  ({ component = "div", image, src, height, alt, className, style, sx, ...rest }, ref) => {
8386
8560
  const sxClass = useSx(sx);
8387
8561
  const classes = ["rf-card-media", sxClass, className].filter(Boolean).join(" ");
8388
8562
  const computedHeight = height !== void 0 ? typeof height === "number" ? `${height}px` : height : "200px";
8389
8563
  if (component === "img") {
8390
- return /* @__PURE__ */ React159.createElement(
8564
+ return /* @__PURE__ */ React163.createElement(
8391
8565
  "img",
8392
8566
  {
8393
8567
  ref,
@@ -8400,7 +8574,7 @@ var CardMedia = React159.forwardRef(
8400
8574
  );
8401
8575
  }
8402
8576
  if (component === "video") {
8403
- return /* @__PURE__ */ React159.createElement(
8577
+ return /* @__PURE__ */ React163.createElement(
8404
8578
  "video",
8405
8579
  {
8406
8580
  ref,
@@ -8416,7 +8590,7 @@ var CardMedia = React159.forwardRef(
8416
8590
  ...image ? { backgroundImage: `url(${image})` } : {},
8417
8591
  ...style
8418
8592
  };
8419
- return /* @__PURE__ */ React159.createElement(
8593
+ return /* @__PURE__ */ React163.createElement(
8420
8594
  "div",
8421
8595
  {
8422
8596
  ref,
@@ -8428,7 +8602,7 @@ var CardMedia = React159.forwardRef(
8428
8602
  }
8429
8603
  );
8430
8604
  CardMedia.displayName = "CardMedia";
8431
- var CardActions = React159.forwardRef(
8605
+ var CardActions = React163.forwardRef(
8432
8606
  ({ disableSpacing = false, children, className, style, sx, ...rest }, ref) => {
8433
8607
  const sxClass = useSx(sx);
8434
8608
  const classes = [
@@ -8437,13 +8611,13 @@ var CardActions = React159.forwardRef(
8437
8611
  sxClass,
8438
8612
  className
8439
8613
  ].filter(Boolean).join(" ");
8440
- return /* @__PURE__ */ React159.createElement("div", { ref, className: classes, style, ...rest }, children);
8614
+ return /* @__PURE__ */ React163.createElement("div", { ref, className: classes, style, ...rest }, children);
8441
8615
  }
8442
8616
  );
8443
8617
  CardActions.displayName = "CardActions";
8444
8618
 
8445
8619
  // lib/Accordion/Accordion.tsx
8446
- var React160 = __toESM(require("react"), 1);
8620
+ var React164 = __toESM(require("react"), 1);
8447
8621
  var import_react31 = require("react");
8448
8622
  var AccordionContext = (0, import_react31.createContext)({
8449
8623
  expanded: false,
@@ -8451,7 +8625,7 @@ var AccordionContext = (0, import_react31.createContext)({
8451
8625
  toggle: () => {
8452
8626
  }
8453
8627
  });
8454
- var Accordion = React160.forwardRef(
8628
+ var Accordion = React164.forwardRef(
8455
8629
  ({
8456
8630
  expanded: expandedProp,
8457
8631
  defaultExpanded = false,
@@ -8486,11 +8660,11 @@ var Accordion = React160.forwardRef(
8486
8660
  sxClass,
8487
8661
  className
8488
8662
  ].filter(Boolean).join(" ");
8489
- return /* @__PURE__ */ React160.createElement(AccordionContext.Provider, { value: { expanded, disabled, toggle } }, /* @__PURE__ */ React160.createElement("div", { ref, className: classes, style, ...rest }, children));
8663
+ return /* @__PURE__ */ React164.createElement(AccordionContext.Provider, { value: { expanded, disabled, toggle } }, /* @__PURE__ */ React164.createElement("div", { ref, className: classes, style, ...rest }, children));
8490
8664
  }
8491
8665
  );
8492
8666
  Accordion.displayName = "Accordion";
8493
- var ChevronIcon = () => /* @__PURE__ */ React160.createElement(
8667
+ var ChevronIcon = () => /* @__PURE__ */ React164.createElement(
8494
8668
  "svg",
8495
8669
  {
8496
8670
  xmlns: "http://www.w3.org/2000/svg",
@@ -8504,9 +8678,9 @@ var ChevronIcon = () => /* @__PURE__ */ React160.createElement(
8504
8678
  strokeLinejoin: "round",
8505
8679
  "aria-hidden": "true"
8506
8680
  },
8507
- /* @__PURE__ */ React160.createElement("polyline", { points: "6 9 12 15 18 9" })
8681
+ /* @__PURE__ */ React164.createElement("polyline", { points: "6 9 12 15 18 9" })
8508
8682
  );
8509
- var AccordionSummary = React160.forwardRef(
8683
+ var AccordionSummary = React164.forwardRef(
8510
8684
  ({ expandIcon, children, sx, className, style, ...rest }, ref) => {
8511
8685
  const sxClass = useSx(sx);
8512
8686
  const { expanded, toggle, disabled } = (0, import_react31.useContext)(AccordionContext);
@@ -8520,7 +8694,7 @@ var AccordionSummary = React160.forwardRef(
8520
8694
  "rf-accordion-summary-icon",
8521
8695
  expanded ? "rf-accordion-icon-expanded" : ""
8522
8696
  ].filter(Boolean).join(" ");
8523
- return /* @__PURE__ */ React160.createElement(
8697
+ return /* @__PURE__ */ React164.createElement(
8524
8698
  "button",
8525
8699
  {
8526
8700
  ref,
@@ -8532,13 +8706,13 @@ var AccordionSummary = React160.forwardRef(
8532
8706
  "aria-expanded": expanded,
8533
8707
  ...rest
8534
8708
  },
8535
- /* @__PURE__ */ React160.createElement("span", { className: "rf-accordion-summary-content" }, children),
8536
- /* @__PURE__ */ React160.createElement("span", { className: iconClasses }, expandIcon !== void 0 ? expandIcon : /* @__PURE__ */ React160.createElement(ChevronIcon, null))
8709
+ /* @__PURE__ */ React164.createElement("span", { className: "rf-accordion-summary-content" }, children),
8710
+ /* @__PURE__ */ React164.createElement("span", { className: iconClasses }, expandIcon !== void 0 ? expandIcon : /* @__PURE__ */ React164.createElement(ChevronIcon, null))
8537
8711
  );
8538
8712
  }
8539
8713
  );
8540
8714
  AccordionSummary.displayName = "AccordionSummary";
8541
- var AccordionDetails = React160.forwardRef(
8715
+ var AccordionDetails = React164.forwardRef(
8542
8716
  ({ children, sx, className, style, ...rest }, ref) => {
8543
8717
  const sxClass = useSx(sx);
8544
8718
  const { expanded } = (0, import_react31.useContext)(AccordionContext);
@@ -8551,7 +8725,7 @@ var AccordionDetails = React160.forwardRef(
8551
8725
  sxClass,
8552
8726
  className
8553
8727
  ].filter(Boolean).join(" ");
8554
- return /* @__PURE__ */ React160.createElement("div", { className: wrapperClasses }, /* @__PURE__ */ React160.createElement("div", { className: "rf-accordion-details-inner" }, /* @__PURE__ */ React160.createElement("div", { ref, className: detailsClasses, style, ...rest }, children)));
8728
+ return /* @__PURE__ */ React164.createElement("div", { className: wrapperClasses }, /* @__PURE__ */ React164.createElement("div", { className: "rf-accordion-details-inner" }, /* @__PURE__ */ React164.createElement("div", { ref, className: detailsClasses, style, ...rest }, children)));
8555
8729
  }
8556
8730
  );
8557
8731
  AccordionDetails.displayName = "AccordionDetails";
@@ -9261,6 +9435,120 @@ var Drawer = ({
9261
9435
  };
9262
9436
  Drawer.displayName = "Drawer";
9263
9437
 
9438
+ // lib/Pagination/Pagination.tsx
9439
+ var React170 = __toESM(require("react"), 1);
9440
+ function range(start, end) {
9441
+ const out = [];
9442
+ for (let i = start; i <= end; i++) out.push(i);
9443
+ return out;
9444
+ }
9445
+ function buildItems(count, page, siblingCount, boundaryCount) {
9446
+ const startPages = range(1, Math.min(boundaryCount, count));
9447
+ const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);
9448
+ const siblingsStart = Math.max(
9449
+ Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1),
9450
+ boundaryCount + 2
9451
+ );
9452
+ const siblingsEnd = Math.min(
9453
+ Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2),
9454
+ endPages.length > 0 ? endPages[0] - 2 : count - 1
9455
+ );
9456
+ const items = [];
9457
+ startPages.forEach((p) => items.push({ type: "page", page: p, key: `p-${p}` }));
9458
+ if (siblingsStart > boundaryCount + 2) {
9459
+ items.push({ type: "start-ellipsis", key: "start-ellipsis" });
9460
+ } else if (boundaryCount + 1 < count - boundaryCount) {
9461
+ items.push({ type: "page", page: boundaryCount + 1, key: `p-${boundaryCount + 1}` });
9462
+ }
9463
+ range(siblingsStart, siblingsEnd).forEach(
9464
+ (p) => items.push({ type: "page", page: p, key: `p-${p}` })
9465
+ );
9466
+ if (siblingsEnd < count - boundaryCount - 1) {
9467
+ items.push({ type: "end-ellipsis", key: "end-ellipsis" });
9468
+ } else if (count - boundaryCount > boundaryCount) {
9469
+ items.push({
9470
+ type: "page",
9471
+ page: count - boundaryCount,
9472
+ key: `p-${count - boundaryCount}`
9473
+ });
9474
+ }
9475
+ endPages.forEach((p) => items.push({ type: "page", page: p, key: `p-${p}` }));
9476
+ return items;
9477
+ }
9478
+ var Pagination = React170.forwardRef(
9479
+ ({
9480
+ count,
9481
+ page: pageProp,
9482
+ defaultPage = 1,
9483
+ onChange,
9484
+ siblingCount = 1,
9485
+ boundaryCount = 1,
9486
+ showFirstButton = false,
9487
+ showLastButton = false,
9488
+ hidePrevButton = false,
9489
+ hideNextButton = false,
9490
+ disabled = false,
9491
+ shape = "circular",
9492
+ size = "medium",
9493
+ color = "standard",
9494
+ sx,
9495
+ className,
9496
+ ...rest
9497
+ }, ref) => {
9498
+ const isControlled = pageProp !== void 0;
9499
+ const [uncontrolledPage, setUncontrolledPage] = React170.useState(defaultPage);
9500
+ const page = isControlled ? pageProp : uncontrolledPage;
9501
+ const sxClass = useSx(sx);
9502
+ const classes = [
9503
+ "rf-pagination",
9504
+ `rf-pagination--${size}`,
9505
+ `rf-pagination--${shape}`,
9506
+ `rf-pagination--${color}`,
9507
+ sxClass,
9508
+ className
9509
+ ].filter(Boolean).join(" ");
9510
+ const goTo = (e, p) => {
9511
+ const clamped = Math.max(1, Math.min(p, count));
9512
+ if (!isControlled) setUncontrolledPage(clamped);
9513
+ onChange?.(e, clamped);
9514
+ };
9515
+ const items = buildItems(count, page, siblingCount, boundaryCount);
9516
+ const renderControl = (key, label, targetPage, isDisabled, symbol) => /* @__PURE__ */ React170.createElement("li", { key }, /* @__PURE__ */ React170.createElement(
9517
+ "button",
9518
+ {
9519
+ type: "button",
9520
+ className: "rf-pagination__btn rf-pagination__btn--control",
9521
+ "aria-label": label,
9522
+ disabled: isDisabled || disabled,
9523
+ onClick: (e) => goTo(e, targetPage)
9524
+ },
9525
+ symbol
9526
+ ));
9527
+ return /* @__PURE__ */ React170.createElement("nav", { ref, className: classes, "aria-label": "pagination", ...rest }, /* @__PURE__ */ React170.createElement("ul", { className: "rf-pagination__list" }, showFirstButton && renderControl("first", "Go to first page", 1, page <= 1, "\xAB"), !hidePrevButton && renderControl("prev", "Go to previous page", page - 1, page <= 1, "\u2039"), items.map((item) => {
9528
+ if (item.type === "start-ellipsis" || item.type === "end-ellipsis") {
9529
+ return /* @__PURE__ */ React170.createElement("li", { key: item.key, "aria-hidden": "true" }, /* @__PURE__ */ React170.createElement("span", { className: "rf-pagination__ellipsis" }, "\u2026"));
9530
+ }
9531
+ const isActive = item.page === page;
9532
+ return /* @__PURE__ */ React170.createElement("li", { key: item.key }, /* @__PURE__ */ React170.createElement(
9533
+ "button",
9534
+ {
9535
+ type: "button",
9536
+ className: [
9537
+ "rf-pagination__btn",
9538
+ isActive ? "rf-pagination__btn--active" : ""
9539
+ ].filter(Boolean).join(" "),
9540
+ "aria-current": isActive ? "page" : void 0,
9541
+ "aria-label": `Go to page ${item.page}`,
9542
+ disabled,
9543
+ onClick: (e) => goTo(e, item.page)
9544
+ },
9545
+ item.page
9546
+ ));
9547
+ }), !hideNextButton && renderControl("next", "Go to next page", page + 1, page >= count, "\u203A"), showLastButton && renderControl("last", "Go to last page", count, page >= count, "\xBB")));
9548
+ }
9549
+ );
9550
+ Pagination.displayName = "Pagination";
9551
+
9264
9552
  // lib/Snackbar/Snackbar.tsx
9265
9553
  var import_react37 = __toESM(require("react"), 1);
9266
9554
  var import_react_dom9 = __toESM(require("react-dom"), 1);
@@ -9372,8 +9660,54 @@ var Snackbar = ({
9372
9660
  };
9373
9661
  Snackbar.displayName = "Snackbar";
9374
9662
 
9663
+ // lib/Alert/Alert.tsx
9664
+ var React172 = __toESM(require("react"), 1);
9665
+ var DEFAULT_ICONS = {
9666
+ success: /* @__PURE__ */ React172.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": true }, /* @__PURE__ */ React172.createElement("path", { d: "M12 2a10 10 0 100 20 10 10 0 000-20zm-1 14.5l-4.5-4.5 1.4-1.4L11 13.7l6.1-6.1L18.5 9 11 16.5z" })),
9667
+ info: /* @__PURE__ */ React172.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": true }, /* @__PURE__ */ React172.createElement("path", { d: "M12 2a10 10 0 100 20 10 10 0 000-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" })),
9668
+ warning: /* @__PURE__ */ React172.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": true }, /* @__PURE__ */ React172.createElement("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" })),
9669
+ error: /* @__PURE__ */ React172.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": true }, /* @__PURE__ */ React172.createElement("path", { d: "M12 2a10 10 0 100 20 10 10 0 000-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }))
9670
+ };
9671
+ var Alert = React172.forwardRef(
9672
+ ({
9673
+ severity = "info",
9674
+ variant = "standard",
9675
+ title,
9676
+ icon,
9677
+ action,
9678
+ onClose,
9679
+ sx,
9680
+ className,
9681
+ children,
9682
+ role = "alert",
9683
+ ...rest
9684
+ }, ref) => {
9685
+ const sxClass = useSx(sx);
9686
+ const classes = [
9687
+ "rf-alert",
9688
+ `rf-alert--${severity}`,
9689
+ `rf-alert--${variant}`,
9690
+ sxClass,
9691
+ className
9692
+ ].filter(Boolean).join(" ");
9693
+ const resolvedIcon = icon === false ? null : icon ?? DEFAULT_ICONS[severity];
9694
+ const closeAction = onClose && !action ? /* @__PURE__ */ React172.createElement(
9695
+ "button",
9696
+ {
9697
+ type: "button",
9698
+ "aria-label": "Close",
9699
+ className: "rf-alert__close",
9700
+ onClick: onClose
9701
+ },
9702
+ "\xD7"
9703
+ ) : null;
9704
+ return /* @__PURE__ */ React172.createElement("div", { ref, role, className: classes, ...rest }, resolvedIcon !== null && /* @__PURE__ */ React172.createElement("span", { className: "rf-alert__icon" }, resolvedIcon), /* @__PURE__ */ React172.createElement("div", { className: "rf-alert__message" }, title && /* @__PURE__ */ React172.createElement("div", { className: "rf-alert__title" }, title), children), (action || closeAction) && /* @__PURE__ */ React172.createElement("div", { className: "rf-alert__action" }, action ?? closeAction));
9705
+ }
9706
+ );
9707
+ Alert.displayName = "Alert";
9708
+
9375
9709
  // lib/ClickAwayListener/ClickAwayListener.tsx
9376
- var React167 = __toESM(require("react"), 1);
9710
+ var React173 = __toESM(require("react"), 1);
9377
9711
  function mapEventPropToEvent(eventProp) {
9378
9712
  return eventProp.substring(2).toLowerCase();
9379
9713
  }
@@ -9391,7 +9725,7 @@ function setRef(ref, value) {
9391
9725
  }
9392
9726
  }
9393
9727
  function useForkRef(refA, refB) {
9394
- return React167.useMemo(() => {
9728
+ return React173.useMemo(() => {
9395
9729
  if (refA == null && refB == null) {
9396
9730
  return null;
9397
9731
  }
@@ -9402,14 +9736,14 @@ function useForkRef(refA, refB) {
9402
9736
  }, [refA, refB]);
9403
9737
  }
9404
9738
  function useEventCallback(fn) {
9405
- const ref = React167.useRef(fn);
9406
- React167.useEffect(() => {
9739
+ const ref = React173.useRef(fn);
9740
+ React173.useEffect(() => {
9407
9741
  ref.current = fn;
9408
9742
  });
9409
- return React167.useCallback((...args) => ref.current(...args), []);
9743
+ return React173.useCallback((...args) => ref.current(...args), []);
9410
9744
  }
9411
9745
  function getReactElementRef(element) {
9412
- const major = parseInt(React167.version, 10);
9746
+ const major = parseInt(React173.version, 10);
9413
9747
  if (major >= 19) {
9414
9748
  return element.props?.ref ?? null;
9415
9749
  }
@@ -9423,11 +9757,11 @@ function ClickAwayListener(props) {
9423
9757
  onClickAway,
9424
9758
  touchEvent = "onTouchEnd"
9425
9759
  } = props;
9426
- const movedRef = React167.useRef(false);
9427
- const nodeRef = React167.useRef(null);
9428
- const activatedRef = React167.useRef(false);
9429
- const syntheticEventRef = React167.useRef(false);
9430
- React167.useEffect(() => {
9760
+ const movedRef = React173.useRef(false);
9761
+ const nodeRef = React173.useRef(null);
9762
+ const activatedRef = React173.useRef(false);
9763
+ const syntheticEventRef = React173.useRef(false);
9764
+ React173.useEffect(() => {
9431
9765
  const id = setTimeout(() => {
9432
9766
  activatedRef.current = true;
9433
9767
  }, 0);
@@ -9476,7 +9810,7 @@ function ClickAwayListener(props) {
9476
9810
  if (touchEvent !== false) {
9477
9811
  childrenProps[touchEvent] = createHandleSynthetic(touchEvent);
9478
9812
  }
9479
- React167.useEffect(() => {
9813
+ React173.useEffect(() => {
9480
9814
  if (touchEvent === false) {
9481
9815
  return void 0;
9482
9816
  }
@@ -9495,7 +9829,7 @@ function ClickAwayListener(props) {
9495
9829
  if (mouseEvent !== false) {
9496
9830
  childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);
9497
9831
  }
9498
- React167.useEffect(() => {
9832
+ React173.useEffect(() => {
9499
9833
  if (mouseEvent === false) {
9500
9834
  return void 0;
9501
9835
  }
@@ -9506,7 +9840,7 @@ function ClickAwayListener(props) {
9506
9840
  doc.removeEventListener(mappedMouseEvent, handleClickAway);
9507
9841
  };
9508
9842
  }, [handleClickAway, mouseEvent]);
9509
- return React167.cloneElement(children, childrenProps);
9843
+ return React173.cloneElement(children, childrenProps);
9510
9844
  }
9511
9845
 
9512
9846
  // lib/Link/Link.tsx
@@ -11865,10 +12199,10 @@ var AICommands = ({ editor, onAICommand }) => {
11865
12199
  }
11866
12200
  }, [onAICommand]);
11867
12201
  const handleCommandSelect = (0, import_react51.useCallback)((command) => {
11868
- const { text, range } = getSelectedText();
12202
+ const { text, range: range2 } = getSelectedText();
11869
12203
  if (!text.trim()) return;
11870
12204
  setOriginalText(text);
11871
- setSelectionRange(range);
12205
+ setSelectionRange(range2);
11872
12206
  setPromptText(command.prompt);
11873
12207
  setPreviousResults([]);
11874
12208
  setOpen(false);
@@ -12857,38 +13191,38 @@ var CustomTaskItem = import_extension_task_item.default.extend({
12857
13191
  });
12858
13192
 
12859
13193
  // lib/RufousTextEditor/icons.tsx
12860
- var React182 = __toESM(require("react"), 1);
13194
+ var React188 = __toESM(require("react"), 1);
12861
13195
  var s = { width: 20, height: 20, viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg" };
12862
- var IconUndo = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M12.5 8C9.85 8 7.45 9 5.6 10.6L2 7v9h9l-3.62-3.62C8.93 11.01 10.63 10.2 12.5 10.2c3.03 0 5.6 1.93 6.55 4.63l2.15-.72C19.93 10.68 16.5 8 12.5 8z" }));
12863
- var IconRedo = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M18.4 10.6C16.55 9 14.15 8 11.5 8c-4 0-7.43 2.68-8.7 6.11l2.15.72c.95-2.7 3.52-4.63 6.55-4.63 1.87 0 3.57.81 5.12 2.18L13 16h9V7l-3.6 3.6z" }));
12864
- var IconBold = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z" }));
12865
- var IconItalic = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z" }));
12866
- var IconLink = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z" }));
12867
- var IconStrike = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M7.24 11h2.01c-.13-.42-.2-.88-.2-1.37 0-.89.32-1.58.96-2.08.64-.49 1.46-.74 2.47-.74.99 0 1.81.24 2.46.71.64.47.97 1.1.97 1.88h2.04c0-1.27-.55-2.33-1.64-3.18C15.21 5.37 13.83 4.95 12.2 4.95c-1.69 0-3.09.43-4.2 1.3C6.9 7.1 6.35 8.23 6.35 9.63c0 .47.06.92.18 1.37H3v2h18v-2H7.24zM12.2 17.05c-1.03 0-1.89-.28-2.56-.84-.67-.56-1-1.27-1-2.13h-2.1c0 1.36.58 2.5 1.75 3.44 1.16.93 2.56 1.4 4.19 1.4 1.69 0 3.09-.43 4.2-1.3 1.1-.86 1.65-1.99 1.65-3.38h-2.1c0 .85-.33 1.56-1 2.13-.66.56-1.52.84-2.56.84l-.47-.16z" }));
12868
- var IconHeading = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M5 4v3h5.5v12h3V7H19V4z" }));
12869
- var IconFontSize = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M9 4v3h5v12h2V7h5V4H9zm-6 8h3v7h2v-7h3v-2H3v2z" }));
12870
- var IconColor = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z" }), /* @__PURE__ */ React182.createElement("path", { d: "M3 20h18v3H3z", opacity: "0.8" }));
12871
- var IconFont = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M9.93 13.5h4.14L12 7.98 9.93 13.5zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z" }));
12872
- var IconLineHeight = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm16-3h-8v2h8V4zm0 4h-8v2h8V8zm0 4h-8v2h8v-2zm0 4h-8v2h8v-2z" }));
12873
- var IconBulletList = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z" }));
12874
- var IconOrderedList = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z" }));
12875
- var IconAlignLeft = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zM3 21h18v-2H3v2zM3 3v2h18V3H3z" }));
12876
- var IconAlignCenter = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z" }));
12877
- var IconAlignRight = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z" }));
12878
- var IconAlignJustify = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zM3 3v2h18V3H3z" }));
12879
- var IconIndentIncrease = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z" }));
12880
- var IconIndentDecrease = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z" }));
12881
- var IconTable = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M20 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 19V5h4v14H5zm6 0V5h4v14h-4zm6 0V5h3v14h-3z", fillRule: "evenodd" }));
12882
- var IconImage = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z" }));
12883
- var IconVideo = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M4 6.47L5.76 10H20v8H4V6.47M22 4h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4z" }));
12884
- var IconCut = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3h-3z" }));
12885
- var IconCopy = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" }));
12886
- var IconCode = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z" }));
12887
- var IconFullscreen = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z" }));
12888
- var IconTranslate = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0014.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2.02c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z" }));
12889
- var IconTaskList = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M22 8c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1zm0 8c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z" }));
12890
- var IconCheck = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" }));
12891
- var IconPaste = () => /* @__PURE__ */ React182.createElement("svg", { ...s }, /* @__PURE__ */ React182.createElement("path", { d: "M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z" }));
13196
+ var IconUndo = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M12.5 8C9.85 8 7.45 9 5.6 10.6L2 7v9h9l-3.62-3.62C8.93 11.01 10.63 10.2 12.5 10.2c3.03 0 5.6 1.93 6.55 4.63l2.15-.72C19.93 10.68 16.5 8 12.5 8z" }));
13197
+ var IconRedo = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M18.4 10.6C16.55 9 14.15 8 11.5 8c-4 0-7.43 2.68-8.7 6.11l2.15.72c.95-2.7 3.52-4.63 6.55-4.63 1.87 0 3.57.81 5.12 2.18L13 16h9V7l-3.6 3.6z" }));
13198
+ var IconBold = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z" }));
13199
+ var IconItalic = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z" }));
13200
+ var IconLink = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z" }));
13201
+ var IconStrike = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M7.24 11h2.01c-.13-.42-.2-.88-.2-1.37 0-.89.32-1.58.96-2.08.64-.49 1.46-.74 2.47-.74.99 0 1.81.24 2.46.71.64.47.97 1.1.97 1.88h2.04c0-1.27-.55-2.33-1.64-3.18C15.21 5.37 13.83 4.95 12.2 4.95c-1.69 0-3.09.43-4.2 1.3C6.9 7.1 6.35 8.23 6.35 9.63c0 .47.06.92.18 1.37H3v2h18v-2H7.24zM12.2 17.05c-1.03 0-1.89-.28-2.56-.84-.67-.56-1-1.27-1-2.13h-2.1c0 1.36.58 2.5 1.75 3.44 1.16.93 2.56 1.4 4.19 1.4 1.69 0 3.09-.43 4.2-1.3 1.1-.86 1.65-1.99 1.65-3.38h-2.1c0 .85-.33 1.56-1 2.13-.66.56-1.52.84-2.56.84l-.47-.16z" }));
13202
+ var IconHeading = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M5 4v3h5.5v12h3V7H19V4z" }));
13203
+ var IconFontSize = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M9 4v3h5v12h2V7h5V4H9zm-6 8h3v7h2v-7h3v-2H3v2z" }));
13204
+ var IconColor = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z" }), /* @__PURE__ */ React188.createElement("path", { d: "M3 20h18v3H3z", opacity: "0.8" }));
13205
+ var IconFont = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M9.93 13.5h4.14L12 7.98 9.93 13.5zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z" }));
13206
+ var IconLineHeight = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm16-3h-8v2h8V4zm0 4h-8v2h8V8zm0 4h-8v2h8v-2zm0 4h-8v2h8v-2z" }));
13207
+ var IconBulletList = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z" }));
13208
+ var IconOrderedList = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z" }));
13209
+ var IconAlignLeft = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zM3 21h18v-2H3v2zM3 3v2h18V3H3z" }));
13210
+ var IconAlignCenter = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z" }));
13211
+ var IconAlignRight = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z" }));
13212
+ var IconAlignJustify = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zM3 3v2h18V3H3z" }));
13213
+ var IconIndentIncrease = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z" }));
13214
+ var IconIndentDecrease = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z" }));
13215
+ var IconTable = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M20 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 19V5h4v14H5zm6 0V5h4v14h-4zm6 0V5h3v14h-3z", fillRule: "evenodd" }));
13216
+ var IconImage = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z" }));
13217
+ var IconVideo = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M4 6.47L5.76 10H20v8H4V6.47M22 4h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4z" }));
13218
+ var IconCut = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3h-3z" }));
13219
+ var IconCopy = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" }));
13220
+ var IconCode = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z" }));
13221
+ var IconFullscreen = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z" }));
13222
+ var IconTranslate = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0014.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2.02c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z" }));
13223
+ var IconTaskList = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M22 8c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1zm0 8c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z" }));
13224
+ var IconCheck = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" }));
13225
+ var IconPaste = () => /* @__PURE__ */ React188.createElement("svg", { ...s }, /* @__PURE__ */ React188.createElement("path", { d: "M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z" }));
12892
13226
 
12893
13227
  // lib/RufousTextEditor/Toolbar.tsx
12894
13228
  var COLOR_PALETTE = [
@@ -15385,6 +15719,7 @@ function useCitiesSearch(debounceMs = 300) {
15385
15719
  AddButton,
15386
15720
  AddIcon,
15387
15721
  AddressLookup,
15722
+ Alert,
15388
15723
  AlertTriangleIcon,
15389
15724
  ArchivedIcon,
15390
15725
  ArrowDownIcon,
@@ -15402,6 +15737,7 @@ function useCitiesSearch(debounceMs = 300) {
15402
15737
  Breadcrumbs,
15403
15738
  BusinessIcon,
15404
15739
  Button,
15740
+ ButtonGroup,
15405
15741
  CalendarIcon,
15406
15742
  CameraIcon,
15407
15743
  CancelButton,
@@ -15425,6 +15761,7 @@ function useCitiesSearch(debounceMs = 300) {
15425
15761
  CloseIcon,
15426
15762
  Collapse,
15427
15763
  ContactsIcon,
15764
+ Container,
15428
15765
  CopyIcon,
15429
15766
  CustomImage,
15430
15767
  CustomTaskItem,
@@ -15454,6 +15791,7 @@ function useCitiesSearch(debounceMs = 300) {
15454
15791
  FlagIcon,
15455
15792
  FontFamily,
15456
15793
  FontSize,
15794
+ FormGroup,
15457
15795
  FunctionIcon,
15458
15796
  GlobeIcon,
15459
15797
  Grid,
@@ -15472,6 +15810,7 @@ function useCitiesSearch(debounceMs = 300) {
15472
15810
  InfoIcon,
15473
15811
  InvoiceIcon,
15474
15812
  LineHeight,
15813
+ LinearProgress,
15475
15814
  Link,
15476
15815
  LinkIcon,
15477
15816
  List,
@@ -15503,6 +15842,7 @@ function useCitiesSearch(debounceMs = 300) {
15503
15842
  NotesIcon,
15504
15843
  NotificationIcon,
15505
15844
  OpenInFullIcon,
15845
+ Pagination,
15506
15846
  Paper,
15507
15847
  PaperclipIcon,
15508
15848
  PersonSearchIcon,