@rufous/ui 0.2.99 → 0.2.100

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
@@ -1805,15 +1805,20 @@ var TextField = (0, import_react17.forwardRef)(({
1805
1805
  slotProps,
1806
1806
  InputProps,
1807
1807
  numberVariant,
1808
+ multiline = false,
1809
+ rows,
1810
+ maxRows,
1808
1811
  ...props
1809
1812
  }, ref) => {
1810
1813
  const sxClass = useSx(sx);
1811
- const inputId = id || name || `tf-${Math.random().toString(36).substr(2, 9)}`;
1814
+ const inputId = id || name || `tf-${Math.random().toString(36).substring(2, 11)}`;
1815
+ const isTextarea = multiline || rows !== void 0 && rows > 1;
1816
+ const resolvedRows = rows ?? (multiline ? 4 : void 0);
1812
1817
  const isFloating = Boolean(
1813
1818
  value !== void 0 && value !== "" || type === "date" || type === "time" || type === "datetime-local"
1814
1819
  );
1815
1820
  const hasLabel = Boolean(label);
1816
- const readOnly = slotProps?.input?.readOnly;
1821
+ const readOnly = isTextarea ? slotProps?.textarea?.readOnly : slotProps?.input?.readOnly;
1817
1822
  const rootClasses = [
1818
1823
  "rf-text-field",
1819
1824
  `rf-text-field--${variant}`,
@@ -1826,7 +1831,8 @@ var TextField = (0, import_react17.forwardRef)(({
1826
1831
  hasLabel ? "rf-text-field--has-label" : "",
1827
1832
  InputProps?.startAdornment ? "rf-text-field--adorned-start" : "",
1828
1833
  InputProps?.endAdornment ? "rf-text-field--adorned-end" : "",
1829
- type === "number" && !disabled && !readOnly ? "rf-text-field--has-number-controls" : "",
1834
+ isTextarea ? "rf-text-field--multiline" : "",
1835
+ !isTextarea && type === "number" && !disabled && !readOnly ? "rf-text-field--has-number-controls" : "",
1830
1836
  sxClass,
1831
1837
  className
1832
1838
  ].filter(Boolean).join(" ");
@@ -1901,11 +1907,26 @@ var TextField = (0, import_react17.forwardRef)(({
1901
1907
  }
1902
1908
  }
1903
1909
  }
1904
- if (props.onKeyDown) {
1905
- props.onKeyDown(e);
1906
- }
1910
+ if (props.onKeyDown) props.onKeyDown(e);
1907
1911
  };
1908
- return /* @__PURE__ */ import_react17.default.createElement("div", { ref, className: rootClasses, style }, /* @__PURE__ */ import_react17.default.createElement("div", { className: `rf-text-field__wrapper ${InputProps?.className || ""}`, style: InputProps?.style }, InputProps?.startAdornment && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--start" }, InputProps.startAdornment), /* @__PURE__ */ import_react17.default.createElement(
1912
+ const textareaStyle = maxRows ? { maxHeight: `calc(${maxRows} * var(--tf-line-height, 1.5em) + var(--tf-textarea-vpad, 18px) * 2)`, overflowY: "auto" } : {};
1913
+ return /* @__PURE__ */ import_react17.default.createElement("div", { ref, className: rootClasses, style }, /* @__PURE__ */ import_react17.default.createElement("div", { className: `rf-text-field__wrapper ${InputProps?.className || ""}`, style: InputProps?.style }, InputProps?.startAdornment && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--start" }, InputProps.startAdornment), isTextarea ? /* @__PURE__ */ import_react17.default.createElement(
1914
+ "textarea",
1915
+ {
1916
+ id: inputId,
1917
+ name,
1918
+ className: "rf-text-field__input rf-text-field__textarea",
1919
+ placeholder: placeholder || (variant === "outlined" ? " " : void 0),
1920
+ value,
1921
+ rows: resolvedRows,
1922
+ required,
1923
+ disabled,
1924
+ readOnly,
1925
+ style: textareaStyle,
1926
+ ...slotProps?.textarea,
1927
+ onChange
1928
+ }
1929
+ ) : /* @__PURE__ */ import_react17.default.createElement(
1909
1930
  "input",
1910
1931
  {
1911
1932
  ref: internalRef,
@@ -1925,7 +1946,7 @@ var TextField = (0, import_react17.forwardRef)(({
1925
1946
  ...props,
1926
1947
  onChange: handleChange
1927
1948
  }
1928
- ), InputProps?.endAdornment && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--end" }, InputProps.endAdornment), type === "number" && !disabled && !readOnly && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__number-controls" }, /* @__PURE__ */ import_react17.default.createElement("button", { type: "button", tabIndex: -1, onClick: handleIncrement, className: "rf-text-field__number-btn" }, /* @__PURE__ */ import_react17.default.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ import_react17.default.createElement("path", { d: "M4 0L8 5H0L4 0Z" }))), /* @__PURE__ */ import_react17.default.createElement("button", { type: "button", tabIndex: -1, onClick: handleDecrement, className: "rf-text-field__number-btn", style: { marginTop: 2 } }, /* @__PURE__ */ import_react17.default.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ import_react17.default.createElement("path", { d: "M4 5L0 0H8L4 5Z" })))), hasLabel && /* @__PURE__ */ import_react17.default.createElement("label", { htmlFor: inputId, className: "rf-text-field__label" }, label, " ", required && /* @__PURE__ */ import_react17.default.createElement("span", { className: "rf-text-field__asterisk" }, "*")), variant === "outlined" && /* @__PURE__ */ import_react17.default.createElement("fieldset", { className: "rf-text-field__notch" }, hasLabel ? /* @__PURE__ */ import_react17.default.createElement("legend", { className: "rf-text-field__legend" }, /* @__PURE__ */ import_react17.default.createElement("span", null, label, " ", required ? "*" : "")) : /* @__PURE__ */ import_react17.default.createElement("legend", { className: "rf-text-field__legend--empty" }))), helperText && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__helper-text" }, helperText));
1949
+ ), InputProps?.endAdornment && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--end" }, InputProps.endAdornment), !isTextarea && type === "number" && !disabled && !readOnly && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__number-controls" }, /* @__PURE__ */ import_react17.default.createElement("button", { type: "button", tabIndex: -1, onClick: handleIncrement, className: "rf-text-field__number-btn" }, /* @__PURE__ */ import_react17.default.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ import_react17.default.createElement("path", { d: "M4 0L8 5H0L4 0Z" }))), /* @__PURE__ */ import_react17.default.createElement("button", { type: "button", tabIndex: -1, onClick: handleDecrement, className: "rf-text-field__number-btn", style: { marginTop: 2 } }, /* @__PURE__ */ import_react17.default.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ import_react17.default.createElement("path", { d: "M4 5L0 0H8L4 5Z" })))), hasLabel && /* @__PURE__ */ import_react17.default.createElement("label", { htmlFor: inputId, className: "rf-text-field__label" }, label, " ", required && /* @__PURE__ */ import_react17.default.createElement("span", { className: "rf-text-field__asterisk" }, "*")), variant === "outlined" && /* @__PURE__ */ import_react17.default.createElement("fieldset", { className: "rf-text-field__notch" }, hasLabel ? /* @__PURE__ */ import_react17.default.createElement("legend", { className: "rf-text-field__legend" }, /* @__PURE__ */ import_react17.default.createElement("span", null, label, " ", required ? "*" : "")) : /* @__PURE__ */ import_react17.default.createElement("legend", { className: "rf-text-field__legend--empty" }))), helperText && /* @__PURE__ */ import_react17.default.createElement("div", { className: "rf-text-field__helper-text" }, helperText));
1929
1950
  });
1930
1951
  TextField.displayName = "TextField";
1931
1952
 
package/dist/main.css CHANGED
@@ -6394,7 +6394,7 @@ pre {
6394
6394
  white-space: nowrap;
6395
6395
  overflow: hidden;
6396
6396
  text-overflow: ellipsis;
6397
- max-width: calc(133% - 24px);
6397
+ max-width: calc(100% - 32px);
6398
6398
  position: absolute;
6399
6399
  left: 0;
6400
6400
  top: 0;
@@ -6408,11 +6408,13 @@ pre {
6408
6408
  }
6409
6409
  .rf-text-field--adorned-start:not(.rf-text-field--floating) .rf-text-field__label:not(.rf-text-field__wrapper:focus-within .rf-text-field__label):not(.rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label) {
6410
6410
  transform: translate(36px, 16px) scale(1);
6411
+ max-width: calc(100% - 50px);
6411
6412
  }
6412
6413
  .rf-text-field--floating .rf-text-field__label,
6413
6414
  .rf-text-field__wrapper:focus-within .rf-text-field__label,
6414
6415
  .rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label {
6415
6416
  transform: translate(14px, -9px) scale(0.75);
6417
+ max-width: calc(133% - 32px);
6416
6418
  }
6417
6419
  .rf-text-field__wrapper:focus-within .rf-text-field__label {
6418
6420
  color: var(--tf-primary-color);
@@ -6524,6 +6526,7 @@ pre {
6524
6526
  .rf-text-field--filled .rf-text-field__wrapper:focus-within .rf-text-field__label,
6525
6527
  .rf-text-field--filled .rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label {
6526
6528
  transform: translate(12px, 7px) scale(0.75);
6529
+ max-width: calc(133% - 32px);
6527
6530
  }
6528
6531
  .rf-text-field--filled.rf-text-field--disabled .rf-text-field__wrapper {
6529
6532
  background-color: rgba(0, 0, 0, 0.04);
@@ -6551,6 +6554,7 @@ pre {
6551
6554
  .rf-text-field--standard .rf-text-field__wrapper:focus-within .rf-text-field__label,
6552
6555
  .rf-text-field--standard .rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label {
6553
6556
  transform: translate(0, 1.5px) scale(0.75);
6557
+ max-width: calc(133% - 32px);
6554
6558
  }
6555
6559
  .rf-text-field--standard .rf-text-field__wrapper::after {
6556
6560
  left: 0;
@@ -6613,6 +6617,7 @@ pre {
6613
6617
  .rf-text-field--small.rf-text-field--outlined .rf-text-field__wrapper:focus-within .rf-text-field__label,
6614
6618
  .rf-text-field--small.rf-text-field--outlined .rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label {
6615
6619
  transform: translate(14px, -9px) scale(0.75);
6620
+ max-width: calc(133% - 32px);
6616
6621
  }
6617
6622
  .rf-text-field--small.rf-text-field--filled .rf-text-field__input {
6618
6623
  padding: 21px 12px 4px;
@@ -6627,6 +6632,7 @@ pre {
6627
6632
  .rf-text-field--small.rf-text-field--filled .rf-text-field__wrapper:focus-within .rf-text-field__label,
6628
6633
  .rf-text-field--small.rf-text-field--filled .rf-text-field__input:not(:placeholder-shown) ~ .rf-text-field__label {
6629
6634
  transform: translate(12px, 7px) scale(0.75);
6635
+ max-width: calc(133% - 32px);
6630
6636
  }
6631
6637
  .rf-text-field__input[type=number]::-webkit-inner-spin-button,
6632
6638
  .rf-text-field__input[type=number]::-webkit-outer-spin-button {
@@ -6698,6 +6704,31 @@ pre {
6698
6704
  .rf-text-field--compact.rf-text-field--disabled .rf-text-field__wrapper:hover {
6699
6705
  border-color: rgba(0, 0, 0, 0.12);
6700
6706
  }
6707
+ .rf-text-field--multiline .rf-text-field__wrapper {
6708
+ align-items: flex-start;
6709
+ height: auto;
6710
+ }
6711
+ .rf-text-field__textarea {
6712
+ resize: vertical;
6713
+ height: auto;
6714
+ min-height: 56px;
6715
+ line-height: 1.5;
6716
+ padding-top: 16.5px;
6717
+ padding-bottom: 16.5px;
6718
+ overflow-y: auto;
6719
+ }
6720
+ .rf-text-field--small .rf-text-field__textarea {
6721
+ padding-top: 8.5px;
6722
+ padding-bottom: 8.5px;
6723
+ min-height: 38px;
6724
+ }
6725
+ .rf-text-field--multiline .rf-text-field__label {
6726
+ transform-origin: left top;
6727
+ }
6728
+ .rf-text-field--multiline .rf-text-field__notch {
6729
+ top: 0;
6730
+ height: 100%;
6731
+ }
6701
6732
 
6702
6733
  /* lib/styles/rufous-text-editor.css */
6703
6734
  .rf-rte-wrapper {
package/dist/main.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import React__default, { ReactNode, CSSProperties, InputHTMLAttributes, ReactElement, ComponentType } from 'react';
2
+ import React__default, { ReactNode, CSSProperties, InputHTMLAttributes, TextareaHTMLAttributes, ReactElement, ComponentType } from 'react';
3
3
 
4
4
  declare const APP_THEMES: {
5
5
  default: {
@@ -554,6 +554,7 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'si
554
554
  /** Props applied to the `input` element natively. */
555
555
  slotProps?: {
556
556
  input?: InputHTMLAttributes<HTMLInputElement>;
557
+ textarea?: TextareaHTMLAttributes<HTMLTextAreaElement>;
557
558
  };
558
559
  /** Optional class name to apply to the outer wrapper */
559
560
  className?: string;
@@ -561,6 +562,21 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'si
561
562
  style?: CSSProperties;
562
563
  /** Scoped style overrides. Supports nested CSS selectors with & */
563
564
  sx?: SxProp;
565
+ /**
566
+ * Renders a `<textarea>` instead of `<input>`.
567
+ * Use together with `rows` to control height.
568
+ */
569
+ multiline?: boolean;
570
+ /**
571
+ * Number of visible text rows. Setting this to > 1 automatically
572
+ * enables multiline mode. Defaults to 4 when `multiline` is true.
573
+ */
574
+ rows?: number;
575
+ /**
576
+ * Maximum number of rows before a scrollbar appears.
577
+ * When set, the textarea grows up to this many rows then scrolls.
578
+ */
579
+ maxRows?: number;
564
580
  }
565
581
  declare const TextField: React__default.ForwardRefExoticComponent<TextFieldProps & React__default.RefAttributes<HTMLDivElement>>;
566
582
 
package/dist/main.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import React__default, { ReactNode, CSSProperties, InputHTMLAttributes, ReactElement, ComponentType } from 'react';
2
+ import React__default, { ReactNode, CSSProperties, InputHTMLAttributes, TextareaHTMLAttributes, ReactElement, ComponentType } from 'react';
3
3
 
4
4
  declare const APP_THEMES: {
5
5
  default: {
@@ -554,6 +554,7 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'si
554
554
  /** Props applied to the `input` element natively. */
555
555
  slotProps?: {
556
556
  input?: InputHTMLAttributes<HTMLInputElement>;
557
+ textarea?: TextareaHTMLAttributes<HTMLTextAreaElement>;
557
558
  };
558
559
  /** Optional class name to apply to the outer wrapper */
559
560
  className?: string;
@@ -561,6 +562,21 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'si
561
562
  style?: CSSProperties;
562
563
  /** Scoped style overrides. Supports nested CSS selectors with & */
563
564
  sx?: SxProp;
565
+ /**
566
+ * Renders a `<textarea>` instead of `<input>`.
567
+ * Use together with `rows` to control height.
568
+ */
569
+ multiline?: boolean;
570
+ /**
571
+ * Number of visible text rows. Setting this to > 1 automatically
572
+ * enables multiline mode. Defaults to 4 when `multiline` is true.
573
+ */
574
+ rows?: number;
575
+ /**
576
+ * Maximum number of rows before a scrollbar appears.
577
+ * When set, the textarea grows up to this many rows then scrolls.
578
+ */
579
+ maxRows?: number;
564
580
  }
565
581
  declare const TextField: React__default.ForwardRefExoticComponent<TextFieldProps & React__default.RefAttributes<HTMLDivElement>>;
566
582
 
package/dist/main.js CHANGED
@@ -1597,7 +1597,9 @@ var Checkbox = ({
1597
1597
  };
1598
1598
 
1599
1599
  // lib/TextFields/TextField.tsx
1600
- import React68, { forwardRef as forwardRef3 } from "react";
1600
+ import React68, {
1601
+ forwardRef as forwardRef3
1602
+ } from "react";
1601
1603
  var NUMBER_BLOCKED_KEYS = ["e", "E", "+", "-"];
1602
1604
  var BLOCKED_KEYS_BY_VARIANT = {
1603
1605
  "integer": [...NUMBER_BLOCKED_KEYS, ".", ","],
@@ -1639,15 +1641,20 @@ var TextField = forwardRef3(({
1639
1641
  slotProps,
1640
1642
  InputProps,
1641
1643
  numberVariant,
1644
+ multiline = false,
1645
+ rows,
1646
+ maxRows,
1642
1647
  ...props
1643
1648
  }, ref) => {
1644
1649
  const sxClass = useSx(sx);
1645
- const inputId = id || name || `tf-${Math.random().toString(36).substr(2, 9)}`;
1650
+ const inputId = id || name || `tf-${Math.random().toString(36).substring(2, 11)}`;
1651
+ const isTextarea = multiline || rows !== void 0 && rows > 1;
1652
+ const resolvedRows = rows ?? (multiline ? 4 : void 0);
1646
1653
  const isFloating = Boolean(
1647
1654
  value !== void 0 && value !== "" || type === "date" || type === "time" || type === "datetime-local"
1648
1655
  );
1649
1656
  const hasLabel = Boolean(label);
1650
- const readOnly = slotProps?.input?.readOnly;
1657
+ const readOnly = isTextarea ? slotProps?.textarea?.readOnly : slotProps?.input?.readOnly;
1651
1658
  const rootClasses = [
1652
1659
  "rf-text-field",
1653
1660
  `rf-text-field--${variant}`,
@@ -1660,7 +1667,8 @@ var TextField = forwardRef3(({
1660
1667
  hasLabel ? "rf-text-field--has-label" : "",
1661
1668
  InputProps?.startAdornment ? "rf-text-field--adorned-start" : "",
1662
1669
  InputProps?.endAdornment ? "rf-text-field--adorned-end" : "",
1663
- type === "number" && !disabled && !readOnly ? "rf-text-field--has-number-controls" : "",
1670
+ isTextarea ? "rf-text-field--multiline" : "",
1671
+ !isTextarea && type === "number" && !disabled && !readOnly ? "rf-text-field--has-number-controls" : "",
1664
1672
  sxClass,
1665
1673
  className
1666
1674
  ].filter(Boolean).join(" ");
@@ -1735,11 +1743,26 @@ var TextField = forwardRef3(({
1735
1743
  }
1736
1744
  }
1737
1745
  }
1738
- if (props.onKeyDown) {
1739
- props.onKeyDown(e);
1740
- }
1746
+ if (props.onKeyDown) props.onKeyDown(e);
1741
1747
  };
1742
- return /* @__PURE__ */ React68.createElement("div", { ref, className: rootClasses, style }, /* @__PURE__ */ React68.createElement("div", { className: `rf-text-field__wrapper ${InputProps?.className || ""}`, style: InputProps?.style }, InputProps?.startAdornment && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--start" }, InputProps.startAdornment), /* @__PURE__ */ React68.createElement(
1748
+ const textareaStyle = maxRows ? { maxHeight: `calc(${maxRows} * var(--tf-line-height, 1.5em) + var(--tf-textarea-vpad, 18px) * 2)`, overflowY: "auto" } : {};
1749
+ return /* @__PURE__ */ React68.createElement("div", { ref, className: rootClasses, style }, /* @__PURE__ */ React68.createElement("div", { className: `rf-text-field__wrapper ${InputProps?.className || ""}`, style: InputProps?.style }, InputProps?.startAdornment && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--start" }, InputProps.startAdornment), isTextarea ? /* @__PURE__ */ React68.createElement(
1750
+ "textarea",
1751
+ {
1752
+ id: inputId,
1753
+ name,
1754
+ className: "rf-text-field__input rf-text-field__textarea",
1755
+ placeholder: placeholder || (variant === "outlined" ? " " : void 0),
1756
+ value,
1757
+ rows: resolvedRows,
1758
+ required,
1759
+ disabled,
1760
+ readOnly,
1761
+ style: textareaStyle,
1762
+ ...slotProps?.textarea,
1763
+ onChange
1764
+ }
1765
+ ) : /* @__PURE__ */ React68.createElement(
1743
1766
  "input",
1744
1767
  {
1745
1768
  ref: internalRef,
@@ -1759,7 +1782,7 @@ var TextField = forwardRef3(({
1759
1782
  ...props,
1760
1783
  onChange: handleChange
1761
1784
  }
1762
- ), InputProps?.endAdornment && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--end" }, InputProps.endAdornment), type === "number" && !disabled && !readOnly && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__number-controls" }, /* @__PURE__ */ React68.createElement("button", { type: "button", tabIndex: -1, onClick: handleIncrement, className: "rf-text-field__number-btn" }, /* @__PURE__ */ React68.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ React68.createElement("path", { d: "M4 0L8 5H0L4 0Z" }))), /* @__PURE__ */ React68.createElement("button", { type: "button", tabIndex: -1, onClick: handleDecrement, className: "rf-text-field__number-btn", style: { marginTop: 2 } }, /* @__PURE__ */ React68.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ React68.createElement("path", { d: "M4 5L0 0H8L4 5Z" })))), hasLabel && /* @__PURE__ */ React68.createElement("label", { htmlFor: inputId, className: "rf-text-field__label" }, label, " ", required && /* @__PURE__ */ React68.createElement("span", { className: "rf-text-field__asterisk" }, "*")), variant === "outlined" && /* @__PURE__ */ React68.createElement("fieldset", { className: "rf-text-field__notch" }, hasLabel ? /* @__PURE__ */ React68.createElement("legend", { className: "rf-text-field__legend" }, /* @__PURE__ */ React68.createElement("span", null, label, " ", required ? "*" : "")) : /* @__PURE__ */ React68.createElement("legend", { className: "rf-text-field__legend--empty" }))), helperText && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__helper-text" }, helperText));
1785
+ ), InputProps?.endAdornment && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__adornment rf-text-field__adornment--end" }, InputProps.endAdornment), !isTextarea && type === "number" && !disabled && !readOnly && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__number-controls" }, /* @__PURE__ */ React68.createElement("button", { type: "button", tabIndex: -1, onClick: handleIncrement, className: "rf-text-field__number-btn" }, /* @__PURE__ */ React68.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ React68.createElement("path", { d: "M4 0L8 5H0L4 0Z" }))), /* @__PURE__ */ React68.createElement("button", { type: "button", tabIndex: -1, onClick: handleDecrement, className: "rf-text-field__number-btn", style: { marginTop: 2 } }, /* @__PURE__ */ React68.createElement("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: "currentColor" }, /* @__PURE__ */ React68.createElement("path", { d: "M4 5L0 0H8L4 5Z" })))), hasLabel && /* @__PURE__ */ React68.createElement("label", { htmlFor: inputId, className: "rf-text-field__label" }, label, " ", required && /* @__PURE__ */ React68.createElement("span", { className: "rf-text-field__asterisk" }, "*")), variant === "outlined" && /* @__PURE__ */ React68.createElement("fieldset", { className: "rf-text-field__notch" }, hasLabel ? /* @__PURE__ */ React68.createElement("legend", { className: "rf-text-field__legend" }, /* @__PURE__ */ React68.createElement("span", null, label, " ", required ? "*" : "")) : /* @__PURE__ */ React68.createElement("legend", { className: "rf-text-field__legend--empty" }))), helperText && /* @__PURE__ */ React68.createElement("div", { className: "rf-text-field__helper-text" }, helperText));
1763
1786
  });
1764
1787
  TextField.displayName = "TextField";
1765
1788
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rufous/ui",
3
3
  "private": false,
4
- "version": "0.2.99",
4
+ "version": "0.2.100",
5
5
  "type": "module",
6
6
  "description": "Experimental: A lightweight React UI component library (Beta)",
7
7
  "style": "./dist/main.css",