@ceed/ads 1.13.3 → 1.15.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/Overview.md +11 -0
  2. package/dist/components/Input/Input.d.ts +9 -1
  3. package/dist/components/Menu/Menu.d.ts +2 -5
  4. package/dist/components/Stepper/Stepper.d.ts +6 -0
  5. package/dist/components/data-display/Avatar.md +428 -0
  6. package/dist/components/data-display/Badge.md +315 -0
  7. package/dist/components/data-display/Chip.md +301 -0
  8. package/dist/components/data-display/DataTable.md +452 -0
  9. package/dist/components/data-display/InfoSign.md +160 -0
  10. package/dist/components/data-display/Markdown.md +17 -0
  11. package/dist/components/data-display/Table.md +1330 -0
  12. package/dist/components/data-display/Tooltip.md +444 -0
  13. package/dist/components/data-display/Typography.md +271 -0
  14. package/dist/components/data-display/llms.txt +17 -0
  15. package/dist/components/feedback/Alert.md +663 -0
  16. package/dist/components/feedback/Dialog.md +33 -0
  17. package/dist/components/feedback/Modal.md +39 -0
  18. package/dist/components/feedback/llms.txt +11 -0
  19. package/dist/components/inputs/Autocomplete.md +103 -0
  20. package/dist/components/inputs/Button.md +334 -0
  21. package/dist/components/inputs/ButtonGroup.md +382 -0
  22. package/dist/components/inputs/Calendar.md +19 -0
  23. package/dist/components/inputs/Checkbox.md +649 -0
  24. package/dist/components/inputs/CurrencyInput.md +91 -0
  25. package/dist/components/inputs/DatePicker.md +67 -0
  26. package/dist/components/inputs/DateRangePicker.md +55 -0
  27. package/dist/components/inputs/FilterMenu.md +210 -0
  28. package/dist/components/inputs/IconButton.md +361 -0
  29. package/dist/components/inputs/Input.md +283 -0
  30. package/dist/components/inputs/MonthPicker.md +72 -0
  31. package/dist/components/inputs/MonthRangePicker.md +70 -0
  32. package/dist/components/inputs/PercentageInput.md +116 -0
  33. package/dist/components/inputs/RadioButton.md +350 -0
  34. package/dist/components/inputs/RadioTileGroup.md +418 -0
  35. package/dist/components/inputs/Select.md +56 -0
  36. package/dist/components/inputs/Switch.md +577 -0
  37. package/dist/components/inputs/Textarea.md +64 -0
  38. package/dist/components/inputs/Uploader/Uploader.md +238 -0
  39. package/dist/components/inputs/Uploader/llms.txt +9 -0
  40. package/dist/components/inputs/llms.txt +31 -0
  41. package/dist/components/layout/Box.md +997 -0
  42. package/dist/components/layout/Container.md +23 -0
  43. package/dist/components/layout/Grid.md +728 -0
  44. package/dist/components/layout/Stack.md +937 -0
  45. package/dist/components/layout/llms.txt +12 -0
  46. package/dist/components/llms.txt +14 -0
  47. package/dist/components/navigation/Breadcrumbs.md +51 -0
  48. package/dist/components/navigation/Dropdown.md +768 -0
  49. package/dist/components/navigation/IconMenuButton.md +35 -0
  50. package/dist/components/navigation/InsetDrawer.md +133 -0
  51. package/dist/components/navigation/Link.md +24 -0
  52. package/dist/components/navigation/Menu.md +957 -0
  53. package/dist/components/navigation/MenuButton.md +39 -0
  54. package/dist/components/navigation/NavigationGroup.md +17 -0
  55. package/dist/components/navigation/NavigationItem.md +17 -0
  56. package/dist/components/navigation/Navigator.md +17 -0
  57. package/dist/components/navigation/Pagination.md +17 -0
  58. package/dist/components/navigation/ProfileMenu.md +34 -0
  59. package/dist/components/navigation/Stepper.md +108 -0
  60. package/dist/components/navigation/Tabs.md +34 -0
  61. package/dist/components/navigation/llms.txt +22 -0
  62. package/dist/components/surfaces/Accordions.md +96 -0
  63. package/dist/components/surfaces/Card.md +786 -0
  64. package/dist/components/surfaces/Divider.md +762 -0
  65. package/dist/components/surfaces/Sheet.md +900 -0
  66. package/dist/components/surfaces/llms.txt +12 -0
  67. package/dist/index.cjs +47 -11
  68. package/dist/index.js +81 -45
  69. package/dist/llms.txt +75 -0
  70. package/framer/index.js +36 -36
  71. package/package.json +8 -4
@@ -0,0 +1,12 @@
1
+ # surfaces
2
+
3
+ ## Documentation
4
+
5
+ - [Accordions](./Accordions.md)
6
+ - [Card](./Card.md)
7
+ - [Divider](./Divider.md)
8
+ - [Sheet](./Sheet.md)
9
+
10
+ ## Parent
11
+
12
+ - [Parent](../llms.txt)
package/dist/index.cjs CHANGED
@@ -746,11 +746,7 @@ var Menu = (props) => {
746
746
  return /* @__PURE__ */ import_react8.default.createElement(MotionMenu, { ...props });
747
747
  };
748
748
  Menu.displayName = "Menu";
749
- var MotionMenuItem = (0, import_framer_motion10.motion)(import_joy13.MenuItem);
750
- var MenuItem = (props) => {
751
- return /* @__PURE__ */ import_react8.default.createElement(MotionMenuItem, { ...props });
752
- };
753
- MenuItem.displayName = "MenuItem";
749
+ var MenuItem = import_joy13.MenuItem;
754
750
 
755
751
  // src/components/Menu/index.ts
756
752
  var Menu_default = Menu;
@@ -1568,6 +1564,8 @@ var import_react16 = __toESM(require("react"));
1568
1564
  var import_joy22 = require("@mui/joy");
1569
1565
  var import_framer_motion15 = require("framer-motion");
1570
1566
  var import_Close2 = __toESM(require("@mui/icons-material/Close"));
1567
+ var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
1568
+ var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
1571
1569
  var MotionInput = (0, import_framer_motion15.motion)(import_joy22.Input);
1572
1570
  var Input = import_react16.default.forwardRef((props, ref) => {
1573
1571
  const {
@@ -1581,12 +1579,18 @@ var Input = import_react16.default.forwardRef((props, ref) => {
1581
1579
  required,
1582
1580
  onChange,
1583
1581
  name,
1582
+ type,
1584
1583
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
1585
1584
  sx,
1586
1585
  className,
1587
1586
  enableClearable,
1587
+ disableTogglePasswordButton,
1588
1588
  ...innerProps
1589
1589
  } = props;
1590
+ if (type === "password" && innerProps.endDecorator) {
1591
+ console.warn('Input: endDecorator is not supported when type="password"');
1592
+ }
1593
+ const [passwordVisible, setPasswordVisible] = (0, import_react16.useState)(false);
1590
1594
  const [value, setValue] = useControlledState(
1591
1595
  props.value,
1592
1596
  props.defaultValue,
@@ -1610,6 +1614,12 @@ var Input = import_react16.default.forwardRef((props, ref) => {
1610
1614
  const handleClear = () => {
1611
1615
  setValue(props.defaultValue || "");
1612
1616
  };
1617
+ const handleTogglePasswordVisibility = () => {
1618
+ setPasswordVisible((prev) => !prev);
1619
+ };
1620
+ const actualType = type === "password" && passwordVisible ? "text" : type;
1621
+ const isPasswordType = type === "password";
1622
+ const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
1613
1623
  const input = /* @__PURE__ */ import_react16.default.createElement(
1614
1624
  MotionInput,
1615
1625
  {
@@ -1619,12 +1629,22 @@ var Input = import_react16.default.forwardRef((props, ref) => {
1619
1629
  required,
1620
1630
  color: error ? "danger" : color,
1621
1631
  disabled,
1632
+ type: actualType,
1622
1633
  slotProps: {
1623
1634
  input: { ref, ...innerProps.slotProps?.input },
1624
1635
  ...innerProps.slotProps
1625
1636
  },
1626
1637
  ...innerProps,
1627
- endDecorator: enableClearable ? /* @__PURE__ */ import_react16.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ import_react16.default.createElement(
1638
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react16.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react16.default.createElement(
1639
+ IconButton_default,
1640
+ {
1641
+ onMouseDown: (e) => e.preventDefault(),
1642
+ onClick: handleTogglePasswordVisibility,
1643
+ disabled,
1644
+ "aria-label": passwordVisible ? "Hide password" : "Show password"
1645
+ },
1646
+ passwordVisible ? /* @__PURE__ */ import_react16.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react16.default.createElement(import_Visibility.default, null)
1647
+ )) : null : enableClearable ? /* @__PURE__ */ import_react16.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ import_react16.default.createElement(
1628
1648
  IconButton_default,
1629
1649
  {
1630
1650
  onMouseDown: (e) => e.preventDefault(),
@@ -6497,11 +6517,15 @@ function Stepper(props) {
6497
6517
  inactiveColor = "neutral.400",
6498
6518
  activeLineColor = "primary.500",
6499
6519
  inactiveLineColor = "neutral.300",
6500
- activeStep
6520
+ activeStep,
6521
+ orientation = "horizontal",
6522
+ stepOrientation = "horizontal"
6501
6523
  } = props;
6524
+ const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
6502
6525
  return /* @__PURE__ */ import_react55.default.createElement(
6503
6526
  MotionStepper,
6504
6527
  {
6528
+ orientation,
6505
6529
  sx: (theme) => ({
6506
6530
  "--StepIndicator-size": "24px",
6507
6531
  "--Step-gap": theme.spacing(2),
@@ -6523,7 +6547,11 @@ function Stepper(props) {
6523
6547
  [`& .${import_joy66.stepClasses.disabled}`]: {
6524
6548
  "&::after": { bgcolor: inactiveLineColor },
6525
6549
  [`& .${import_joy66.stepIndicatorClasses.root}`]: {
6526
- bgcolor: inactiveColor
6550
+ bgcolor: theme.vars.palette.background.surface,
6551
+ borderColor: theme.vars.palette.neutral.outlinedBorder,
6552
+ borderWidth: "1px",
6553
+ borderStyle: "solid",
6554
+ color: theme.vars.palette.neutral.plainColor
6527
6555
  }
6528
6556
  }
6529
6557
  })
@@ -6537,12 +6565,20 @@ function Stepper(props) {
6537
6565
  Step,
6538
6566
  {
6539
6567
  key: `step-${i}`,
6540
- indicator: /* @__PURE__ */ import_react55.default.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ import_react55.default.createElement(import_Check.default, null) : step.indicatorContent),
6568
+ indicator: /* @__PURE__ */ import_react55.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react55.default.createElement(import_Check.default, null) : step.indicatorContent),
6541
6569
  active,
6542
6570
  completed,
6543
- disabled
6571
+ disabled,
6572
+ orientation: effectiveStepOrientation
6544
6573
  },
6545
- hasContent && /* @__PURE__ */ import_react55.default.createElement(Stack_default, null, step.label && /* @__PURE__ */ import_react55.default.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ import_react55.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
6574
+ hasContent && /* @__PURE__ */ import_react55.default.createElement(
6575
+ Stack_default,
6576
+ {
6577
+ sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
6578
+ },
6579
+ step.label && /* @__PURE__ */ import_react55.default.createElement(Typography_default, { level: "title-sm" }, step.label),
6580
+ step.extraContent && /* @__PURE__ */ import_react55.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
6581
+ )
6546
6582
  );
6547
6583
  })
6548
6584
  );
package/dist/index.js CHANGED
@@ -653,11 +653,7 @@ var Menu = (props) => {
653
653
  return /* @__PURE__ */ React7.createElement(MotionMenu, { ...props });
654
654
  };
655
655
  Menu.displayName = "Menu";
656
- var MotionMenuItem = motion10(JoyMenuItem);
657
- var MenuItem = (props) => {
658
- return /* @__PURE__ */ React7.createElement(MotionMenuItem, { ...props });
659
- };
660
- MenuItem.displayName = "MenuItem";
656
+ var MenuItem = JoyMenuItem;
661
657
 
662
658
  // src/components/Menu/index.ts
663
659
  var Menu_default = Menu;
@@ -1472,15 +1468,17 @@ var Container = forwardRef5(function Container2(props, ref) {
1472
1468
  Container.displayName = "Container";
1473
1469
 
1474
1470
  // src/components/CurrencyInput/CurrencyInput.tsx
1475
- import React15, { useCallback as useCallback6, useMemo as useMemo5, useState as useState4 } from "react";
1471
+ import React15, { useCallback as useCallback6, useMemo as useMemo5, useState as useState5 } from "react";
1476
1472
  import { IntlMessageFormat as IntlMessageFormat2 } from "intl-messageformat";
1477
1473
  import { NumericFormat } from "react-number-format";
1478
1474
 
1479
1475
  // src/components/Input/Input.tsx
1480
- import React14, { useCallback as useCallback5 } from "react";
1476
+ import React14, { useCallback as useCallback5, useState as useState4 } from "react";
1481
1477
  import { Input as JoyInput } from "@mui/joy";
1482
1478
  import { motion as motion15 } from "framer-motion";
1483
1479
  import ClearIcon from "@mui/icons-material/Close";
1480
+ import VisibilityIcon from "@mui/icons-material/Visibility";
1481
+ import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
1484
1482
  var MotionInput = motion15(JoyInput);
1485
1483
  var Input = React14.forwardRef((props, ref) => {
1486
1484
  const {
@@ -1494,12 +1492,18 @@ var Input = React14.forwardRef((props, ref) => {
1494
1492
  required,
1495
1493
  onChange,
1496
1494
  name,
1495
+ type,
1497
1496
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
1498
1497
  sx,
1499
1498
  className,
1500
1499
  enableClearable,
1500
+ disableTogglePasswordButton,
1501
1501
  ...innerProps
1502
1502
  } = props;
1503
+ if (type === "password" && innerProps.endDecorator) {
1504
+ console.warn('Input: endDecorator is not supported when type="password"');
1505
+ }
1506
+ const [passwordVisible, setPasswordVisible] = useState4(false);
1503
1507
  const [value, setValue] = useControlledState(
1504
1508
  props.value,
1505
1509
  props.defaultValue,
@@ -1523,6 +1527,12 @@ var Input = React14.forwardRef((props, ref) => {
1523
1527
  const handleClear = () => {
1524
1528
  setValue(props.defaultValue || "");
1525
1529
  };
1530
+ const handleTogglePasswordVisibility = () => {
1531
+ setPasswordVisible((prev) => !prev);
1532
+ };
1533
+ const actualType = type === "password" && passwordVisible ? "text" : type;
1534
+ const isPasswordType = type === "password";
1535
+ const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
1526
1536
  const input = /* @__PURE__ */ React14.createElement(
1527
1537
  MotionInput,
1528
1538
  {
@@ -1532,12 +1542,22 @@ var Input = React14.forwardRef((props, ref) => {
1532
1542
  required,
1533
1543
  color: error ? "danger" : color,
1534
1544
  disabled,
1545
+ type: actualType,
1535
1546
  slotProps: {
1536
1547
  input: { ref, ...innerProps.slotProps?.input },
1537
1548
  ...innerProps.slotProps
1538
1549
  },
1539
1550
  ...innerProps,
1540
- endDecorator: enableClearable ? /* @__PURE__ */ React14.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ React14.createElement(
1551
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ React14.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ React14.createElement(
1552
+ IconButton_default,
1553
+ {
1554
+ onMouseDown: (e) => e.preventDefault(),
1555
+ onClick: handleTogglePasswordVisibility,
1556
+ disabled,
1557
+ "aria-label": passwordVisible ? "Hide password" : "Show password"
1558
+ },
1559
+ passwordVisible ? /* @__PURE__ */ React14.createElement(VisibilityOffIcon, null) : /* @__PURE__ */ React14.createElement(VisibilityIcon, null)
1560
+ )) : null : enableClearable ? /* @__PURE__ */ React14.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ React14.createElement(
1541
1561
  IconButton_default,
1542
1562
  {
1543
1563
  onMouseDown: (e) => e.preventDefault(),
@@ -1790,7 +1810,7 @@ var CurrencyInput = React15.forwardRef(function CurrencyInput2(inProps, ref) {
1790
1810
  }
1791
1811
  return props.max;
1792
1812
  }, [props.max, useMinorUnit, decimalScale]);
1793
- const [isOverLimit, setIsOverLimit] = useState4(!!max && !!value && value > max);
1813
+ const [isOverLimit, setIsOverLimit] = useState5(!!max && !!value && value > max);
1794
1814
  const handleChange = useCallback6(
1795
1815
  (event) => {
1796
1816
  if (event.target.value === "") {
@@ -2108,7 +2128,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React16.createElement(
2108
2128
  // src/components/DataTable/components.tsx
2109
2129
  import React22, {
2110
2130
  useRef as useRef4,
2111
- useState as useState6,
2131
+ useState as useState7,
2112
2132
  useLayoutEffect,
2113
2133
  useMemo as useMemo8,
2114
2134
  useCallback as useCallback8,
@@ -2120,7 +2140,7 @@ import { styled as styled12, useTheme } from "@mui/joy";
2120
2140
  import { AnimatePresence as AnimatePresence2 } from "framer-motion";
2121
2141
 
2122
2142
  // src/components/DatePicker/DatePicker.tsx
2123
- import React17, { forwardRef as forwardRef6, useCallback as useCallback7, useEffect as useEffect3, useImperativeHandle, useRef as useRef3, useState as useState5 } from "react";
2143
+ import React17, { forwardRef as forwardRef6, useCallback as useCallback7, useEffect as useEffect3, useImperativeHandle, useRef as useRef3, useState as useState6 } from "react";
2124
2144
  import { IMaskInput, IMask } from "react-imask";
2125
2145
  import CalendarTodayIcon from "@mui/icons-material/CalendarToday";
2126
2146
  import { styled as styled10, useThemeProps as useThemeProps4 } from "@mui/joy";
@@ -2301,10 +2321,10 @@ var DatePicker = forwardRef6((inProps, ref) => {
2301
2321
  props.defaultValue || "",
2302
2322
  useCallback7((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
2303
2323
  );
2304
- const [displayValue, setDisplayValue] = useState5(
2324
+ const [displayValue, setDisplayValue] = useState6(
2305
2325
  () => value ? formatValueString(parseDate(value, format), displayFormat) : ""
2306
2326
  );
2307
- const [anchorEl, setAnchorEl] = useState5(null);
2327
+ const [anchorEl, setAnchorEl] = useState6(null);
2308
2328
  const open = Boolean(anchorEl);
2309
2329
  useEffect3(() => {
2310
2330
  if (!anchorEl) {
@@ -2675,7 +2695,7 @@ var InfoSign_default = InfoSign;
2675
2695
  // src/components/DataTable/components.tsx
2676
2696
  var TextEllipsis = ({ children }) => {
2677
2697
  const textRef = useRef4(null);
2678
- const [showTooltip, setShowTooltip] = useState6(false);
2698
+ const [showTooltip, setShowTooltip] = useState7(false);
2679
2699
  useLayoutEffect(() => {
2680
2700
  const element = textRef.current;
2681
2701
  if (element) {
@@ -2691,7 +2711,7 @@ var TextEllipsis = ({ children }) => {
2691
2711
  };
2692
2712
  var CellTextEllipsis = ({ children }) => {
2693
2713
  const textRef = useRef4(null);
2694
- const [showTooltip, setShowTooltip] = useState6(false);
2714
+ const [showTooltip, setShowTooltip] = useState7(false);
2695
2715
  useLayoutEffect(() => {
2696
2716
  const element = textRef.current;
2697
2717
  if (element) {
@@ -2743,7 +2763,7 @@ var HeadCell = (props) => {
2743
2763
  const theme = useTheme();
2744
2764
  const ref = headerRef;
2745
2765
  const colRef = tableColRef;
2746
- const [isHovered, setIsHovered] = useState6(false);
2766
+ const [isHovered, setIsHovered] = useState7(false);
2747
2767
  const sortable = type === "actions" ? false : _sortable;
2748
2768
  const headId = useMemo8(
2749
2769
  () => `${tableId}_header_${headerName ?? field}`.trim(),
@@ -2857,7 +2877,7 @@ var BodyCell = (props) => {
2857
2877
  onCellEditStop
2858
2878
  } = props;
2859
2879
  const theme = useTheme();
2860
- const [value, setValue] = useState6(row[field]);
2880
+ const [value, setValue] = useState7(row[field]);
2861
2881
  const cellRef = useRef4(null);
2862
2882
  const params = useMemo8(
2863
2883
  () => ({
@@ -3073,9 +3093,9 @@ var VirtualizedTableRow = memo(StyledTableRow2, (prevProps, nextProps) => {
3073
3093
  });
3074
3094
 
3075
3095
  // src/components/DataTable/hooks.ts
3076
- import { useState as useState7, useLayoutEffect as useLayoutEffect2, useRef as useRef5, useMemo as useMemo9, useCallback as useCallback9, useEffect as useEffect5, createRef } from "react";
3096
+ import { useState as useState8, useLayoutEffect as useLayoutEffect2, useRef as useRef5, useMemo as useMemo9, useCallback as useCallback9, useEffect as useEffect5, createRef } from "react";
3077
3097
  function useColumnWidths(columnsByField) {
3078
- const [widths, setWidths] = useState7({});
3098
+ const [widths, setWidths] = useState8({});
3079
3099
  const roRef = useRef5();
3080
3100
  useLayoutEffect2(() => {
3081
3101
  if (roRef.current) roRef.current.disconnect();
@@ -3133,7 +3153,7 @@ function useDataTableRenderer({
3133
3153
  }
3134
3154
  const onSelectionModelChangeRef = useRef5(onSelectionModelChange);
3135
3155
  onSelectionModelChangeRef.current = onSelectionModelChange;
3136
- const [focusedRowId, setFocusedRowId] = useState7(null);
3156
+ const [focusedRowId, setFocusedRowId] = useState8(null);
3137
3157
  const [sortModel, setSortModel] = useControlledState(
3138
3158
  controlledSortModel,
3139
3159
  initialState?.sorting?.sortModel ?? [],
@@ -3193,7 +3213,7 @@ function useDataTableRenderer({
3193
3213
  () => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
3194
3214
  [_sortOrder]
3195
3215
  );
3196
- const [page, setPage] = useState7(paginationModel?.page || 1);
3216
+ const [page, setPage] = useState8(paginationModel?.page || 1);
3197
3217
  const pageSize = paginationModel?.pageSize || 20;
3198
3218
  const getId = useCallback9(
3199
3219
  (row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
@@ -3932,7 +3952,7 @@ var DataTable = forwardRef7(Component);
3932
3952
  DataTable.displayName = "DataTable";
3933
3953
 
3934
3954
  // src/components/DateRangePicker/DateRangePicker.tsx
3935
- import React26, { forwardRef as forwardRef8, useCallback as useCallback12, useEffect as useEffect7, useImperativeHandle as useImperativeHandle3, useMemo as useMemo11, useRef as useRef7, useState as useState8 } from "react";
3955
+ import React26, { forwardRef as forwardRef8, useCallback as useCallback12, useEffect as useEffect7, useImperativeHandle as useImperativeHandle3, useMemo as useMemo11, useRef as useRef7, useState as useState9 } from "react";
3936
3956
  import { IMaskInput as IMaskInput2, IMask as IMask2 } from "react-imask";
3937
3957
  import CalendarTodayIcon2 from "@mui/icons-material/CalendarToday";
3938
3958
  import { styled as styled14, useThemeProps as useThemeProps5 } from "@mui/joy";
@@ -4100,10 +4120,10 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
4100
4120
  props.defaultValue || "",
4101
4121
  useCallback12((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
4102
4122
  );
4103
- const [displayValue, setDisplayValue] = useState8(
4123
+ const [displayValue, setDisplayValue] = useState9(
4104
4124
  () => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
4105
4125
  );
4106
- const [anchorEl, setAnchorEl] = useState8(null);
4126
+ const [anchorEl, setAnchorEl] = useState9(null);
4107
4127
  const open = Boolean(anchorEl);
4108
4128
  const calendarValue = useMemo11(
4109
4129
  () => value ? parseDates(value, format) : void 0,
@@ -4462,7 +4482,7 @@ function RadioGroup2(props) {
4462
4482
  RadioGroup2.displayName = "RadioGroup";
4463
4483
 
4464
4484
  // src/components/FilterMenu/components/DateRange.tsx
4465
- import React32, { useCallback as useCallback15, useMemo as useMemo12, useState as useState9, useEffect as useEffect8 } from "react";
4485
+ import React32, { useCallback as useCallback15, useMemo as useMemo12, useState as useState10, useEffect as useEffect8 } from "react";
4466
4486
  import { Stack as Stack4 } from "@mui/joy";
4467
4487
  function DateRange(props) {
4468
4488
  const {
@@ -4481,7 +4501,7 @@ function DateRange(props) {
4481
4501
  hideClearButton
4482
4502
  } = props;
4483
4503
  const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
4484
- const [selectedOption, setSelectedOption] = useState9("all-time");
4504
+ const [selectedOption, setSelectedOption] = useState10("all-time");
4485
4505
  const dateRangeOptions = useMemo12(
4486
4506
  () => [
4487
4507
  { label: "All Time", value: "all-time" },
@@ -4707,7 +4727,7 @@ import React36 from "react";
4707
4727
  import { Stack as Stack7, Typography as Typography2 } from "@mui/joy";
4708
4728
 
4709
4729
  // src/components/PercentageInput/PercentageInput.tsx
4710
- import React35, { useCallback as useCallback18, useMemo as useMemo13, useState as useState10 } from "react";
4730
+ import React35, { useCallback as useCallback18, useMemo as useMemo13, useState as useState11 } from "react";
4711
4731
  import { NumericFormat as NumericFormat2 } from "react-number-format";
4712
4732
  import { styled as styled20, useThemeProps as useThemeProps6 } from "@mui/joy";
4713
4733
  var padDecimal = (value, decimalScale) => {
@@ -4766,7 +4786,7 @@ var PercentageInput = React35.forwardRef(
4766
4786
  props.defaultValue,
4767
4787
  useCallback18((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
4768
4788
  );
4769
- const [internalError, setInternalError] = useState10(
4789
+ const [internalError, setInternalError] = useState11(
4770
4790
  max && _value && _value > max || min && _value && _value < min
4771
4791
  );
4772
4792
  const value = useMemo13(() => {
@@ -5028,7 +5048,7 @@ function FilterMenu(props) {
5028
5048
  FilterMenu.displayName = "FilterMenu";
5029
5049
 
5030
5050
  // src/components/Uploader/Uploader.tsx
5031
- import React40, { useCallback as useCallback22, useEffect as useEffect9, useMemo as useMemo14, useRef as useRef8, useState as useState11 } from "react";
5051
+ import React40, { useCallback as useCallback22, useEffect as useEffect9, useMemo as useMemo14, useRef as useRef8, useState as useState12 } from "react";
5032
5052
  import { styled as styled21, Input as Input2 } from "@mui/joy";
5033
5053
  import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
5034
5054
  import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
@@ -5179,10 +5199,10 @@ var Uploader = React40.memo(
5179
5199
  } = props;
5180
5200
  const dropZoneRef = useRef8(null);
5181
5201
  const inputRef = useRef8(null);
5182
- const [errorText, setErrorText] = useState11();
5183
- const [files, setFiles] = useState11([]);
5184
- const [uploaded, setUploaded] = useState11(props.uploaded || []);
5185
- const [previewState, setPreviewState] = useState11("idle");
5202
+ const [errorText, setErrorText] = useState12();
5203
+ const [files, setFiles] = useState12([]);
5204
+ const [uploaded, setUploaded] = useState12(props.uploaded || []);
5205
+ const [previewState, setPreviewState] = useState12("idle");
5186
5206
  const accepts = useMemo14(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
5187
5207
  const parsedAccepts = useMemo14(
5188
5208
  () => accepts.flatMap((type) => {
@@ -5442,13 +5462,13 @@ function IconMenuButton(props) {
5442
5462
  IconMenuButton.displayName = "IconMenuButton";
5443
5463
 
5444
5464
  // src/components/Markdown/Markdown.tsx
5445
- import React42, { lazy, Suspense, useEffect as useEffect10, useState as useState12 } from "react";
5465
+ import React42, { lazy, Suspense, useEffect as useEffect10, useState as useState13 } from "react";
5446
5466
  import { Skeleton } from "@mui/joy";
5447
5467
  import { Link as Link2 } from "@mui/joy";
5448
5468
  import remarkGfm from "remark-gfm";
5449
5469
  var LazyReactMarkdown = lazy(() => import("react-markdown"));
5450
5470
  var Markdown = (props) => {
5451
- const [rehypeAccent2, setRehypeAccent] = useState12(null);
5471
+ const [rehypeAccent2, setRehypeAccent] = useState13(null);
5452
5472
  useEffect10(() => {
5453
5473
  const loadRehypeAccent = async () => {
5454
5474
  const module = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
@@ -5555,7 +5575,7 @@ function MenuButton(props) {
5555
5575
  MenuButton.displayName = "MenuButton";
5556
5576
 
5557
5577
  // src/components/MonthPicker/MonthPicker.tsx
5558
- import React44, { forwardRef as forwardRef9, useCallback as useCallback23, useEffect as useEffect11, useImperativeHandle as useImperativeHandle4, useRef as useRef9, useState as useState13 } from "react";
5578
+ import React44, { forwardRef as forwardRef9, useCallback as useCallback23, useEffect as useEffect11, useImperativeHandle as useImperativeHandle4, useRef as useRef9, useState as useState14 } from "react";
5559
5579
  import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
5560
5580
  import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
5561
5581
  import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
@@ -5655,8 +5675,8 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5655
5675
  },
5656
5676
  [format, displayFormat, locale]
5657
5677
  );
5658
- const [displayValue, setDisplayValue] = useState13(() => getFormattedDisplayValue(value));
5659
- const [anchorEl, setAnchorEl] = useState13(null);
5678
+ const [displayValue, setDisplayValue] = useState14(() => getFormattedDisplayValue(value));
5679
+ const [anchorEl, setAnchorEl] = useState14(null);
5660
5680
  const open = Boolean(anchorEl);
5661
5681
  useEffect11(() => {
5662
5682
  if (!anchorEl) {
@@ -5808,7 +5828,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5808
5828
  });
5809
5829
 
5810
5830
  // src/components/MonthRangePicker/MonthRangePicker.tsx
5811
- import React45, { forwardRef as forwardRef10, useCallback as useCallback24, useEffect as useEffect12, useImperativeHandle as useImperativeHandle5, useMemo as useMemo15, useRef as useRef10, useState as useState14 } from "react";
5831
+ import React45, { forwardRef as forwardRef10, useCallback as useCallback24, useEffect as useEffect12, useImperativeHandle as useImperativeHandle5, useMemo as useMemo15, useRef as useRef10, useState as useState15 } from "react";
5812
5832
  import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
5813
5833
  import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
5814
5834
  import { styled as styled23, useThemeProps as useThemeProps8 } from "@mui/joy";
@@ -5922,7 +5942,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
5922
5942
  props.defaultValue || "",
5923
5943
  useCallback24((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
5924
5944
  );
5925
- const [anchorEl, setAnchorEl] = useState14(null);
5945
+ const [anchorEl, setAnchorEl] = useState15(null);
5926
5946
  const open = Boolean(anchorEl);
5927
5947
  const calendarValue = useMemo15(() => value ? parseDates2(value) : void 0, [value]);
5928
5948
  useEffect12(() => {
@@ -6453,11 +6473,15 @@ function Stepper(props) {
6453
6473
  inactiveColor = "neutral.400",
6454
6474
  activeLineColor = "primary.500",
6455
6475
  inactiveLineColor = "neutral.300",
6456
- activeStep
6476
+ activeStep,
6477
+ orientation = "horizontal",
6478
+ stepOrientation = "horizontal"
6457
6479
  } = props;
6480
+ const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
6458
6481
  return /* @__PURE__ */ React52.createElement(
6459
6482
  MotionStepper,
6460
6483
  {
6484
+ orientation,
6461
6485
  sx: (theme) => ({
6462
6486
  "--StepIndicator-size": "24px",
6463
6487
  "--Step-gap": theme.spacing(2),
@@ -6479,7 +6503,11 @@ function Stepper(props) {
6479
6503
  [`& .${stepClasses.disabled}`]: {
6480
6504
  "&::after": { bgcolor: inactiveLineColor },
6481
6505
  [`& .${stepIndicatorClasses.root}`]: {
6482
- bgcolor: inactiveColor
6506
+ bgcolor: theme.vars.palette.background.surface,
6507
+ borderColor: theme.vars.palette.neutral.outlinedBorder,
6508
+ borderWidth: "1px",
6509
+ borderStyle: "solid",
6510
+ color: theme.vars.palette.neutral.plainColor
6483
6511
  }
6484
6512
  }
6485
6513
  })
@@ -6493,12 +6521,20 @@ function Stepper(props) {
6493
6521
  Step,
6494
6522
  {
6495
6523
  key: `step-${i}`,
6496
- indicator: /* @__PURE__ */ React52.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ React52.createElement(CheckIcon, null) : step.indicatorContent),
6524
+ indicator: /* @__PURE__ */ React52.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React52.createElement(CheckIcon, null) : step.indicatorContent),
6497
6525
  active,
6498
6526
  completed,
6499
- disabled
6527
+ disabled,
6528
+ orientation: effectiveStepOrientation
6500
6529
  },
6501
- hasContent && /* @__PURE__ */ React52.createElement(Stack_default, null, step.label && /* @__PURE__ */ React52.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ React52.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
6530
+ hasContent && /* @__PURE__ */ React52.createElement(
6531
+ Stack_default,
6532
+ {
6533
+ sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
6534
+ },
6535
+ step.label && /* @__PURE__ */ React52.createElement(Typography_default, { level: "title-sm" }, step.label),
6536
+ step.extraContent && /* @__PURE__ */ React52.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
6537
+ )
6502
6538
  );
6503
6539
  })
6504
6540
  );
package/dist/llms.txt ADDED
@@ -0,0 +1,75 @@
1
+ # @ceed/ads Component Guide
2
+
3
+ ## Table of Contents
4
+
5
+ - [ADS (Admin Design System)](./Overview.md)
6
+ - [components](./components/llms.txt)
7
+ - [data-display](./components/data-display/llms.txt)
8
+ - [Avatar](./components/data-display/Avatar.md)
9
+ - [Badge](./components/data-display/Badge.md)
10
+ - [Chip](./components/data-display/Chip.md)
11
+ - [DataTable](./components/data-display/DataTable.md)
12
+ - [InfoSign](./components/data-display/InfoSign.md)
13
+ - [Markdown](./components/data-display/Markdown.md)
14
+ - [Table](./components/data-display/Table.md)
15
+ - [Tooltip](./components/data-display/Tooltip.md)
16
+ - [Typography](./components/data-display/Typography.md)
17
+ - [feedback](./components/feedback/llms.txt)
18
+ - [Alert](./components/feedback/Alert.md)
19
+ - [Dialog](./components/feedback/Dialog.md)
20
+ - [Modal](./components/feedback/Modal.md)
21
+ - [inputs](./components/inputs/llms.txt)
22
+ - [Autocomplete](./components/inputs/Autocomplete.md)
23
+ - [Button](./components/inputs/Button.md)
24
+ - [ButtonGroup](./components/inputs/ButtonGroup.md)
25
+ - [Calendar](./components/inputs/Calendar.md)
26
+ - [Checkbox](./components/inputs/Checkbox.md)
27
+ - [CurrencyInput](./components/inputs/CurrencyInput.md)
28
+ - [DatePicker](./components/inputs/DatePicker.md)
29
+ - [DateRangePicker](./components/inputs/DateRangePicker.md)
30
+ - [FilterMenu](./components/inputs/FilterMenu.md)
31
+ - [IconButton](./components/inputs/IconButton.md)
32
+ - [Input](./components/inputs/Input.md)
33
+ - [MonthPicker](./components/inputs/MonthPicker.md)
34
+ - [MonthRangePicker](./components/inputs/MonthRangePicker.md)
35
+ - [PercentageInput](./components/inputs/PercentageInput.md)
36
+ - [Radio](./components/inputs/RadioButton.md)
37
+ - [RadioTileGroup](./components/inputs/RadioTileGroup.md)
38
+ - [Select](./components/inputs/Select.md)
39
+ - [Switch](./components/inputs/Switch.md)
40
+ - [Textarea](./components/inputs/Textarea.md)
41
+ - [Uploader](./components/inputs/Uploader/llms.txt)
42
+ - [Uploader](./components/inputs/Uploader/Uploader.md)
43
+ - [layout](./components/layout/llms.txt)
44
+ - [Box](./components/layout/Box.md)
45
+ - [Container](./components/layout/Container.md)
46
+ - [Grid](./components/layout/Grid.md)
47
+ - [Stack](./components/layout/Stack.md)
48
+ - [navigation](./components/navigation/llms.txt)
49
+ - [Breadcrumbs](./components/navigation/Breadcrumbs.md)
50
+ - [Dropdown](./components/navigation/Dropdown.md)
51
+ - [IconMenuButton](./components/navigation/IconMenuButton.md)
52
+ - [InsetDrawer](./components/navigation/InsetDrawer.md)
53
+ - [Link](./components/navigation/Link.md)
54
+ - [Menu](./components/navigation/Menu.md)
55
+ - [MenuButton](./components/navigation/MenuButton.md)
56
+ - [NavigationGroup](./components/navigation/NavigationGroup.md)
57
+ - [NavigationItem](./components/navigation/NavigationItem.md)
58
+ - [Navigator](./components/navigation/Navigator.md)
59
+ - [Pagination](./components/navigation/Pagination.md)
60
+ - [ProfileMenu](./components/navigation/ProfileMenu.md)
61
+ - [Stepper](./components/navigation/Stepper.md)
62
+ - [Tabs](./components/navigation/Tabs.md)
63
+ - [surfaces](./components/surfaces/llms.txt)
64
+ - [Accordions](./components/surfaces/Accordions.md)
65
+ - [Card](./components/surfaces/Card.md)
66
+ - [Divider](./components/surfaces/Divider.md)
67
+ - [Sheet](./components/surfaces/Sheet.md)
68
+
69
+ ## Documentation
70
+
71
+ - [ADS (Admin Design System)](./Overview.md)
72
+
73
+ ## Children
74
+
75
+ - [components](./components/llms.txt)