@serendie/ui 2.1.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/client.js +79 -74
  2. package/dist/components/Accordion/Accordion.d.ts +1 -1
  3. package/dist/components/Avatar/Avatar.d.ts +1 -1
  4. package/dist/components/Banner/Banner.d.ts +1 -1
  5. package/dist/components/BottomNavigation/BottomNavigationItem.d.ts +1 -1
  6. package/dist/components/Button/Button.d.ts +2 -2
  7. package/dist/components/Button/Button.js +22 -21
  8. package/dist/components/DatePicker/DatePicker.d.ts +13 -0
  9. package/dist/components/DatePicker/DatePicker.js +203 -0
  10. package/dist/components/DatePicker/index.d.ts +2 -0
  11. package/dist/components/DatePicker/index.js +6 -0
  12. package/dist/components/DatePicker/parseDate.d.ts +1 -0
  13. package/dist/components/DatePicker/styles.d.ts +1 -0
  14. package/dist/components/DatePicker/styles.js +224 -0
  15. package/dist/components/IconButton/IconButton.d.ts +3 -3
  16. package/dist/components/List/ListItem.d.ts +1 -1
  17. package/dist/components/ModalDialog/ModalDialog.d.ts +1 -1
  18. package/dist/components/NotificationBadge/NotificationBadge.d.ts +1 -1
  19. package/dist/components/Pagination/Pagination.d.ts +1 -1
  20. package/dist/components/ProgressIndicator/AnimatedArc.d.ts +6 -0
  21. package/dist/components/ProgressIndicator/AnimatedArc.js +46 -0
  22. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +11 -29
  23. package/dist/components/ProgressIndicator/ProgressIndicator.js +201 -43
  24. package/dist/components/ProgressIndicator/ProgressIndicatorIndeterminate.d.ts +10 -0
  25. package/dist/components/ProgressIndicator/ProgressIndicatorIndeterminate.js +215 -0
  26. package/dist/components/ProgressIndicator/index.d.ts +4 -1
  27. package/dist/components/ProgressIndicator/index.js +3 -2
  28. package/dist/components/ProgressIndicator/util.d.ts +1 -0
  29. package/dist/components/ProgressIndicator/util.js +13 -0
  30. package/dist/components/Search/Search.d.ts +1 -1
  31. package/dist/components/Select/Select.d.ts +1 -1
  32. package/dist/components/Switch/Switch.d.ts +1 -1
  33. package/dist/components/Tabs/Tabs.d.ts +1 -1
  34. package/dist/components/TextField/TextField.js +59 -156
  35. package/dist/components/Toast/Toast.d.ts +1 -1
  36. package/dist/components/TopAppBar/TopAppBar.d.ts +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.js +80 -75
  39. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-content.js +15 -0
  40. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-context.js +5 -0
  41. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-control.js +13 -0
  42. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-input.js +14 -0
  43. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-label.js +13 -0
  44. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-month-select.js +13 -0
  45. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-next-trigger.js +14 -0
  46. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-positioner.js +14 -0
  47. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-prev-trigger.js +14 -0
  48. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-root.js +55 -0
  49. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-body.js +14 -0
  50. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-cell-trigger.js +19 -0
  51. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-cell.js +26 -0
  52. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-head.js +14 -0
  53. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-header.js +14 -0
  54. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table-row.js +14 -0
  55. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-table.js +16 -0
  56. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-trigger.js +13 -0
  57. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-view-control.js +14 -0
  58. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-view.js +23 -0
  59. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker-year-select.js +13 -0
  60. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/date-picker.anatomy.js +5 -0
  61. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/use-date-picker-context.js +10 -0
  62. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/use-date-picker-table-cell-props-context.js +10 -0
  63. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/use-date-picker-table-props-context.js +10 -0
  64. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/use-date-picker-view-props-context.js +12 -0
  65. package/dist/node_modules/@ark-ui/react/dist/components/date-picker/use-date-picker.js +18 -0
  66. package/dist/node_modules/@ark-ui/react/dist/components/factory.js +11 -12
  67. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-root.js +5 -4
  68. package/dist/node_modules/@ark-ui/react/dist/utils/use-event.js +0 -1
  69. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +36 -36
  70. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +238 -235
  71. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +88 -83
  72. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +68 -67
  73. package/dist/node_modules/@internationalized/date/dist/CalendarDate.js +178 -0
  74. package/dist/node_modules/@internationalized/date/dist/DateFormatter.js +99 -0
  75. package/dist/node_modules/@internationalized/date/dist/GregorianCalendar.js +98 -0
  76. package/dist/node_modules/@internationalized/date/dist/conversion.js +135 -0
  77. package/dist/node_modules/@internationalized/date/dist/manipulation.js +205 -0
  78. package/dist/node_modules/@internationalized/date/dist/queries.js +202 -0
  79. package/dist/node_modules/@internationalized/date/dist/string.js +41 -0
  80. package/dist/node_modules/@internationalized/date/dist/utils.js +6 -0
  81. package/dist/node_modules/@internationalized/date/dist/weekStartData.js +100 -0
  82. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +7 -0
  83. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.js +7 -0
  84. package/dist/node_modules/@zag-js/anatomy/dist/index.js +15 -14
  85. package/dist/node_modules/@zag-js/aria-hidden/dist/index.js +23 -23
  86. package/dist/node_modules/@zag-js/collection/dist/index.js +102 -71
  87. package/dist/node_modules/@zag-js/combobox/dist/index.js +482 -426
  88. package/dist/node_modules/@zag-js/date-picker/dist/index.js +1826 -0
  89. package/dist/node_modules/@zag-js/date-utils/dist/index.js +366 -0
  90. package/dist/node_modules/@zag-js/dialog/dist/index.js +66 -64
  91. package/dist/node_modules/@zag-js/dismissable/dist/index.js +94 -69
  92. package/dist/node_modules/@zag-js/dom-query/dist/index.js +359 -300
  93. package/dist/node_modules/@zag-js/live-region/dist/index.js +39 -0
  94. package/dist/node_modules/@zag-js/menu/dist/index.js +357 -340
  95. package/dist/node_modules/@zag-js/popper/dist/index.js +123 -120
  96. package/dist/node_modules/@zag-js/presence/dist/index.js +17 -17
  97. package/dist/node_modules/@zag-js/radio-group/dist/index.js +118 -117
  98. package/dist/node_modules/@zag-js/react/dist/index.js +124 -121
  99. package/dist/node_modules/@zag-js/select/dist/index.js +211 -197
  100. package/dist/node_modules/@zag-js/toast/dist/index.js +73 -71
  101. package/dist/node_modules/@zag-js/tooltip/dist/index.js +31 -30
  102. package/dist/node_modules/@zag-js/utils/dist/index.js +150 -104
  103. package/dist/preset.d.ts +11 -1
  104. package/dist/recipes/index.d.ts +3 -2
  105. package/dist/recipes/index.js +5 -2
  106. package/dist/recipes/textFieldRecipe.d.ts +6 -0
  107. package/dist/recipes/textFieldRecipe.js +107 -0
  108. package/dist/styled-system/css/cva.js +43 -38
  109. package/dist/styled-system/recipes/create-recipe.js +37 -0
  110. package/dist/styled-system/recipes/text-field-recipe.js +61 -0
  111. package/dist/styles.css +1 -1
  112. package/dist/tokens/keyframes/index.d.ts +8 -0
  113. package/dist/tokens/keyframes/index.js +6 -2
  114. package/package.json +3 -3
  115. package/styled-system/recipes/create-recipe.js +82 -0
  116. package/styled-system/recipes/index.d.ts +2 -0
  117. package/styled-system/recipes/index.js +1 -0
  118. package/styled-system/recipes/text-field-recipe.d.ts +28 -0
  119. package/styled-system/recipes/text-field-recipe.js +72 -0
  120. package/styled-system/types/prop-type.d.ts +1 -1
  121. package/dist/node_modules/@zag-js/store/dist/index.js +0 -131
  122. package/dist/node_modules/proxy-compare/dist/index.js +0 -7
@@ -0,0 +1,224 @@
1
+ import { sva as e } from "../../styled-system/css/sva.js";
2
+ const o = e({
3
+ slots: [
4
+ "positioner",
5
+ "content",
6
+ "view",
7
+ "viewControl",
8
+ "prevTrigger",
9
+ "nextTrigger",
10
+ "table",
11
+ "tableHeader",
12
+ "tableCell",
13
+ "tableCellTrigger",
14
+ "select",
15
+ "selectWrapper",
16
+ "selectIcon"
17
+ ],
18
+ base: {
19
+ positioner: {
20
+ position: "relative",
21
+ zIndex: "sd.system.elevation.zIndex.dropdown"
22
+ },
23
+ content: {
24
+ background: "sd.system.color.component.surface",
25
+ borderRadius: "sd.system.dimension.radius.medium",
26
+ boxShadow: "sd.system.elevation.shadow.level1",
27
+ flexDirection: "column",
28
+ gap: "sd.system.dimension.spacing.small",
29
+ p: "sd.system.dimension.spacing.small",
30
+ width: "fit-content",
31
+ zIndex: "sd.system.elevation.zIndex.dropdown",
32
+ _open: {
33
+ display: "flex",
34
+ animation: "fadeIn 0.25s ease-out"
35
+ },
36
+ _closed: {
37
+ display: "none",
38
+ animation: "fadeOut 0.2s ease-out"
39
+ }
40
+ },
41
+ view: {
42
+ display: "flex",
43
+ flexDirection: "column",
44
+ gap: "sd.system.dimension.spacing.small",
45
+ _hidden: {
46
+ display: "none"
47
+ }
48
+ },
49
+ viewControl: {
50
+ display: "flex",
51
+ gap: "sd.system.dimension.spacing.extraSmall",
52
+ justifyContent: "space-between",
53
+ alignItems: "center",
54
+ h: "40px",
55
+ px: "sd.system.dimension.spacing.twoExtraSmall"
56
+ },
57
+ select: {
58
+ appearance: "none",
59
+ paddingRight: "30px"
60
+ },
61
+ selectWrapper: {
62
+ position: "relative",
63
+ display: "flex",
64
+ justifyContent: "space-between",
65
+ alignItems: "center"
66
+ },
67
+ selectIcon: {
68
+ position: "absolute",
69
+ right: "0",
70
+ top: "50%",
71
+ transform: "translateY(-50%)",
72
+ pointerEvents: "none"
73
+ },
74
+ prevTrigger: {
75
+ alignItems: "center",
76
+ cursor: "pointer",
77
+ display: "inline-flex",
78
+ justifyContent: "center",
79
+ borderRadius: "sd.system.dimension.radius.medium",
80
+ color: "sd.system.color.component.onSurface",
81
+ _hover: {
82
+ bg: "sd.system.color.interaction.hoveredVariant"
83
+ }
84
+ },
85
+ nextTrigger: {
86
+ alignItems: "center",
87
+ cursor: "pointer",
88
+ display: "inline-flex",
89
+ justifyContent: "center",
90
+ borderRadius: "sd.system.dimension.radius.medium",
91
+ color: "sd.system.color.component.onSurface",
92
+ _hover: {
93
+ bg: "sd.system.color.interaction.hoveredVariant"
94
+ }
95
+ },
96
+ table: {
97
+ width: "full",
98
+ borderCollapse: "separate",
99
+ borderSpacing: "0"
100
+ },
101
+ tableHeader: {
102
+ color: "sd.system.color.component.onSurfaceVariant",
103
+ fontWeight: "normal",
104
+ h: "40px",
105
+ textStyle: "sd.system.typography.body.small_compact",
106
+ textAlign: "center"
107
+ },
108
+ tableCell: {
109
+ textAlign: "center",
110
+ p: "0",
111
+ position: "relative"
112
+ },
113
+ tableCellTrigger: {
114
+ alignItems: "center",
115
+ borderRadius: "sd.system.dimension.radius.full",
116
+ cursor: "pointer",
117
+ display: "inline-flex",
118
+ fontVariantNumeric: "tabular-nums",
119
+ justifyContent: "center",
120
+ h: "40px",
121
+ w: "40px",
122
+ position: "relative",
123
+ color: "sd.system.color.component.onSurface",
124
+ border: "none",
125
+ background: "transparent",
126
+ textStyle: "sd.system.typography.body.small_compact",
127
+ zIndex: "2",
128
+ _hover: {
129
+ _before: {
130
+ bg: "sd.system.color.interaction.hoveredVariant"
131
+ }
132
+ },
133
+ _before: {
134
+ content: "''",
135
+ position: "absolute",
136
+ inset: "0",
137
+ zIndex: "-1",
138
+ borderRadius: "sd.system.dimension.radius.full"
139
+ },
140
+ _today: {
141
+ _before: {
142
+ borderWidth: "sd.system.dimension.border.medium",
143
+ borderColor: "sd.system.color.component.outline",
144
+ borderStyle: "solid"
145
+ },
146
+ "&[data-in-range]": {
147
+ _before: {
148
+ borderColor: "sd.reference.color.scale.white.1000"
149
+ }
150
+ }
151
+ },
152
+ "&[data-in-range]": {
153
+ bg: "sd.system.color.interaction.selectedSurface",
154
+ borderRadius: "0px"
155
+ },
156
+ "&[data-in-range]&[data-in-hover-range]": {
157
+ bg: "sd.system.color.interaction.hoveredVariant"
158
+ },
159
+ "&[data-hover-range-start]": {
160
+ bg: "sd.system.color.interaction.hoveredVariant",
161
+ borderTopLeftRadius: "sd.system.dimension.radius.full",
162
+ borderBottomLeftRadius: "sd.system.dimension.radius.full",
163
+ borderTopRightRadius: "0px",
164
+ borderBottomRightRadius: "0px"
165
+ },
166
+ "&[data-hover-range-end]": {
167
+ bg: "sd.system.color.interaction.hoveredVariant",
168
+ borderTopRightRadius: "sd.system.dimension.radius.full",
169
+ borderBottomRightRadius: "sd.system.dimension.radius.full",
170
+ borderTopLeftRadius: "0px",
171
+ borderBottomLeftRadius: "0px"
172
+ },
173
+ "&[data-hover-range-start]&[data-hover-range-end]": {
174
+ borderTopLeftRadius: "sd.system.dimension.radius.full",
175
+ borderBottomLeftRadius: "sd.system.dimension.radius.full",
176
+ borderTopRightRadius: "sd.system.dimension.radius.full",
177
+ borderBottomRightRadius: "sd.system.dimension.radius.full"
178
+ },
179
+ "&[data-range-start]": {
180
+ borderTopLeftRadius: "sd.system.dimension.radius.full",
181
+ borderBottomLeftRadius: "sd.system.dimension.radius.full"
182
+ },
183
+ "&[data-range-end]": {
184
+ borderTopRightRadius: "sd.system.dimension.radius.full",
185
+ borderBottomRightRadius: "sd.system.dimension.radius.full"
186
+ },
187
+ _selected: {
188
+ color: "sd.system.color.impression.onPrimaryContainer",
189
+ _hover: {
190
+ _before: {
191
+ background: "sd.system.color.impression.primaryContainer"
192
+ }
193
+ },
194
+ _before: {
195
+ background: "sd.system.color.impression.primaryContainer"
196
+ },
197
+ zIndex: "100"
198
+ },
199
+ _disabled: {
200
+ color: "sd.system.color.interaction.disabledOnSurface",
201
+ cursor: "not-allowed",
202
+ _hover: {
203
+ _before: {
204
+ background: "transparent"
205
+ }
206
+ }
207
+ },
208
+ _unavailable: {
209
+ color: "sd.system.color.interaction.disabledOnSurface",
210
+ cursor: "not-allowed",
211
+ textDecoration: "line-through",
212
+ _hover: {
213
+ _before: {
214
+ background: "transparent"
215
+ }
216
+ }
217
+ }
218
+ }
219
+ },
220
+ defaultVariants: {}
221
+ });
222
+ export {
223
+ o as datePickerStyles
224
+ };
@@ -92,19 +92,19 @@ type CircleLargeProps = {
92
92
  export declare const IconButton: React.ForwardRefExoticComponent<(Omit<{
93
93
  shape?: "circle" | "rectangle" | undefined;
94
94
  styleType?: "filled" | "outlined" | "ghost" | undefined;
95
- size?: "small" | "large" | "medium" | undefined;
95
+ size?: "medium" | "small" | "large" | undefined;
96
96
  } & React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
97
97
  icon: React.ReactElement;
98
98
  } & RectangleProps, "ref"> | Omit<{
99
99
  shape?: "circle" | "rectangle" | undefined;
100
100
  styleType?: "filled" | "outlined" | "ghost" | undefined;
101
- size?: "small" | "large" | "medium" | undefined;
101
+ size?: "medium" | "small" | "large" | undefined;
102
102
  } & React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
103
103
  icon: React.ReactElement;
104
104
  } & CircleProps, "ref"> | Omit<{
105
105
  shape?: "circle" | "rectangle" | undefined;
106
106
  styleType?: "filled" | "outlined" | "ghost" | undefined;
107
- size?: "small" | "large" | "medium" | undefined;
107
+ size?: "medium" | "small" | "large" | undefined;
108
108
  } & React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
109
109
  icon: React.ReactElement;
110
110
  } & CircleLargeProps, "ref">) & React.RefAttributes<HTMLButtonElement>>;
@@ -1,5 +1,5 @@
1
1
  import { ComponentProps } from 'react';
2
- export declare const ListItemStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"title" | "description" | "root" | "badge" | "leftIcon" | "rightIcon" | "wrapper" | "textGroup", {
2
+ export declare const ListItemStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"root" | "description" | "title" | "badge" | "leftIcon" | "rightIcon" | "wrapper" | "textGroup", {
3
3
  isLargeLeftIcon: {
4
4
  true: {
5
5
  leftIcon: {
@@ -1,6 +1,6 @@
1
1
  import { DialogRootProps } from '@ark-ui/react';
2
2
  import { RecipeVariantProps } from '../../../styled-system/css';
3
- declare const ModalDialogStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"content" | "title" | "description" | "backdrop" | "contentInner" | "closeTrigger" | "buttonWrapper", import('../../../styled-system/types').SlotRecipeVariantRecord<"content" | "title" | "description" | "backdrop" | "contentInner" | "closeTrigger" | "buttonWrapper">>;
3
+ declare const ModalDialogStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"content" | "description" | "title" | "backdrop" | "contentInner" | "closeTrigger" | "buttonWrapper", import('../../../styled-system/types').SlotRecipeVariantRecord<"content" | "description" | "title" | "backdrop" | "contentInner" | "closeTrigger" | "buttonWrapper">>;
4
4
  type Props = {
5
5
  isOpen: boolean;
6
6
  title: string;
@@ -1,6 +1,6 @@
1
1
  import { ComponentProps } from 'react';
2
2
  import { RecipeVariantProps } from '../../../styled-system/css';
3
- declare const NotificationBadgeStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"text" | "root", {
3
+ declare const NotificationBadgeStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"root" | "text", {
4
4
  size: {
5
5
  small: {
6
6
  root: {
@@ -1,6 +1,6 @@
1
1
  import { default as React, ComponentProps } from 'react';
2
2
  import { RecipeVariantProps } from '../../../styled-system/css';
3
- export declare const PaginationStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"item" | "root" | "ellipsis" | "prevTrigger" | "nextTrigger", {
3
+ export declare const PaginationStyle: import('../../../styled-system/types').SlotRecipeRuntimeFn<"root" | "item" | "ellipsis" | "prevTrigger" | "nextTrigger", {
4
4
  size: {
5
5
  medium: {
6
6
  root: {
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ export declare const AnimatedArc: React.FC<{
3
+ className?: string;
4
+ radius: number;
5
+ width: number;
6
+ }>;
@@ -0,0 +1,46 @@
1
+ import { jsx as A } from "react/jsx-runtime";
2
+ import n from "react";
3
+ import { describeArc as R } from "./util.js";
4
+ const h = 2.5, S = ({ className: f, radius: o, width: c }) => {
5
+ const [t, i] = n.useState(0), s = n.useRef(null), a = n.useRef(null);
6
+ n.useEffect(() => {
7
+ const e = (r) => {
8
+ s.current == null && (s.current = r);
9
+ const u = (r - s.current) / 1e3;
10
+ s.current = r;
11
+ const m = u / h;
12
+ i((p) => (p + m) % 1), a.current = requestAnimationFrame(e);
13
+ };
14
+ return a.current = requestAnimationFrame(e), () => {
15
+ a.current != null && cancelAnimationFrame(a.current);
16
+ };
17
+ }, []);
18
+ const { d: l, rotationDeg: d } = n.useMemo(() => {
19
+ const e = t * Math.PI * 2, r = 180 + 40 * Math.sin(-e) + 40, u = 90 * Math.sin(e) + 90;
20
+ return { d: R(
21
+ o + c,
22
+ // cx
23
+ o + c,
24
+ // cy
25
+ o,
26
+ // r
27
+ t * 360 + u,
28
+ t * 360 + r
29
+ ), rotationDeg: t * 360 };
30
+ }, [t, o, c]);
31
+ return /* @__PURE__ */ A(
32
+ "path",
33
+ {
34
+ d: l,
35
+ transform: `rotate(${d})`,
36
+ strokeLinecap: "butt",
37
+ stroke: "currentColor",
38
+ strokeWidth: c,
39
+ fill: "none",
40
+ className: f
41
+ }
42
+ );
43
+ };
44
+ export {
45
+ S as AnimatedArc
46
+ };
@@ -1,29 +1,11 @@
1
- import { ComponentProps } from 'react';
2
- import { RecipeVariantProps } from '../../../styled-system/css';
3
- export declare const ProgressIndicatorStyle: import('../../../styled-system/types').RecipeRuntimeFn<{
4
- size: {
5
- small: {
6
- width: "16px";
7
- height: "16px";
8
- };
9
- medium: {
10
- width: "24px";
11
- height: "24px";
12
- };
13
- large: {
14
- width: "96px";
15
- height: "96px";
16
- };
17
- };
18
- color: {
19
- gray: {
20
- stroke: "sd.reference.color.scale.gray.400";
21
- };
22
- white: {
23
- stroke: "sd.reference.color.scale.white.1000";
24
- };
25
- };
26
- }>;
27
- type ProgressIndicatorProps = ComponentProps<"svg"> & RecipeVariantProps<typeof ProgressIndicatorStyle>;
28
- export declare const ProgressIndicator: ({ className, ...props }: ProgressIndicatorProps) => import("react/jsx-runtime").JSX.Element;
29
- export {};
1
+ import { default as React } from 'react';
2
+ export interface ProgressIndicatorProps extends React.ComponentProps<"div"> {
3
+ type?: "linear" | "circular";
4
+ size?: "small" | "medium" | "large";
5
+ value?: number;
6
+ max?: number;
7
+ }
8
+ export declare const ProgressIndicator: {
9
+ ({ value, max, type, size, className, style, ...props }: ProgressIndicatorProps): import("react/jsx-runtime").JSX.Element;
10
+ displayName: string;
11
+ };
@@ -1,65 +1,223 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import { cva as n } from "../../styled-system/css/cva.js";
3
- import { cx as l } from "../../styled-system/css/cx.js";
4
- const r = n({
1
+ import { jsx as a, jsxs as f } from "react/jsx-runtime";
2
+ import { useMemo as v } from "react";
3
+ import { describeArc as b } from "./util.js";
4
+ import { cx as h } from "../../styled-system/css/cx.js";
5
+ import { cva as c } from "../../styled-system/css/cva.js";
6
+ const u = c({
5
7
  base: {
6
- animation: "1s linear infinite spin",
7
- stroke: "sd.reference.color.scale.gray.400"
8
+ position: "relative",
9
+ display: "flex",
10
+ alignItems: "center",
11
+ justifyContent: "center"
8
12
  },
9
13
  variants: {
14
+ type: {
15
+ linear: {
16
+ width: "100%"
17
+ },
18
+ circular: {}
19
+ },
10
20
  size: {
11
- small: {
21
+ small: {},
22
+ medium: {},
23
+ large: {}
24
+ }
25
+ },
26
+ compoundVariants: [
27
+ {
28
+ type: "linear",
29
+ size: "small",
30
+ css: {
31
+ height: "4px"
32
+ }
33
+ },
34
+ {
35
+ type: "linear",
36
+ size: "medium",
37
+ css: {
38
+ height: "4px"
39
+ }
40
+ },
41
+ {
42
+ type: "linear",
43
+ size: "large",
44
+ css: {
45
+ height: "8px"
46
+ }
47
+ },
48
+ {
49
+ type: "circular",
50
+ size: "small",
51
+ css: {
52
+ width: "12px",
53
+ height: "12px"
54
+ }
55
+ },
56
+ {
57
+ type: "circular",
58
+ size: "medium",
59
+ css: {
12
60
  width: "16px",
13
61
  height: "16px"
62
+ }
63
+ },
64
+ {
65
+ type: "circular",
66
+ size: "large",
67
+ css: {
68
+ width: "40px",
69
+ height: "40px"
70
+ }
71
+ }
72
+ ],
73
+ defaultVariants: {
74
+ type: "linear",
75
+ size: "medium"
76
+ }
77
+ }), p = c({
78
+ base: {
79
+ position: "absolute",
80
+ backgroundColor: "sd.reference.color.scale.gray.100",
81
+ overflow: "hidden"
82
+ },
83
+ variants: {
84
+ type: {
85
+ linear: {
86
+ width: "calc(100% - 4px)",
87
+ height: "100%",
88
+ borderRadius: "sd.system.dimension.radius.full"
14
89
  },
15
- medium: {
16
- width: "24px",
17
- height: "24px"
18
- },
19
- large: {
20
- width: "96px",
21
- height: "96px"
90
+ circular: {
91
+ width: "100%",
92
+ height: "100%",
93
+ borderRadius: "50%",
94
+ fill: "none"
22
95
  }
23
96
  },
24
- color: {
25
- gray: {
26
- stroke: "sd.reference.color.scale.gray.400"
97
+ size: {
98
+ small: {},
99
+ medium: {},
100
+ large: {}
101
+ }
102
+ },
103
+ compoundVariants: []
104
+ }), g = c({
105
+ base: {
106
+ position: "absolute",
107
+ backgroundColor: "sd.system.color.impression.primary"
108
+ },
109
+ variants: {
110
+ type: {
111
+ linear: {
112
+ left: "0px",
113
+ height: "100%",
114
+ borderRadius: "0"
27
115
  },
28
- white: {
29
- stroke: "sd.reference.color.scale.white.1000"
116
+ circular: {
117
+ width: "100%",
118
+ height: "100%",
119
+ fill: "none",
120
+ stroke: "sd.system.color.impression.primary",
121
+ strokeLinecap: "butt",
122
+ transformOrigin: "center"
30
123
  }
124
+ },
125
+ size: {
126
+ small: {},
127
+ medium: {},
128
+ large: {}
31
129
  }
32
130
  },
33
- defaultVariants: {
34
- size: "medium",
35
- color: "gray"
36
- }
37
- }), d = ({
38
- className: t,
39
- ...s
131
+ compoundVariants: []
132
+ }), w = (t) => ({
133
+ small: { radius: 8, strokeWidth: 2 },
134
+ medium: { radius: 12, strokeWidth: 4 },
135
+ large: { radius: 24, strokeWidth: 4 }
136
+ })[t], k = ({
137
+ value: t = 0,
138
+ max: o = 1,
139
+ type: i = "linear",
140
+ size: s = "medium",
141
+ className: n,
142
+ style: d,
143
+ ...m
40
144
  }) => {
41
- const [o, i] = r.splitVariantProps(s), a = r(o);
42
- return /* @__PURE__ */ e(
43
- "svg",
145
+ const l = Math.min(Math.max(t / o * 100, 0), 100);
146
+ if (i === "circular") {
147
+ const { radius: r, strokeWidth: e } = w(s), x = v(() => {
148
+ const y = l / 100 * 360 - 1e-5;
149
+ return b(
150
+ r + e,
151
+ r + e,
152
+ r,
153
+ 0,
154
+ y
155
+ );
156
+ }, [l, r, e]);
157
+ return /* @__PURE__ */ a(
158
+ "div",
159
+ {
160
+ className: h(u({ type: i, size: s }), n),
161
+ role: "progressbar",
162
+ "aria-valuenow": t,
163
+ "aria-valuemin": 0,
164
+ "aria-valuemax": o,
165
+ style: d,
166
+ ...m,
167
+ children: /* @__PURE__ */ f(
168
+ "svg",
169
+ {
170
+ viewBox: `0 0 ${r * 2 + e * 2} ${r * 2 + e * 2}`,
171
+ style: { width: "100%", height: "100%" },
172
+ children: [
173
+ /* @__PURE__ */ a(
174
+ "circle",
175
+ {
176
+ cx: r + e,
177
+ cy: r + e,
178
+ r,
179
+ className: p({ type: i, size: s }),
180
+ stroke: "var(--colors-sd-reference-color-scale-gray-100)",
181
+ strokeWidth: e
182
+ }
183
+ ),
184
+ l > 0 && /* @__PURE__ */ a(
185
+ "path",
186
+ {
187
+ d: x,
188
+ className: g({ type: i, size: s }),
189
+ strokeWidth: e * 2
190
+ }
191
+ )
192
+ ]
193
+ }
194
+ )
195
+ }
196
+ );
197
+ }
198
+ return /* @__PURE__ */ a(
199
+ "div",
44
200
  {
45
- width: "48",
46
- height: "48",
47
- viewBox: "0 0 48 48",
48
- fill: "none",
49
- xmlns: "http://www.w3.org/2000/svg",
50
- className: l(a, t),
51
- ...i,
52
- children: /* @__PURE__ */ e(
53
- "path",
201
+ className: h(u({ type: i, size: s }), n),
202
+ role: "progressbar",
203
+ "aria-valuenow": t,
204
+ "aria-valuemin": 0,
205
+ "aria-valuemax": o,
206
+ style: d,
207
+ ...m,
208
+ children: /* @__PURE__ */ a("div", { className: p({ type: i, size: s }), children: /* @__PURE__ */ a(
209
+ "div",
54
210
  {
55
- d: "M24 44C27.9556 44 31.8224 42.827 35.1114 40.6294C38.4004 38.4318 40.9638 35.3082 42.4776 31.6537C43.9913 27.9992 44.3874 23.9778 43.6157 20.0982C42.844 16.2186 40.9392 12.6549 38.1421 9.85786C35.3451 7.06082 31.7814 5.156 27.9018 4.38429C24.0222 3.61259 20.0008 4.00866 16.3463 5.52241C12.6918 7.03616 9.56821 9.59962 7.37059 12.8886C5.17297 16.1776 3.99998 20.0444 3.99998 24",
56
- strokeWidth: "4"
211
+ className: g({ type: i, size: s }),
212
+ style: {
213
+ width: `${l}%`
214
+ }
57
215
  }
58
- )
216
+ ) })
59
217
  }
60
218
  );
61
219
  };
220
+ k.displayName = "ProgressIndicator";
62
221
  export {
63
- d as ProgressIndicator,
64
- r as ProgressIndicatorStyle
222
+ k as ProgressIndicator
65
223
  };
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export interface ProgressIndicatorIndeterminateProps extends React.ComponentProps<"div"> {
3
+ type?: "linear" | "circular";
4
+ size?: "small" | "medium" | "large";
5
+ color?: "primary" | "subtle";
6
+ }
7
+ export declare const ProgressIndicatorIndeterminate: {
8
+ ({ type, size, color, className, style, ...props }: ProgressIndicatorIndeterminateProps): import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ };