ndcloud-storybook 1.2.2 → 1.3.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.
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { keyframes, css } from '@emotion/react';
2
- import styled16 from '@emotion/styled';
2
+ import styled17 from '@emotion/styled';
3
3
  import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
4
+ import { useState, useEffect } from 'react';
4
5
 
5
6
  // src/atoms/Button/Button.tsx
6
7
  var Spinner = ({
@@ -35,7 +36,7 @@ var spin = keyframes`
35
36
  from { transform: rotate(0deg); }
36
37
  to { transform: rotate(360deg); }
37
38
  `;
38
- var Wrapper = styled16.div`
39
+ var Wrapper = styled17.div`
39
40
  display: inline-flex;
40
41
  align-items: center;
41
42
  justify-content: center;
@@ -187,7 +188,7 @@ var Button = ({
187
188
  }
188
189
  );
189
190
  var Button_default = Button;
190
- var StyledButton = styled16.button`
191
+ var StyledButton = styled17.button`
191
192
  display: flex;
192
193
  align-items: center;
193
194
  justify-content: center;
@@ -282,12 +283,153 @@ var Input = ({ className, error, warning, ...rest }) => {
282
283
  return /* @__PURE__ */ jsx(StyledInput, { className, error, warning, ...rest });
283
284
  };
284
285
  var Input_default = Input;
285
- var StyledInput = styled16.input`
286
+ var StyledInput = styled17.input`
286
287
  ${baseInputStyles}
287
288
 
288
289
  ${({ error }) => error && errorStyles}
289
290
  ${({ warning }) => warning && warningStyles}
290
291
  `;
292
+ var useDarkMode = () => {
293
+ const checkDarkMode = () => {
294
+ if (typeof window === "undefined") return false;
295
+ const globals = new URLSearchParams(window.location.search).get("globals");
296
+ return !!(globals?.includes("backgrounds.value:dark") || window.location.href.includes("backgrounds.value:dark"));
297
+ };
298
+ const [isDark, setIsDark] = useState(checkDarkMode);
299
+ useEffect(() => {
300
+ const handlePopState = () => setIsDark(checkDarkMode());
301
+ window.addEventListener("popstate", handlePopState);
302
+ return () => window.removeEventListener("popstate", handlePopState);
303
+ }, []);
304
+ return isDark;
305
+ };
306
+
307
+ // src/assets/icons/Checkmark.svg?react
308
+ var Checkmark_default = "./Checkmark-OGDFVW3O.svg?react";
309
+ var Checkbox = ({
310
+ className,
311
+ danger,
312
+ darkMode: darkModeProp,
313
+ checked,
314
+ size = 20,
315
+ disabled,
316
+ ...rest
317
+ }) => {
318
+ const autoDarkMode = useDarkMode();
319
+ const darkMode = darkModeProp !== void 0 ? darkModeProp : autoDarkMode;
320
+ return /* @__PURE__ */ jsxs(CheckboxWrapper, { className, danger, darkMode, size, children: [
321
+ /* @__PURE__ */ jsx(
322
+ StyledCheckbox,
323
+ {
324
+ type: "checkbox",
325
+ checked,
326
+ danger,
327
+ disabled,
328
+ ...rest
329
+ }
330
+ ),
331
+ /* @__PURE__ */ jsx(
332
+ CheckmarkWrapper,
333
+ {
334
+ checked,
335
+ danger,
336
+ darkMode,
337
+ disabled,
338
+ size,
339
+ children: /* @__PURE__ */ jsx(Checkmark_default, {})
340
+ }
341
+ )
342
+ ] });
343
+ };
344
+ var Checkbox_default = Checkbox;
345
+ var CheckboxWrapper = styled17.label`
346
+ position: relative;
347
+ display: inline-block;
348
+ cursor: pointer;
349
+
350
+ &:has(input:disabled) {
351
+ cursor: not-allowed;
352
+ }
353
+
354
+ &:hover input:not(:checked):not(:disabled) + span {
355
+ ${({ danger, darkMode }) => danger ? css`
356
+ border-color: ${colors.accents.danger};
357
+ ` : darkMode ? css`
358
+ background-color: ${colors.baseColors.grey2};
359
+ border-color: ${colors.baseColors.grey4};
360
+ ` : css`
361
+ background-color: ${getOpacity(colors.baseColors.grey7, 40)};
362
+ border-color: ${colors.baseColors.grey3};
363
+ `}
364
+ }
365
+ `;
366
+ var StyledCheckbox = styled17.input`
367
+ position: absolute;
368
+ opacity: 0;
369
+ cursor: pointer;
370
+ height: 0;
371
+ width: 0;
372
+
373
+ &:focus-visible + * {
374
+ outline: 2px solid ${colors.baseColors.primaryBlue};
375
+ outline-offset: 2px;
376
+ border-radius: 4px;
377
+ }
378
+
379
+ &:disabled + * {
380
+ opacity: 0.5;
381
+ cursor: not-allowed;
382
+ }
383
+ `;
384
+ var CheckmarkWrapper = styled17.span`
385
+ display: inline-flex;
386
+ align-items: center;
387
+ justify-content: center;
388
+ width: ${({ size }) => size}px;
389
+ height: ${({ size }) => size}px;
390
+ box-sizing: border-box;
391
+ border-radius: 4px;
392
+ transition: all 0.2s ease;
393
+ color: transparent;
394
+
395
+ svg {
396
+ width: 60%;
397
+ height: 60%;
398
+ }
399
+
400
+ ${({ checked, danger, darkMode, disabled }) => {
401
+ if (disabled) {
402
+ return darkMode ? css`
403
+ background-color: ${colors.baseColors.grey1};
404
+ border: 1px solid ${colors.baseColors.grey4};
405
+ ` : css`
406
+ background-color: ${colors.baseColors.grey7};
407
+ border: 1px solid ${colors.baseColors.grey7};
408
+ `;
409
+ }
410
+ if (checked) {
411
+ const bgColor = danger ? colors.accents.danger : colors.baseColors.primaryPurple;
412
+ return css`
413
+ background-color: ${bgColor};
414
+ border: 1px solid ${bgColor};
415
+ color: ${colors.baseColors.white1};
416
+ `;
417
+ }
418
+ if (danger) {
419
+ return css`
420
+ background-color: ${getOpacity(colors.accents.danger, 10)};
421
+ border: 1px solid ${colors.accents.danger};
422
+ `;
423
+ }
424
+ return darkMode ? css`
425
+ background-color: ${colors.baseColors.grey1};
426
+ border: 1px solid ${colors.baseColors.grey4};
427
+ ` : css`
428
+ background-color: ${colors.baseColors.white1};
429
+ border: 1px solid ${colors.baseColors.grey7};
430
+ `;
431
+ }}
432
+ `;
291
433
  var Label = ({ className, htmlFor, children, ...rest }) => {
292
434
  return /* @__PURE__ */ jsx("label", { className, htmlFor, ...rest, children });
293
435
  };
@@ -296,7 +438,7 @@ var Textarea = ({ className, error, warning, ...rest }) => {
296
438
  return /* @__PURE__ */ jsx(StyledTextarea, { className, error, warning, ...rest });
297
439
  };
298
440
  var Textarea_default = Textarea;
299
- var StyledTextarea = styled16.textarea`
441
+ var StyledTextarea = styled17.textarea`
300
442
  ${baseInputStyles}
301
443
  resize: vertical;
302
444
  min-height: 80px;
@@ -324,7 +466,7 @@ var Tab = ({
324
466
  );
325
467
  };
326
468
  var Tab_default = Tab;
327
- var StyledTab = styled16.div`
469
+ var StyledTab = styled17.div`
328
470
  display: inline-block;
329
471
  padding: 8px 16px;
330
472
  user-select: none;
@@ -345,7 +487,7 @@ var StyledTab = styled16.div`
345
487
  }
346
488
  `}
347
489
  `;
348
- var HelperText = styled16.div`
490
+ var HelperText = styled17.div`
349
491
  margin-top: 4px;
350
492
  font-size: ${typography.fontSize.xs}px;
351
493
  color: ${({ error, warning }) => {
@@ -385,7 +527,7 @@ function GroupBadge({ role, status, children }) {
385
527
  const displayText = status?.toLowerCase() === USER_STATUS.INVITED ? "Invited" : children;
386
528
  return /* @__PURE__ */ jsx(Badge, { badgeColor, children: displayText });
387
529
  }
388
- var Badge = styled16.div`
530
+ var Badge = styled17.div`
389
531
  display: inline-flex;
390
532
  padding: 8px 28px;
391
533
  border-radius: 100px;
@@ -420,7 +562,7 @@ function UserAvatar({
420
562
  return /* @__PURE__ */ jsx(ColourAvatar, { badgeColor, size, children: initials });
421
563
  }
422
564
  var UserAvatar_default = UserAvatar;
423
- var ColourAvatar = styled16.div`
565
+ var ColourAvatar = styled17.div`
424
566
  width: ${({ size }) => typeof size === "number" ? `${size}px` : size === "large" ? "56px" : "40px"};
425
567
  height: ${({ size }) => typeof size === "number" ? `${size}px` : size === "large" ? "56px" : "40px"};
426
568
  border-radius: 50%;
@@ -434,12 +576,12 @@ var ColourAvatar = styled16.div`
434
576
  font-weight: ${FONT_WEIGHTS.normal};
435
577
  flex-shrink: 0;
436
578
  `;
437
- var ProfileAvatar = styled16(ColourAvatar)`
579
+ var ProfileAvatar = styled17(ColourAvatar)`
438
580
  color: #fff;
439
581
  background: ${colors.gradients.gradient1};
440
582
  border: none;
441
583
  border-radius: 999px;
442
- line-height: 138%;
584
+ padding-top: 2px;
443
585
  margin-bottom: 12px;
444
586
  `;
445
587
  var FormField = ({
@@ -479,7 +621,7 @@ var FormField = ({
479
621
  displayText && /* @__PURE__ */ jsx(HelperText, { error: hasError, warning: hasWarning, children: displayText })
480
622
  ] });
481
623
  };
482
- var FormFieldWrapper = styled16.div`
624
+ var FormFieldWrapper = styled17.div`
483
625
  display: flex;
484
626
  flex-direction: column;
485
627
 
@@ -527,7 +669,7 @@ var FormFieldTextarea = ({
527
669
  displayText && /* @__PURE__ */ jsx(HelperText, { error: hasError, warning: hasWarning, children: displayText })
528
670
  ] });
529
671
  };
530
- var FormFieldWrapper2 = styled16.div`
672
+ var FormFieldWrapper2 = styled17.div`
531
673
  display: flex;
532
674
  flex-direction: column;
533
675
 
@@ -538,16 +680,16 @@ var FormFieldWrapper2 = styled16.div`
538
680
  }
539
681
  `;
540
682
  var FormFieldTextarea_default = FormFieldTextarea;
541
- var SearchContainer = styled16.div`
683
+ var SearchContainer = styled17.div`
542
684
  width: ${({ width }) => typeof width === "number" ? `${width}px` : width || "208px"};
543
685
  `;
544
- var InputWrapper = styled16.div`
686
+ var InputWrapper = styled17.div`
545
687
  position: relative;
546
688
  width: 100%;
547
689
  display: flex;
548
690
  align-items: center;
549
691
  `;
550
- var IconWrapper = styled16.div`
692
+ var IconWrapper = styled17.div`
551
693
  position: absolute;
552
694
  left: 17px;
553
695
  top: 50%;
@@ -559,7 +701,7 @@ var IconWrapper = styled16.div`
559
701
  pointer-events: none;
560
702
  z-index: 2;
561
703
  `;
562
- var StyledInput2 = styled16(Input_default)`
704
+ var StyledInput2 = styled17(Input_default)`
563
705
  width: 100%;
564
706
  padding-right: ${({ hasClearButton }) => hasClearButton ? "32px" : "17px"};
565
707
  padding-left: ${({ hasIcon }) => hasIcon ? "44px" : "17px"};
@@ -571,7 +713,7 @@ var StyledInput2 = styled16(Input_default)`
571
713
  padding-left: ${({ hasIcon }) => hasIcon ? "43px" : "16px"};
572
714
  }
573
715
  `;
574
- var ClearButton = styled16.button`
716
+ var ClearButton = styled17.button`
575
717
  position: absolute;
576
718
  right: 8px;
577
719
  top: 50%;
@@ -597,7 +739,7 @@ var ClearButton = styled16.button`
597
739
  border-radius: 4px;
598
740
  }
599
741
  `;
600
- var ClearIcon = styled16.svg`
742
+ var ClearIcon = styled17.svg`
601
743
  width: 16px;
602
744
  height: 16px;
603
745
  stroke-width: 2;
@@ -647,7 +789,7 @@ function TableElement({ children, ...rest }) {
647
789
  return /* @__PURE__ */ jsx(StyledTable, { ...rest, children });
648
790
  }
649
791
  var Table_default = TableElement;
650
- var StyledTable = styled16.table`
792
+ var StyledTable = styled17.table`
651
793
  width: 100%;
652
794
  border-collapse: separate;
653
795
  border-spacing: 0 4px;
@@ -656,7 +798,7 @@ function TableHeader({ alignRight, children, ...rest }) {
656
798
  return /* @__PURE__ */ jsx(StyledTableHeader, { alignRight, ...rest, children });
657
799
  }
658
800
  var TableHeader_default = TableHeader;
659
- var StyledTableHeader = styled16.th`
801
+ var StyledTableHeader = styled17.th`
660
802
  padding-bottom: 12px;
661
803
  text-align: ${({ alignRight }) => alignRight ? "right" : "left"};
662
804
  font-size: ${FONT_SIZES.xs}px;
@@ -668,17 +810,17 @@ function TableCell({ children, colSpan, ...rest }) {
668
810
  return /* @__PURE__ */ jsx(StyledTableCell, { colSpan, ...rest, children });
669
811
  }
670
812
  var TableCell_default = TableCell;
671
- var StyledTableCell = styled16.td`
813
+ var StyledTableCell = styled17.td`
672
814
 
673
815
  `;
674
816
  function TableRow({ children, ...rest }) {
675
817
  return /* @__PURE__ */ jsx(StyledTableRow, { ...rest, children });
676
818
  }
677
819
  var TableRow_default = TableRow;
678
- var StyledTableRow = styled16.tr`
820
+ var StyledTableRow = styled17.tr`
679
821
  /* Base row styling */
680
822
  `;
681
- var TableRowWrapper = styled16.div`
823
+ var TableRowWrapper = styled17.div`
682
824
  border-radius: 6px;
683
825
  border: 1px solid ${colors.baseColors.grey7};
684
826
  display: flex;
@@ -686,16 +828,16 @@ var TableRowWrapper = styled16.div`
686
828
  justify-content: space-between;
687
829
  padding: 12px 24px;
688
830
  `;
689
- var CheckboxWrapper = styled16.div`
831
+ var CheckboxWrapper2 = styled17.div`
690
832
  display: flex;
691
833
  align-items: center;
692
834
  `;
693
- var ActionsWrapper = styled16.div`
835
+ var ActionsWrapper = styled17.div`
694
836
  display: flex;
695
837
  align-items: center;
696
838
  justify-content: flex-end;
697
839
  `;
698
- var AlignedTableCell = styled16(TableCell_default)`
840
+ var AlignedTableCell = styled17(TableCell_default)`
699
841
  padding-top: 12px;
700
842
  padding-bottom: 12px;
701
843
  padding-left: ${({ alignRight }) => alignRight ? "0" : "24px"};
@@ -707,29 +849,29 @@ var AlignedTableCell = styled16(TableCell_default)`
707
849
  ${({ isFirst }) => isFirst && `border-top-left-radius: 6px; border-bottom-left-radius: 6px;`}
708
850
  ${({ isLast }) => isLast && `border-top-right-radius: 6px; border-bottom-right-radius: 6px;`}
709
851
  `;
710
- var CellContent = styled16.div`
852
+ var CellContent = styled17.div`
711
853
  display: flex;
712
854
  align-items: center;
713
855
  justify-content: ${({ alignRight }) => alignRight ? "flex-end" : "flex-start"};
714
856
  flex: ${({ alignRight }) => alignRight ? "0 0 auto" : "1"};
715
857
  min-width: 0;
716
858
  `;
717
- var TableWrapper = styled16.div`
859
+ var TableWrapper = styled17.div`
718
860
  margin-top: 32px;
719
861
  `;
720
- var EmptyState = styled16.div`
862
+ var EmptyState = styled17.div`
721
863
  padding: 24px;
722
864
  text-align: center;
723
865
  display: flex;
724
866
  flex-direction: column;
725
867
  gap: 8px;
726
868
  `;
727
- var EmptyHeader = styled16.div`
869
+ var EmptyHeader = styled17.div`
728
870
  font-size: 26px;
729
871
  font-weight: 700;
730
872
  color: ${colors.baseColors.darkBlue1};
731
873
  `;
732
- var EmptySubheader = styled16.div`
874
+ var EmptySubheader = styled17.div`
733
875
  font-size: 12px;
734
876
  font-weight: 500;
735
877
  color: ${colors.baseColors.grey3};
@@ -798,7 +940,7 @@ function Table({
798
940
  const isSelected = selectedRows.has(rowKey);
799
941
  if (rowLayout === "spaced") {
800
942
  return /* @__PURE__ */ jsx(TableRow_default, { children: /* @__PURE__ */ jsx(TableCell_default, { colSpan: totalColumns, children: /* @__PURE__ */ jsxs(TableRowWrapper, { children: [
801
- showCheckboxes && /* @__PURE__ */ jsx(CheckboxWrapper, { children: /* @__PURE__ */ jsx(
943
+ showCheckboxes && /* @__PURE__ */ jsx(CheckboxWrapper2, { children: /* @__PURE__ */ jsx(
802
944
  "input",
803
945
  {
804
946
  type: "checkbox",
@@ -839,6 +981,6 @@ function Table({
839
981
  }
840
982
  var DataTable_default = Table;
841
983
 
842
- export { Badge_default as Badge, Button_default as Button, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, FormField_default as FormField, FormFieldTextarea_default as FormFieldTextarea, GroupBadge, HelperText, Input_default as Input, Label_default as Label, SearchInput_default as SearchInput, Tab_default as Tab, DataTable_default as Table, TableCell_default as TableCell, Table_default as TableElement, TableHeader_default as TableHeader, TableRow_default as TableRow, TableRowWrapper, Textarea_default as Textarea, USER_ROLES, USER_STATUS, UserAvatar_default as UserAvatar, Variant, colors, getBadgeColor, getOpacity, typography };
984
+ export { Badge_default as Badge, Button_default as Button, Checkbox_default as Checkbox, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, FormField_default as FormField, FormFieldTextarea_default as FormFieldTextarea, GroupBadge, HelperText, Input_default as Input, Label_default as Label, SearchInput_default as SearchInput, Tab_default as Tab, DataTable_default as Table, TableCell_default as TableCell, Table_default as TableElement, TableHeader_default as TableHeader, TableRow_default as TableRow, TableRowWrapper, Textarea_default as Textarea, USER_ROLES, USER_STATUS, UserAvatar_default as UserAvatar, Variant, colors, getBadgeColor, getOpacity, typography };
843
985
  //# sourceMappingURL=index.js.map
844
986
  //# sourceMappingURL=index.js.map