design-zystem 1.0.274 → 1.0.276

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -513,10 +513,12 @@ declare const colors: {
513
513
  readonly pink_700: "#DB2777";
514
514
  readonly pink_800: "#BE185D";
515
515
  readonly pink_900: "#9D174D";
516
+ readonly fuchsia_300: "#FFB3EC";
516
517
  readonly green: "#12B76A";
517
518
  readonly green_50: "#DCFCE7";
518
519
  readonly green_100: "#12B76A";
519
520
  readonly green_700: "#17803D";
521
+ readonly green_900: "#006123";
520
522
  readonly badge_blue_text: "#1C4ED8";
521
523
  readonly badge_blue_bg: "#DBE9FE";
522
524
  readonly badge_green_text: "#17803D";
@@ -774,6 +776,8 @@ interface TabItem {
774
776
  disabled?: boolean;
775
777
  dot?: boolean;
776
778
  dotColor?: string;
779
+ bubbleActive?: boolean;
780
+ bubbleNumber?: number | null;
777
781
  }
778
782
  type TabsVariant = 'line' | 'pills';
779
783
  interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
@@ -919,6 +923,8 @@ interface BannerToggle {
919
923
  }
920
924
  interface BannerProps {
921
925
  variant?: string;
926
+ filled?: boolean;
927
+ shimmer?: boolean;
922
928
  badge?: string;
923
929
  title?: string;
924
930
  subtitle?: string;
@@ -927,7 +933,7 @@ interface BannerProps {
927
933
  toggle?: BannerToggle;
928
934
  children?: ReactNode;
929
935
  }
930
- declare const Banner: ({ variant, badge, title, subtitle, message, action, toggle, children, }: BannerProps) => react_jsx_runtime.JSX.Element;
936
+ declare const Banner: ({ variant, filled, shimmer, badge, title, subtitle, message, action, toggle, children, }: BannerProps) => react_jsx_runtime.JSX.Element;
931
937
 
932
938
  interface TooltipProps {
933
939
  children?: ReactNode;
package/dist/index.d.ts CHANGED
@@ -513,10 +513,12 @@ declare const colors: {
513
513
  readonly pink_700: "#DB2777";
514
514
  readonly pink_800: "#BE185D";
515
515
  readonly pink_900: "#9D174D";
516
+ readonly fuchsia_300: "#FFB3EC";
516
517
  readonly green: "#12B76A";
517
518
  readonly green_50: "#DCFCE7";
518
519
  readonly green_100: "#12B76A";
519
520
  readonly green_700: "#17803D";
521
+ readonly green_900: "#006123";
520
522
  readonly badge_blue_text: "#1C4ED8";
521
523
  readonly badge_blue_bg: "#DBE9FE";
522
524
  readonly badge_green_text: "#17803D";
@@ -774,6 +776,8 @@ interface TabItem {
774
776
  disabled?: boolean;
775
777
  dot?: boolean;
776
778
  dotColor?: string;
779
+ bubbleActive?: boolean;
780
+ bubbleNumber?: number | null;
777
781
  }
778
782
  type TabsVariant = 'line' | 'pills';
779
783
  interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
@@ -919,6 +923,8 @@ interface BannerToggle {
919
923
  }
920
924
  interface BannerProps {
921
925
  variant?: string;
926
+ filled?: boolean;
927
+ shimmer?: boolean;
922
928
  badge?: string;
923
929
  title?: string;
924
930
  subtitle?: string;
@@ -927,7 +933,7 @@ interface BannerProps {
927
933
  toggle?: BannerToggle;
928
934
  children?: ReactNode;
929
935
  }
930
- declare const Banner: ({ variant, badge, title, subtitle, message, action, toggle, children, }: BannerProps) => react_jsx_runtime.JSX.Element;
936
+ declare const Banner: ({ variant, filled, shimmer, badge, title, subtitle, message, action, toggle, children, }: BannerProps) => react_jsx_runtime.JSX.Element;
931
937
 
932
938
  interface TooltipProps {
933
939
  children?: ReactNode;
package/dist/index.js CHANGED
@@ -323,11 +323,14 @@ var colors = {
323
323
  pink_700: "#DB2777",
324
324
  pink_800: "#BE185D",
325
325
  pink_900: "#9D174D",
326
+ // FUCHSIA
327
+ fuchsia_300: "#FFB3EC",
326
328
  // GREEN
327
329
  green: "#12B76A",
328
330
  green_50: "#DCFCE7",
329
331
  green_100: "#12B76A",
330
332
  green_700: "#17803D",
333
+ green_900: "#006123",
331
334
  // BADGE
332
335
  badge_blue_text: "#1C4ED8",
333
336
  badge_blue_bg: "#DBE9FE",
@@ -4228,6 +4231,15 @@ var TabDot = import_styled_components40.default.span`
4228
4231
  flex: none;
4229
4232
  background: ${(p) => p.$color || colors.red_950};
4230
4233
  `;
4234
+ var TabBubble = (0, import_styled_components40.default)(Bubble)`
4235
+ display: flex;
4236
+ align-items: center;
4237
+ justify-content: center;
4238
+ min-width: 20px;
4239
+ height: 18px;
4240
+ font-size: 10px;
4241
+ line-height: 1;
4242
+ `;
4231
4243
  var Tab = (_a) => {
4232
4244
  var _b = _a, {
4233
4245
  id,
@@ -4330,7 +4342,17 @@ var Tabs = (_a) => {
4330
4342
  innerRef: setTabRef(it.id),
4331
4343
  children: [
4332
4344
  it.label,
4333
- it.dot && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabDot, { $color: it.dotColor })
4345
+ it.dot && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TabDot, { $color: it.dotColor }),
4346
+ Boolean(it.bubbleActive || it.bubbleNumber) && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4347
+ TabBubble,
4348
+ {
4349
+ size: "xs",
4350
+ color: colors.white,
4351
+ backgroundColor: colors.red_950,
4352
+ padding: "0 6px",
4353
+ children: it.bubbleNumber
4354
+ }
4355
+ )
4334
4356
  ]
4335
4357
  },
4336
4358
  it.id
@@ -5210,8 +5232,18 @@ var PRESET_STYLES = {
5210
5232
  accent: colors.red_950
5211
5233
  }
5212
5234
  };
5213
- var resolveStyle = (variant) => {
5235
+ var resolveStyle = (variant, filled) => {
5214
5236
  const preset = PRESET_STYLES[variant];
5237
+ const base = preset ? preset.accent : variant;
5238
+ if (filled) {
5239
+ return {
5240
+ background: base,
5241
+ borderColor: base,
5242
+ badgeBackground: `${base}24`,
5243
+ badgeColor: base,
5244
+ accent: base
5245
+ };
5246
+ }
5215
5247
  if (preset) return preset;
5216
5248
  return {
5217
5249
  background: `${variant}14`,
@@ -5224,6 +5256,36 @@ var resolveStyle = (variant) => {
5224
5256
  accent: variant
5225
5257
  };
5226
5258
  };
5259
+ var shimmerSweep = import_styled_components45.keyframes`
5260
+ 0% { transform: translateX(-120%) rotate(20deg); }
5261
+ 30%, 100% { transform: translateX(220%) rotate(20deg); }
5262
+ `;
5263
+ var shimmerStyle = import_styled_components45.css`
5264
+ position: relative;
5265
+ overflow: hidden;
5266
+
5267
+ &::after {
5268
+ content: '';
5269
+ position: absolute;
5270
+ top: -40%;
5271
+ left: 0;
5272
+ width: 28%;
5273
+ height: 180%;
5274
+ background: linear-gradient(
5275
+ 100deg,
5276
+ rgba(255, 255, 255, 0) 0%,
5277
+ rgba(255, 255, 255, 0.75) 50%,
5278
+ rgba(255, 255, 255, 0) 100%
5279
+ );
5280
+ animation: ${shimmerSweep} 3s ease-in-out infinite;
5281
+ }
5282
+
5283
+ @media (prefers-reduced-motion: reduce) {
5284
+ &::after {
5285
+ animation: none;
5286
+ }
5287
+ }
5288
+ `;
5227
5289
  var StyledBanner = import_styled_components45.default.div`
5228
5290
  box-sizing: border-box;
5229
5291
  width: 100%;
@@ -5235,6 +5297,7 @@ var StyledBanner = import_styled_components45.default.div`
5235
5297
  border-radius: 6px;
5236
5298
  border: 1px solid ${(p) => p.$borderColor};
5237
5299
  background: ${(p) => p.$background};
5300
+ ${(p) => p.$shimmer && shimmerStyle}
5238
5301
  `;
5239
5302
  var Content2 = import_styled_components45.default.div`
5240
5303
  display: flex;
@@ -5249,6 +5312,8 @@ var Heading = import_styled_components45.default.div`
5249
5312
  `;
5250
5313
  var Banner = ({
5251
5314
  variant = "blue",
5315
+ filled,
5316
+ shimmer,
5252
5317
  badge,
5253
5318
  title,
5254
5319
  subtitle,
@@ -5257,13 +5322,14 @@ var Banner = ({
5257
5322
  toggle,
5258
5323
  children
5259
5324
  }) => {
5260
- const style2 = resolveStyle(variant);
5325
+ const style2 = resolveStyle(variant, filled);
5261
5326
  if (children) {
5262
5327
  return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5263
5328
  StyledBanner,
5264
5329
  {
5265
5330
  $background: style2.background,
5266
5331
  $borderColor: style2.borderColor,
5332
+ $shimmer: shimmer,
5267
5333
  children
5268
5334
  }
5269
5335
  );
@@ -5273,6 +5339,7 @@ var Banner = ({
5273
5339
  {
5274
5340
  $background: style2.background,
5275
5341
  $borderColor: style2.borderColor,
5342
+ $shimmer: shimmer,
5276
5343
  children: [
5277
5344
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content2, { children: message ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text, { size: "s", children: message }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
5278
5345
  /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Heading, { children: [
package/dist/index.mjs CHANGED
@@ -184,11 +184,14 @@ var colors = {
184
184
  pink_700: "#DB2777",
185
185
  pink_800: "#BE185D",
186
186
  pink_900: "#9D174D",
187
+ // FUCHSIA
188
+ fuchsia_300: "#FFB3EC",
187
189
  // GREEN
188
190
  green: "#12B76A",
189
191
  green_50: "#DCFCE7",
190
192
  green_100: "#12B76A",
191
193
  green_700: "#17803D",
194
+ green_900: "#006123",
192
195
  // BADGE
193
196
  badge_blue_text: "#1C4ED8",
194
197
  badge_blue_bg: "#DBE9FE",
@@ -4104,6 +4107,15 @@ var TabDot = styled40.span`
4104
4107
  flex: none;
4105
4108
  background: ${(p) => p.$color || colors.red_950};
4106
4109
  `;
4110
+ var TabBubble = styled40(Bubble)`
4111
+ display: flex;
4112
+ align-items: center;
4113
+ justify-content: center;
4114
+ min-width: 20px;
4115
+ height: 18px;
4116
+ font-size: 10px;
4117
+ line-height: 1;
4118
+ `;
4107
4119
  var Tab = (_a) => {
4108
4120
  var _b = _a, {
4109
4121
  id,
@@ -4206,7 +4218,17 @@ var Tabs = (_a) => {
4206
4218
  innerRef: setTabRef(it.id),
4207
4219
  children: [
4208
4220
  it.label,
4209
- it.dot && /* @__PURE__ */ jsx47(TabDot, { $color: it.dotColor })
4221
+ it.dot && /* @__PURE__ */ jsx47(TabDot, { $color: it.dotColor }),
4222
+ Boolean(it.bubbleActive || it.bubbleNumber) && /* @__PURE__ */ jsx47(
4223
+ TabBubble,
4224
+ {
4225
+ size: "xs",
4226
+ color: colors.white,
4227
+ backgroundColor: colors.red_950,
4228
+ padding: "0 6px",
4229
+ children: it.bubbleNumber
4230
+ }
4231
+ )
4210
4232
  ]
4211
4233
  },
4212
4234
  it.id
@@ -5073,7 +5095,7 @@ var Card2 = ({
5073
5095
  );
5074
5096
 
5075
5097
  // src/Components/Banner/Banner.tsx
5076
- import styled45 from "styled-components";
5098
+ import styled45, { css as css3, keyframes as keyframes2 } from "styled-components";
5077
5099
  import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
5078
5100
  var PRESET_STYLES = {
5079
5101
  blue: {
@@ -5091,8 +5113,18 @@ var PRESET_STYLES = {
5091
5113
  accent: colors.red_950
5092
5114
  }
5093
5115
  };
5094
- var resolveStyle = (variant) => {
5116
+ var resolveStyle = (variant, filled) => {
5095
5117
  const preset = PRESET_STYLES[variant];
5118
+ const base = preset ? preset.accent : variant;
5119
+ if (filled) {
5120
+ return {
5121
+ background: base,
5122
+ borderColor: base,
5123
+ badgeBackground: `${base}24`,
5124
+ badgeColor: base,
5125
+ accent: base
5126
+ };
5127
+ }
5096
5128
  if (preset) return preset;
5097
5129
  return {
5098
5130
  background: `${variant}14`,
@@ -5105,6 +5137,36 @@ var resolveStyle = (variant) => {
5105
5137
  accent: variant
5106
5138
  };
5107
5139
  };
5140
+ var shimmerSweep = keyframes2`
5141
+ 0% { transform: translateX(-120%) rotate(20deg); }
5142
+ 30%, 100% { transform: translateX(220%) rotate(20deg); }
5143
+ `;
5144
+ var shimmerStyle = css3`
5145
+ position: relative;
5146
+ overflow: hidden;
5147
+
5148
+ &::after {
5149
+ content: '';
5150
+ position: absolute;
5151
+ top: -40%;
5152
+ left: 0;
5153
+ width: 28%;
5154
+ height: 180%;
5155
+ background: linear-gradient(
5156
+ 100deg,
5157
+ rgba(255, 255, 255, 0) 0%,
5158
+ rgba(255, 255, 255, 0.75) 50%,
5159
+ rgba(255, 255, 255, 0) 100%
5160
+ );
5161
+ animation: ${shimmerSweep} 3s ease-in-out infinite;
5162
+ }
5163
+
5164
+ @media (prefers-reduced-motion: reduce) {
5165
+ &::after {
5166
+ animation: none;
5167
+ }
5168
+ }
5169
+ `;
5108
5170
  var StyledBanner = styled45.div`
5109
5171
  box-sizing: border-box;
5110
5172
  width: 100%;
@@ -5116,6 +5178,7 @@ var StyledBanner = styled45.div`
5116
5178
  border-radius: 6px;
5117
5179
  border: 1px solid ${(p) => p.$borderColor};
5118
5180
  background: ${(p) => p.$background};
5181
+ ${(p) => p.$shimmer && shimmerStyle}
5119
5182
  `;
5120
5183
  var Content2 = styled45.div`
5121
5184
  display: flex;
@@ -5130,6 +5193,8 @@ var Heading = styled45.div`
5130
5193
  `;
5131
5194
  var Banner = ({
5132
5195
  variant = "blue",
5196
+ filled,
5197
+ shimmer,
5133
5198
  badge,
5134
5199
  title,
5135
5200
  subtitle,
@@ -5138,13 +5203,14 @@ var Banner = ({
5138
5203
  toggle,
5139
5204
  children
5140
5205
  }) => {
5141
- const style2 = resolveStyle(variant);
5206
+ const style2 = resolveStyle(variant, filled);
5142
5207
  if (children) {
5143
5208
  return /* @__PURE__ */ jsx54(
5144
5209
  StyledBanner,
5145
5210
  {
5146
5211
  $background: style2.background,
5147
5212
  $borderColor: style2.borderColor,
5213
+ $shimmer: shimmer,
5148
5214
  children
5149
5215
  }
5150
5216
  );
@@ -5154,6 +5220,7 @@ var Banner = ({
5154
5220
  {
5155
5221
  $background: style2.background,
5156
5222
  $borderColor: style2.borderColor,
5223
+ $shimmer: shimmer,
5157
5224
  children: [
5158
5225
  /* @__PURE__ */ jsx54(Content2, { children: message ? /* @__PURE__ */ jsx54(Text, { size: "s", children: message }) : /* @__PURE__ */ jsxs28(Fragment7, { children: [
5159
5226
  /* @__PURE__ */ jsxs28(Heading, { children: [
@@ -5690,14 +5757,14 @@ var FileUploadZone = ({
5690
5757
  };
5691
5758
 
5692
5759
  // src/Components/Spinner/Spinner.tsx
5693
- import styled48, { keyframes as keyframes2 } from "styled-components";
5760
+ import styled48, { keyframes as keyframes3 } from "styled-components";
5694
5761
  import { jsx as jsx58 } from "react/jsx-runtime";
5695
5762
  var SIZES3 = {
5696
5763
  s: 20,
5697
5764
  m: 32,
5698
5765
  l: 48
5699
5766
  };
5700
- var spin = keyframes2`
5767
+ var spin = keyframes3`
5701
5768
  0% { transform: rotate(0deg); }
5702
5769
  100% { transform: rotate(360deg); }
5703
5770
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "design-zystem",
3
- "version": "1.0.274",
3
+ "version": "1.0.276",
4
4
  "description": "A React design system of importable components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",