@solostylist/ui-kit 1.0.112 → 1.0.114

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 (91) hide show
  1. package/dist/{Box-Deehc8LF.js → Box-BVty_s6i.js} +3 -3
  2. package/dist/{ButtonBase-B-mcxJe8.js → ButtonBase-mQcNFFZT.js} +4 -4
  3. package/dist/{ChevronRight-BB4jrtLy.js → ChevronRight-DHNkZLlo.js} +1 -1
  4. package/dist/{Close-DqRHeMAW.js → Close-NkxvAwQr.js} +1 -1
  5. package/dist/DefaultPropsProvider-B--diaQ3.js +56 -0
  6. package/dist/{ExpandMore-CE1RzE_y.js → ExpandMore-DpFPV8W9.js} +1 -1
  7. package/dist/Favorite-DpJ7EDHh.js +8 -0
  8. package/dist/GlobalStyles-OdaYqxTO.js +59 -0
  9. package/dist/{Menu-HtTElywx.js → Menu-CcW81QRb.js} +311 -324
  10. package/dist/{MenuItem-DzviefY7.js → MenuItem-DGNNylSd.js} +5 -5
  11. package/dist/{Paper-pJ5bSU59.js → Paper-BUFfm5KI.js} +7 -7
  12. package/dist/{Select-C9Hk7BA8.js → Select-CWgjtbUU.js} +370 -387
  13. package/dist/{Stack-TRopps6s.js → Stack-CQ7zBwkJ.js} +5 -5
  14. package/dist/{TransitionGroup--1HPPUFY.js → TransitionGroup-Buyx2ey4.js} +1 -1
  15. package/dist/{Typography-DGEEI1Q-.js → Typography-fMf8hWqG.js} +4 -4
  16. package/dist/assets/s-overlay-scrollbar.css +9 -0
  17. package/dist/{createSvgIcon-DCQI9UV5.js → createSvgIcon-PpKM6urg.js} +104 -130
  18. package/dist/{createTheme-YLBX8GSj.js → createTheme-ubqb7_yU.js} +1 -0
  19. package/dist/defaultTheme-CtLmY7I4.js +5 -0
  20. package/dist/{extendSxProp-BNyKHzap.js → extendSxProp-5t2om437.js} +1 -1
  21. package/dist/index-N6ZbgVEG.js +33 -0
  22. package/dist/index-h98nw21y.js +44 -0
  23. package/dist/main.d.ts +6 -2
  24. package/dist/main.js +110 -104
  25. package/dist/{mergeSlotProps-N1VTlioP.js → mergeSlotProps-DKFm7I5M.js} +1 -1
  26. package/dist/s-accordion/s-accordion.js +8 -8
  27. package/dist/s-carousel/s-carousel.js +1 -1
  28. package/dist/s-chat-input/s-chat-input.js +2 -2
  29. package/dist/s-chat-message/s-chat-message.js +1 -1
  30. package/dist/s-comment-message/s-comment-message.js +35 -36
  31. package/dist/s-copyable-text/s-copyable-text.js +1 -1
  32. package/dist/s-data-table/s-data-table.js +5 -5
  33. package/dist/s-date-picker/s-date-picker.js +7 -7
  34. package/dist/s-datetime-picker/s-datetime-picker.js +15 -14
  35. package/dist/s-dialog/s-dialog.js +1 -1
  36. package/dist/s-dialog-confirm/s-dialog-confirm.js +2 -2
  37. package/dist/s-dialog-message/s-dialog-message.js +2 -2
  38. package/dist/s-file-dropzone/s-file-dropzone.js +4 -4
  39. package/dist/s-file-icon/s-file-icon.js +1 -1
  40. package/dist/s-flex-box/s-flex-box.js +1 -1
  41. package/dist/s-image-comparison/s-image-comparison.js +1 -1
  42. package/dist/s-image-modal/s-image-modal.js +2 -2
  43. package/dist/s-label/s-label.js +1 -1
  44. package/dist/s-localization-provider/s-localization-provider.js +1 -1
  45. package/dist/s-multi-select/s-multi-select.js +3 -3
  46. package/dist/s-overlay-scrollbar/index.d.ts +2 -0
  47. package/dist/s-overlay-scrollbar/index.js +4 -0
  48. package/dist/s-overlay-scrollbar/package.json +5 -0
  49. package/dist/s-overlay-scrollbar/s-overlay-scrollbar.d.ts +8 -0
  50. package/dist/s-overlay-scrollbar/s-overlay-scrollbar.js +25 -0
  51. package/dist/s-review/s-review.js +1 -1
  52. package/dist/s-smart-text-field/s-smart-text-field.js +2 -2
  53. package/dist/s-text-editor/s-text-editor-toolbar.js +4 -4
  54. package/dist/s-text-editor/s-text-editor.js +1 -1
  55. package/dist/s-text-field/s-text-field.js +1 -1
  56. package/dist/s-text-shimmer/s-text-shimmer.js +7 -7
  57. package/dist/s-theme-demo/index.d.ts +2 -0
  58. package/dist/s-theme-demo/index.js +4 -0
  59. package/dist/s-theme-demo/package.json +5 -0
  60. package/dist/s-theme-demo/s-theme-demo.d.ts +31 -0
  61. package/dist/s-theme-demo/s-theme-demo.js +417 -0
  62. package/dist/s-theme-provider/index.d.ts +2 -0
  63. package/dist/s-theme-provider/index.js +5 -2
  64. package/dist/s-theme-provider/s-theme-provider.d.ts +2 -2
  65. package/dist/s-theme-provider/s-theme-provider.js +13 -13
  66. package/dist/s-theme-provider/use-theme.d.ts +51 -0
  67. package/dist/s-theme-provider/use-theme.js +670 -0
  68. package/dist/s-theme-switch/index.d.ts +2 -0
  69. package/dist/s-theme-switch/index.js +4 -0
  70. package/dist/s-theme-switch/package.json +5 -0
  71. package/dist/s-theme-switch/s-theme-switch.d.ts +6 -0
  72. package/dist/s-theme-switch/s-theme-switch.js +43 -0
  73. package/dist/s-tip/s-tip.js +3 -3
  74. package/dist/{styled-DOEEZAON.js → styled-C9vD3j80.js} +2 -2
  75. package/dist/theme/components/avatar.js +1 -1
  76. package/dist/theme/components/chip.js +92 -30
  77. package/dist/theme/components/components.d.ts +2 -0
  78. package/dist/theme/components/tooltip.d.ts +2 -0
  79. package/dist/theme/components/tooltip.js +4 -2
  80. package/dist/theme/customizations/inputs.js +1 -1
  81. package/dist/theme/customizations/navigation.js +2 -1
  82. package/dist/theme/theme-primitives.d.ts +97 -0
  83. package/dist/theme/theme-primitives.js +290 -87
  84. package/dist/useId-CK6Kn3Tn.js +21 -0
  85. package/dist/{useMobilePicker-c5_EH1sg.js → useMobilePicker-kwoV49Bq.js} +99 -97
  86. package/dist/{useTheme-w9o5xUBz.js → useTheme-BRW1H8JQ.js} +1 -1
  87. package/dist/{useThemeProps-CPsDWmFG.js → useThemeProps-DEztVr97.js} +1 -1
  88. package/dist/{warning-KQY_8msi.js → warning-Dcl59VWg.js} +3 -3
  89. package/package.json +3 -2
  90. package/dist/defaultTheme-DXvvOU_p.js +0 -5
  91. package/dist/index-B3csTTDl.js +0 -95
@@ -0,0 +1,417 @@
1
+ import { j as r } from "../jsx-runtime-DywqP_6a.js";
2
+ import * as g from "react";
3
+ import { Box as t, Typography as e, Stack as i, Card as x, CardContent as h, Divider as d, Alert as p, Chip as s, Paper as m } from "@mui/material";
4
+ import n from "../s-button/s-button.js";
5
+ import v from "../s-form/s-form.js";
6
+ import u from "../s-text-field/s-text-field.js";
7
+ import y from "../s-theme-switch/s-theme-switch.js";
8
+ import { c as j } from "../createSvgIcon-PpKM6urg.js";
9
+ import { F as b } from "../Favorite-DpJ7EDHh.js";
10
+ const f = j(/* @__PURE__ */ r.jsx("path", {
11
+ d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"
12
+ }), "Add"), S = j(/* @__PURE__ */ r.jsx("path", {
13
+ d: "M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92"
14
+ }), "Share"), w = j(/* @__PURE__ */ r.jsx("path", {
15
+ d: "M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"
16
+ }), "Star"), B = () => {
17
+ const c = [
18
+ { name: "Primary", color: "primary.main" },
19
+ { name: "Secondary", color: "secondary.main" },
20
+ { name: "Success", color: "success.main" },
21
+ { name: "Warning", color: "warning.main" },
22
+ { name: "Error", color: "error.main" },
23
+ { name: "Info", color: "info.main" }
24
+ ];
25
+ return /* @__PURE__ */ r.jsx(x, { elevation: 2, sx: { borderRadius: 2 }, children: /* @__PURE__ */ r.jsxs(h, { children: [
26
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", gutterBottom: !0, children: "Color Palette" }),
27
+ /* @__PURE__ */ r.jsx(i, { direction: "row", flexWrap: "wrap", gap: 2, children: c.map((o) => /* @__PURE__ */ r.jsxs(t, { sx: { textAlign: "center" }, children: [
28
+ /* @__PURE__ */ r.jsx(
29
+ t,
30
+ {
31
+ sx: {
32
+ width: 60,
33
+ height: 60,
34
+ bgcolor: o.color,
35
+ borderRadius: 1,
36
+ mb: 1,
37
+ boxShadow: 1
38
+ }
39
+ }
40
+ ),
41
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: o.name })
42
+ ] }, o.name)) }),
43
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", sx: { mt: 3, mb: 2 }, children: "Background Colors" }),
44
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", gap: 2, flexWrap: "wrap", children: [
45
+ /* @__PURE__ */ r.jsx(
46
+ t,
47
+ {
48
+ sx: {
49
+ p: 2,
50
+ bgcolor: "background.default",
51
+ border: 1,
52
+ borderColor: "divider",
53
+ borderRadius: 1
54
+ },
55
+ children: /* @__PURE__ */ r.jsx(e, { variant: "caption", children: "Default Background" })
56
+ }
57
+ ),
58
+ /* @__PURE__ */ r.jsx(
59
+ t,
60
+ {
61
+ sx: {
62
+ p: 2,
63
+ bgcolor: "background.paper",
64
+ border: 1,
65
+ borderColor: "divider",
66
+ borderRadius: 1
67
+ },
68
+ children: /* @__PURE__ */ r.jsx(e, { variant: "caption", children: "Paper Background" })
69
+ }
70
+ )
71
+ ] })
72
+ ] }) });
73
+ }, T = () => /* @__PURE__ */ r.jsx(x, { elevation: 2, sx: { borderRadius: 2 }, children: /* @__PURE__ */ r.jsxs(h, { children: [
74
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", gutterBottom: !0, children: "Typography System" }),
75
+ /* @__PURE__ */ r.jsx(e, { variant: "body2", color: "text.secondary", gutterBottom: !0, sx: { mb: 3 }, children: "Complete typography scale using Outfit font family with Material-UI variants" }),
76
+ /* @__PURE__ */ r.jsxs(i, { spacing: 3, children: [
77
+ /* @__PURE__ */ r.jsxs(t, { children: [
78
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "primary", gutterBottom: !0, children: "Headings" }),
79
+ /* @__PURE__ */ r.jsxs(i, { spacing: 2, children: [
80
+ /* @__PURE__ */ r.jsxs(t, { children: [
81
+ /* @__PURE__ */ r.jsx(e, { variant: "h1", component: "div", gutterBottom: !0, children: "Display Large" }),
82
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h1 - 3.5rem (56px), Weight 600 - Used for hero sections and primary headings" })
83
+ ] }),
84
+ /* @__PURE__ */ r.jsxs(t, { children: [
85
+ /* @__PURE__ */ r.jsx(e, { variant: "h2", component: "div", gutterBottom: !0, children: "Display Medium" }),
86
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h2 - 2.75rem (44px), Weight 600 - Used for page titles and major sections" })
87
+ ] }),
88
+ /* @__PURE__ */ r.jsxs(t, { children: [
89
+ /* @__PURE__ */ r.jsx(e, { variant: "h3", component: "div", gutterBottom: !0, children: "Display Small" }),
90
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h3 - 2.25rem (36px), Weight 600 - Used for large section headings" })
91
+ ] }),
92
+ /* @__PURE__ */ r.jsxs(t, { children: [
93
+ /* @__PURE__ */ r.jsx(e, { variant: "h4", component: "div", gutterBottom: !0, children: "Headline Large" }),
94
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h4 - 2rem (32px), Weight 600 - Used for card titles and content headings" })
95
+ ] }),
96
+ /* @__PURE__ */ r.jsxs(t, { children: [
97
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", component: "div", gutterBottom: !0, children: "Headline Medium" }),
98
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h5 - 1.5rem (24px), Weight 600 - Used for subsection headings" })
99
+ ] }),
100
+ /* @__PURE__ */ r.jsxs(t, { children: [
101
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", component: "div", gutterBottom: !0, children: "Headline Small" }),
102
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "h6 - 1.25rem (20px), Weight 600 - Used for component titles and labels" })
103
+ ] })
104
+ ] })
105
+ ] }),
106
+ /* @__PURE__ */ r.jsx(d, {}),
107
+ /* @__PURE__ */ r.jsxs(t, { children: [
108
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "primary", gutterBottom: !0, children: "Body Text" }),
109
+ /* @__PURE__ */ r.jsxs(i, { spacing: 2, children: [
110
+ /* @__PURE__ */ r.jsxs(t, { children: [
111
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", component: "div", gutterBottom: !0, children: "Body Large - The primary text style used for most content. It provides excellent readability and is suitable for paragraphs, descriptions, and general text content. This is the main body text variant." }),
112
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "body1 - 1rem (16px), Weight 400, Line height 1.5" })
113
+ ] }),
114
+ /* @__PURE__ */ r.jsxs(t, { children: [
115
+ /* @__PURE__ */ r.jsx(e, { variant: "body2", component: "div", gutterBottom: !0, children: "Body Medium - Secondary text style, often used for supporting information, captions, and less prominent content elements. Slightly smaller than body1 for hierarchy." }),
116
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "body2 - 0.875rem (14px), Weight 400, Line height 1.43" })
117
+ ] })
118
+ ] })
119
+ ] }),
120
+ /* @__PURE__ */ r.jsx(d, {}),
121
+ /* @__PURE__ */ r.jsxs(t, { children: [
122
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "primary", gutterBottom: !0, children: "Labels & Supporting Text" }),
123
+ /* @__PURE__ */ r.jsxs(i, { spacing: 2, children: [
124
+ /* @__PURE__ */ r.jsxs(t, { children: [
125
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle1", component: "div", gutterBottom: !0, children: "Subtitle Large - Used for prominent secondary text" }),
126
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "subtitle1 - 1rem (16px), Weight 500" })
127
+ ] }),
128
+ /* @__PURE__ */ r.jsxs(t, { children: [
129
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", component: "div", gutterBottom: !0, children: "Subtitle Small - Used for form labels and secondary headings" }),
130
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "subtitle2 - 0.875rem (14px), Weight 500" })
131
+ ] }),
132
+ /* @__PURE__ */ r.jsxs(t, { children: [
133
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", component: "div", gutterBottom: !0, children: "Caption Text - Used for annotations, helper text, and fine print" }),
134
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "caption - 0.75rem (12px), Weight 400" })
135
+ ] }),
136
+ /* @__PURE__ */ r.jsxs(t, { children: [
137
+ /* @__PURE__ */ r.jsx(e, { variant: "overline", component: "div", gutterBottom: !0, children: "OVERLINE TEXT - USED FOR LABELS AND CATEGORIES" }),
138
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "overline - 0.75rem (12px), Weight 400, Uppercase, Letter spacing 0.5px" })
139
+ ] })
140
+ ] })
141
+ ] }),
142
+ /* @__PURE__ */ r.jsx(d, {}),
143
+ /* @__PURE__ */ r.jsxs(t, { children: [
144
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "primary", gutterBottom: !0, children: "Interactive & Special Text" }),
145
+ /* @__PURE__ */ r.jsxs(i, { spacing: 2, children: [
146
+ /* @__PURE__ */ r.jsxs(t, { children: [
147
+ /* @__PURE__ */ r.jsx(e, { variant: "button", component: "div", gutterBottom: !0, children: "Button Text - All Caps Button Labels" }),
148
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "button - 0.875rem (14px), Weight 500, Uppercase" })
149
+ ] }),
150
+ /* @__PURE__ */ r.jsxs(t, { children: [
151
+ /* @__PURE__ */ r.jsx(
152
+ e,
153
+ {
154
+ variant: "body2",
155
+ component: "a",
156
+ href: "#",
157
+ sx: { color: "primary.main", textDecoration: "none", "&:hover": { textDecoration: "underline" } },
158
+ gutterBottom: !0,
159
+ children: "Link Text - Interactive text elements"
160
+ }
161
+ ),
162
+ /* @__PURE__ */ r.jsx(e, { variant: "caption", color: "text.secondary", children: "Links inherit body variants with primary color and hover effects" })
163
+ ] })
164
+ ] })
165
+ ] }),
166
+ /* @__PURE__ */ r.jsx(d, {}),
167
+ /* @__PURE__ */ r.jsxs(t, { children: [
168
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "primary", gutterBottom: !0, children: "Text Color Variants" }),
169
+ /* @__PURE__ */ r.jsxs(i, { spacing: 1, children: [
170
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "text.primary", children: "Primary Text - Main content color" }),
171
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "text.secondary", children: "Secondary Text - Supporting content color" }),
172
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "text.disabled", children: "Disabled Text - Inactive content color" }),
173
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "primary.main", children: "Primary Brand - Brand color text" }),
174
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "success.main", children: "Success Text - Positive feedback" }),
175
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "warning.main", children: "Warning Text - Caution indicators" }),
176
+ /* @__PURE__ */ r.jsx(e, { variant: "body1", color: "error.main", children: "Error Text - Error messages" })
177
+ ] })
178
+ ] })
179
+ ] })
180
+ ] }) }), W = () => {
181
+ const [c, o] = g.useState("");
182
+ return /* @__PURE__ */ r.jsx(x, { elevation: 2, sx: { borderRadius: 2 }, children: /* @__PURE__ */ r.jsxs(h, { children: [
183
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", gutterBottom: !0, children: "SoloStylist Components" }),
184
+ /* @__PURE__ */ r.jsxs(i, { spacing: 4, children: [
185
+ /* @__PURE__ */ r.jsxs(t, { children: [
186
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Enhanced Buttons" }),
187
+ /* @__PURE__ */ r.jsx(e, { variant: "body2", color: "text.secondary", gutterBottom: !0, sx: { mb: 3 }, children: "Comprehensive button system with all variants, colors, and sizes" }),
188
+ /* @__PURE__ */ r.jsxs(i, { spacing: 3, children: [
189
+ /* @__PURE__ */ r.jsxs(t, { children: [
190
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Button Variants" }),
191
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, flexWrap: "wrap", gap: 1, children: [
192
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", children: "Contained" }),
193
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "primary", children: "Outlined" }),
194
+ /* @__PURE__ */ r.jsx(n, { variant: "text", color: "primary", children: "Text" })
195
+ ] })
196
+ ] }),
197
+ /* @__PURE__ */ r.jsxs(t, { children: [
198
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Color Variants (Contained)" }),
199
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, flexWrap: "wrap", gap: 1, children: [
200
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", children: "Primary" }),
201
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "secondary", children: "Secondary" }),
202
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "success", children: "Success" }),
203
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "warning", children: "Warning" }),
204
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "error", children: "Error" }),
205
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "info", children: "Info" })
206
+ ] })
207
+ ] }),
208
+ /* @__PURE__ */ r.jsxs(t, { children: [
209
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Color Variants (Outlined)" }),
210
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, flexWrap: "wrap", gap: 1, children: [
211
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "primary", children: "Primary" }),
212
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "secondary", children: "Secondary" }),
213
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "success", children: "Success" }),
214
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "warning", children: "Warning" }),
215
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "error", children: "Error" }),
216
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "info", children: "Info" })
217
+ ] })
218
+ ] }),
219
+ /* @__PURE__ */ r.jsxs(t, { children: [
220
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Button Sizes" }),
221
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, alignItems: "center", flexWrap: "wrap", gap: 1, children: [
222
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", size: "small", children: "Small" }),
223
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", size: "medium", children: "Medium" }),
224
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", size: "large", children: "Large" })
225
+ ] })
226
+ ] }),
227
+ /* @__PURE__ */ r.jsxs(t, { children: [
228
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Button States" }),
229
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, flexWrap: "wrap", gap: 1, children: [
230
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", children: "Default" }),
231
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", disabled: !0, children: "Disabled" }),
232
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "primary", disabled: !0, children: "Disabled Outlined" }),
233
+ /* @__PURE__ */ r.jsx(n, { variant: "text", color: "primary", disabled: !0, children: "Disabled Text" })
234
+ ] })
235
+ ] }),
236
+ /* @__PURE__ */ r.jsxs(t, { children: [
237
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Buttons with Icons" }),
238
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 2, flexWrap: "wrap", gap: 1, children: [
239
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "primary", startIcon: /* @__PURE__ */ r.jsx(f, {}), children: "Start Icon" }),
240
+ /* @__PURE__ */ r.jsx(n, { variant: "contained", color: "secondary", endIcon: /* @__PURE__ */ r.jsx(S, {}), children: "End Icon" }),
241
+ /* @__PURE__ */ r.jsx(n, { variant: "outlined", color: "success", startIcon: /* @__PURE__ */ r.jsx(w, {}), children: "Outlined + Icon" }),
242
+ /* @__PURE__ */ r.jsx(n, { variant: "text", color: "error", endIcon: /* @__PURE__ */ r.jsx(b, {}), children: "Text + Icon" })
243
+ ] })
244
+ ] })
245
+ ] })
246
+ ] }),
247
+ /* @__PURE__ */ r.jsxs(t, { children: [
248
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Form Components with SForm" }),
249
+ /* @__PURE__ */ r.jsx(v, { label: "Sample Form", required: !0, children: /* @__PURE__ */ r.jsxs(i, { spacing: 3, children: [
250
+ /* @__PURE__ */ r.jsx(
251
+ u,
252
+ {
253
+ label: "Enhanced Text Field",
254
+ value: c,
255
+ onChange: (a) => o(a.target.value),
256
+ placeholder: "Enter text here...",
257
+ helperText: "This is an enhanced STextField component",
258
+ fullWidth: !0
259
+ }
260
+ ),
261
+ /* @__PURE__ */ r.jsx(
262
+ u,
263
+ {
264
+ label: "Password Field",
265
+ type: "password",
266
+ placeholder: "Enter password...",
267
+ helperText: "Password input with custom styling",
268
+ fullWidth: !0
269
+ }
270
+ ),
271
+ /* @__PURE__ */ r.jsx(
272
+ u,
273
+ {
274
+ label: "Multiline Text",
275
+ multiline: !0,
276
+ rows: 3,
277
+ placeholder: "Enter multiple lines...",
278
+ helperText: "Multiline text input",
279
+ fullWidth: !0
280
+ }
281
+ )
282
+ ] }) })
283
+ ] }),
284
+ /* @__PURE__ */ r.jsxs(t, { children: [
285
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Theme Controls" }),
286
+ /* @__PURE__ */ r.jsx(i, { spacing: 2, children: /* @__PURE__ */ r.jsxs(t, { children: [
287
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Theme Switch Component" }),
288
+ /* @__PURE__ */ r.jsx(y, {})
289
+ ] }) })
290
+ ] })
291
+ ] })
292
+ ] }) });
293
+ }, C = () => /* @__PURE__ */ r.jsx(x, { elevation: 2, sx: { borderRadius: 2 }, children: /* @__PURE__ */ r.jsxs(h, { children: [
294
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", gutterBottom: !0, children: "Interactive Components" }),
295
+ /* @__PURE__ */ r.jsxs(i, { spacing: 3, children: [
296
+ /* @__PURE__ */ r.jsxs(t, { children: [
297
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Alerts" }),
298
+ /* @__PURE__ */ r.jsxs(i, { spacing: 2, children: [
299
+ /* @__PURE__ */ r.jsx(p, { severity: "success", children: "Success alert - Operation completed successfully!" }),
300
+ /* @__PURE__ */ r.jsx(p, { severity: "warning", children: "Warning alert - Please review your input." }),
301
+ /* @__PURE__ */ r.jsx(p, { severity: "error", children: "Error alert - Something went wrong." }),
302
+ /* @__PURE__ */ r.jsx(p, { severity: "info", children: "Info alert - Here's some useful information." })
303
+ ] })
304
+ ] }),
305
+ /* @__PURE__ */ r.jsxs(t, { children: [
306
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Chips & Tags" }),
307
+ /* @__PURE__ */ r.jsx(e, { variant: "body2", color: "text.secondary", gutterBottom: !0, sx: { mb: 3 }, children: "Comprehensive chip system with all colors, variants, and interactive states" }),
308
+ /* @__PURE__ */ r.jsxs(i, { spacing: 3, children: [
309
+ /* @__PURE__ */ r.jsxs(t, { children: [
310
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Color Variants" }),
311
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 1, flexWrap: "wrap", gap: 1, children: [
312
+ /* @__PURE__ */ r.jsx(s, { label: "Default" }),
313
+ /* @__PURE__ */ r.jsx(s, { label: "Primary", color: "primary" }),
314
+ /* @__PURE__ */ r.jsx(s, { label: "Secondary", color: "secondary" }),
315
+ /* @__PURE__ */ r.jsx(s, { label: "Success", color: "success" }),
316
+ /* @__PURE__ */ r.jsx(s, { label: "Warning", color: "warning" }),
317
+ /* @__PURE__ */ r.jsx(s, { label: "Error", color: "error" }),
318
+ /* @__PURE__ */ r.jsx(s, { label: "Info", color: "info" })
319
+ ] })
320
+ ] }),
321
+ /* @__PURE__ */ r.jsxs(t, { children: [
322
+ /* @__PURE__ */ r.jsx(e, { variant: "subtitle2", gutterBottom: !0, children: "Chip Sizes" }),
323
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 1, alignItems: "center", flexWrap: "wrap", gap: 1, children: [
324
+ /* @__PURE__ */ r.jsx(s, { label: "Small", color: "primary", size: "small" }),
325
+ /* @__PURE__ */ r.jsx(s, { label: "Medium", color: "primary", size: "medium" })
326
+ ] })
327
+ ] })
328
+ ] })
329
+ ] })
330
+ ] })
331
+ ] }) }), I = () => {
332
+ const c = [0, 1, 2, 4, 6, 8, 12, 16, 24];
333
+ return /* @__PURE__ */ r.jsx(x, { elevation: 2, sx: { borderRadius: 2 }, children: /* @__PURE__ */ r.jsxs(h, { children: [
334
+ /* @__PURE__ */ r.jsx(e, { variant: "h5", gutterBottom: !0, children: "Shadow System" }),
335
+ /* @__PURE__ */ r.jsx(e, { variant: "body2", color: "text.secondary", gutterBottom: !0, children: "Material-UI elevation system with custom shadows" }),
336
+ /* @__PURE__ */ r.jsx(i, { direction: "row", flexWrap: "wrap", gap: 3, sx: { mt: 2 }, children: c.map((o) => /* @__PURE__ */ r.jsxs(t, { sx: { textAlign: "center" }, children: [
337
+ /* @__PURE__ */ r.jsx(
338
+ m,
339
+ {
340
+ elevation: o,
341
+ sx: {
342
+ width: 80,
343
+ height: 80,
344
+ display: "flex",
345
+ alignItems: "center",
346
+ justifyContent: "center",
347
+ mb: 1,
348
+ borderRadius: 2
349
+ },
350
+ children: /* @__PURE__ */ r.jsx(e, { variant: "h6", children: o })
351
+ }
352
+ ),
353
+ /* @__PURE__ */ r.jsxs(e, { variant: "caption", color: "text.secondary", children: [
354
+ "Elevation ",
355
+ o
356
+ ] })
357
+ ] }, o)) }),
358
+ /* @__PURE__ */ r.jsx(d, { sx: { my: 3 } }),
359
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", gutterBottom: !0, children: "Custom Shadow Effects" }),
360
+ /* @__PURE__ */ r.jsxs(i, { direction: "row", spacing: 3, flexWrap: "wrap", gap: 2, children: [
361
+ /* @__PURE__ */ r.jsx(
362
+ m,
363
+ {
364
+ sx: {
365
+ p: 3,
366
+ borderRadius: 2,
367
+ boxShadow: "var(--s-palette-baseShadow)"
368
+ },
369
+ children: /* @__PURE__ */ r.jsx(e, { variant: "body2", children: "Custom Base Shadow" })
370
+ }
371
+ ),
372
+ /* @__PURE__ */ r.jsx(
373
+ m,
374
+ {
375
+ sx: {
376
+ p: 3,
377
+ borderRadius: 2,
378
+ boxShadow: (o) => o.palette.mode === "light" ? "0 4px 20px rgba(0,0,0,0.1)" : "0 4px 20px rgba(0,0,0,0.5)"
379
+ },
380
+ children: /* @__PURE__ */ r.jsx(e, { variant: "body2", children: "Theme-aware Shadow" })
381
+ }
382
+ )
383
+ ] })
384
+ ] }) });
385
+ }, F = ({
386
+ title: c = "SoloStylist UI Kit Theme Demo",
387
+ compact: o = !1,
388
+ sections: a = ["colors", "typography", "components", "forms", "interactive", "shadows"]
389
+ }) => {
390
+ const l = g.useMemo(
391
+ () => ({
392
+ colors: a.includes("colors"),
393
+ typography: a.includes("typography"),
394
+ components: a.includes("components"),
395
+ forms: a.includes("forms"),
396
+ shadows: a.includes("shadows"),
397
+ interactive: a.includes("interactive")
398
+ }),
399
+ [a]
400
+ );
401
+ return /* @__PURE__ */ r.jsxs(t, { sx: { p: o ? 2 : 3, maxWidth: 1200, mx: "auto" }, children: [
402
+ /* @__PURE__ */ r.jsxs(t, { sx: { mb: 4, textAlign: "center" }, children: [
403
+ /* @__PURE__ */ r.jsx(e, { variant: "h3", component: "h1", gutterBottom: !0, children: c }),
404
+ /* @__PURE__ */ r.jsx(e, { variant: "h6", color: "text.secondary", sx: { mb: 3 }, children: "Showcase of the SoloStylist UI Kit with modern theming capabilities" })
405
+ ] }),
406
+ /* @__PURE__ */ r.jsxs(i, { spacing: o ? 2 : 4, children: [
407
+ l.colors && /* @__PURE__ */ r.jsx(B, {}),
408
+ l.typography && /* @__PURE__ */ r.jsx(T, {}),
409
+ (l.components || l.forms) && /* @__PURE__ */ r.jsx(W, {}),
410
+ l.interactive && /* @__PURE__ */ r.jsx(C, {}),
411
+ l.shadows && /* @__PURE__ */ r.jsx(I, {})
412
+ ] })
413
+ ] });
414
+ };
415
+ export {
416
+ F as default
417
+ };
@@ -1,2 +1,4 @@
1
1
  export { default } from './s-theme-provider';
2
2
  export type { SThemeProviderProps } from './s-theme-provider';
3
+ export { useSTheme, default as useSThemeHook } from './use-theme';
4
+ export type { SThemeMode } from './use-theme';
@@ -1,4 +1,7 @@
1
- import { default as o } from "./s-theme-provider.js";
1
+ import { default as m } from "./s-theme-provider.js";
2
+ import { useSTheme as s, useSTheme as u } from "./use-theme.js";
2
3
  export {
3
- o as default
4
+ m as default,
5
+ s as useSTheme,
6
+ u as useSThemeHook
4
7
  };
@@ -10,7 +10,7 @@ export interface SThemeProviderProps extends Omit<ThemeProviderProps, 'defaultMo
10
10
  disableCustomTheme?: boolean;
11
11
  /** Additional theme component overrides */
12
12
  themeComponents?: ThemeOptions['components'];
13
- /** Default color mode (defaults to 'dark') */
13
+ /** Default color mode (defaults to 'system') */
14
14
  defaultMode?: 'light' | 'dark' | 'system' | undefined;
15
15
  /** Custom theme object to merge with internal theme */
16
16
  theme?: Theme;
@@ -20,7 +20,7 @@ export interface SThemeProviderProps extends Omit<ThemeProviderProps, 'defaultMo
20
20
  *
21
21
  * Features:
22
22
  * - Material-UI v6 CSS variables integration with 's-' prefix
23
- * - Dark mode default with light/dark/system mode support
23
+ * - System mode default with light/dark/system mode support
24
24
  * - Comprehensive component customizations
25
25
  * - Custom color schemes, typography, shadows, and shapes
26
26
  * - Modular theme customizations from separate files
@@ -1,30 +1,30 @@
1
- import { j as e } from "../jsx-runtime-DywqP_6a.js";
2
- import * as s from "react";
1
+ import { j as s } from "../jsx-runtime-DywqP_6a.js";
2
+ import * as e from "react";
3
3
  import { createTheme as p, ThemeProvider as c } from "@mui/material";
4
4
  import { components as f } from "../theme/components/components.js";
5
5
  import { dataDisplayCustomizations as u } from "../theme/customizations/data-display.js";
6
6
  import { feedbackCustomizations as h } from "../theme/customizations/feedback.js";
7
- import { inputsCustomizations as d } from "../theme/customizations/inputs.js";
8
- import { navigationCustomizations as l } from "../theme/customizations/navigation.js";
9
- import { surfacesCustomizations as x } from "../theme/customizations/surfaces.js";
10
- import { shape as z, shadows as g, typography as j, colorSchemes as S } from "../theme/theme-primitives.js";
7
+ import { inputsCustomizations as l } from "../theme/customizations/inputs.js";
8
+ import { navigationCustomizations as x } from "../theme/customizations/navigation.js";
9
+ import { surfacesCustomizations as d } from "../theme/customizations/surfaces.js";
10
+ import { shape as z, shadows as g, typography as j, colorSchemes as y } from "../theme/theme-primitives.js";
11
11
  const w = ({
12
12
  children: r,
13
13
  disableCustomTheme: o,
14
14
  themeComponents: t,
15
- defaultMode: m = "dark",
16
- // Dark mode by default
15
+ defaultMode: m = "system",
16
+ // System preference by default
17
17
  theme: i,
18
18
  ...a
19
19
  }) => {
20
- const n = s.useMemo(() => o ? {} : p({
20
+ const n = e.useMemo(() => o ? {} : p({
21
21
  // CSS variables configuration for dynamic theming
22
22
  cssVariables: {
23
23
  colorSchemeSelector: "data-mui-color-scheme",
24
24
  cssVarPrefix: "s"
25
25
  // All CSS vars prefixed with '--s-'
26
26
  },
27
- colorSchemes: S,
27
+ colorSchemes: y,
28
28
  // Light/dark color schemes
29
29
  typography: j,
30
30
  // Custom typography scales
@@ -34,17 +34,17 @@ const w = ({
34
34
  // Border radius and shape settings
35
35
  components: {
36
36
  // Merge all component customizations
37
- ...d,
37
+ ...l,
38
38
  ...u,
39
39
  ...h,
40
- ...l,
41
40
  ...x,
41
+ ...d,
42
42
  ...f,
43
43
  ...t
44
44
  // Allow external overrides
45
45
  }
46
46
  }), [o, t]);
47
- return o ? /* @__PURE__ */ e.jsx(s.Fragment, { children: r }) : /* @__PURE__ */ e.jsx(
47
+ return o ? /* @__PURE__ */ s.jsx(e.Fragment, { children: r }) : /* @__PURE__ */ s.jsx(
48
48
  c,
49
49
  {
50
50
  disableTransitionOnChange: !0,
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Type definition for theme modes
3
+ */
4
+ export type SThemeMode = 'light' | 'dark' | 'system';
5
+ /**
6
+ * Custom hook for theme management in SoloStylist UI Kit
7
+ *
8
+ * This hook provides easy access to the current theme mode and methods
9
+ * to change the theme throughout the entire application.
10
+ *
11
+ * @returns Object containing theme mode, setter, and utility methods
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { useSTheme } from '@solostylist/ui-kit/s-theme-provider';
16
+ *
17
+ * function MyComponent() {
18
+ * const { mode, setMode, isDark, isLight, toggleMode } = useSTheme();
19
+ *
20
+ * return (
21
+ * <div>
22
+ * <p>Current mode: {mode}</p>
23
+ * <button onClick={() => setMode('dark')}>Dark Mode</button>
24
+ * <button onClick={() => setMode('light')}>Light Mode</button>
25
+ * <button onClick={toggleMode}>Toggle Theme</button>
26
+ * </div>
27
+ * );
28
+ * }
29
+ * ```
30
+ */
31
+ export declare const useSTheme: () => {
32
+ /** Current theme mode (includes 'system') */
33
+ mode: SThemeMode;
34
+ /** Resolved theme mode (system resolves to light/dark) */
35
+ resolvedMode: "light" | "dark";
36
+ /** System preference mode */
37
+ systemMode: "light" | "dark";
38
+ /** Set theme mode */
39
+ setMode: (newMode: SThemeMode) => void;
40
+ /** Is current theme dark? */
41
+ isDark: boolean;
42
+ /** Is current theme light? */
43
+ isLight: boolean;
44
+ /** Is using system preference? */
45
+ isSystem: boolean;
46
+ /** Toggle between light and dark (skips system) */
47
+ toggleMode: () => void;
48
+ /** Cycle through all modes: light → dark → system → light */
49
+ cycleMode: () => void;
50
+ };
51
+ export default useSTheme;