@noya-app/noya-designsystem 0.1.13 → 0.1.14

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.mjs CHANGED
@@ -389,11 +389,14 @@ import React21, { memo as memo11 } from "react";
389
389
  import styled14 from "styled-components";
390
390
 
391
391
  // src/contexts/DesignSystemConfiguration.tsx
392
+ import { getCurrentPlatform } from "@noya-app/noya-keymap";
392
393
  import React19, {
393
394
  createContext as createContext5,
394
395
  memo as memo10,
395
396
  useContext as useContext5,
396
- useMemo as useMemo9
397
+ useEffect as useEffect11,
398
+ useMemo as useMemo9,
399
+ useState as useState13
397
400
  } from "react";
398
401
  import { ThemeProvider, useTheme as useTheme2 } from "styled-components";
399
402
 
@@ -485,6 +488,231 @@ var Toast = ({
485
488
  };
486
489
  var ToastProvider = ({ children }) => /* @__PURE__ */ React7.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ React7.createElement(ToastViewport, null));
487
490
 
491
+ // src/theme/light.ts
492
+ var light_exports = {};
493
+ __export(light_exports, {
494
+ colors: () => colors,
495
+ fonts: () => fonts,
496
+ name: () => name,
497
+ sizes: () => sizes,
498
+ textStyles: () => textStyles
499
+ });
500
+
501
+ // src/mediaQuery.ts
502
+ var size = {
503
+ medium: "800px",
504
+ large: "1280px",
505
+ xlarge: "1550px",
506
+ xxlarge: "1680px"
507
+ };
508
+ var mediaQuery = {
509
+ small: `@media (max-width: ${size.medium})`,
510
+ medium: `@media (max-width: ${size.large}) and (min-width: ${size.medium})`,
511
+ large: `@media (max-width: ${size.xlarge}) and (min-width: ${size.large})`,
512
+ xlarge: `@media (min-width: ${size.xlarge})`
513
+ };
514
+
515
+ // src/theme/light.ts
516
+ var name = "light";
517
+ var colors = {
518
+ logo: {
519
+ fill: "rgb(175,175,175)",
520
+ highlight: "rgb(175,175,175)"
521
+ },
522
+ text: "rgb(38, 48, 83)",
523
+ textMuted: "rgb(85, 85, 85)",
524
+ textSubtle: "rgb(121, 121, 121)",
525
+ textDisabled: "rgb(160, 160, 160)",
526
+ textDecorativeLight: "rgb(168, 185, 212)",
527
+ dividerSubtle: "rgba(0, 0, 0, 0.04)",
528
+ divider: "rgba(0, 0, 0, 0.07)",
529
+ dividerStrong: "rgba(0, 0, 0, 0.09)",
530
+ primary: "rgb(132, 63, 255)",
531
+ primaryLight: "rgb(147, 86, 255)",
532
+ secondary: "rgb(0, 151, 117)",
533
+ secondaryLight: "rgb(0, 160, 129)",
534
+ secondaryBright: "#0ab557",
535
+ warning: "rgb(251, 211, 0)",
536
+ neutralBackground: "rgb(222,223,232)",
537
+ inputBackground: "rgb(240, 240, 242)",
538
+ inputBackgroundLight: "rgb(243, 243, 245)",
539
+ codeBackground: "rgb(250, 250, 250)",
540
+ codeBackgroundLight: "rgb(250, 250, 250)",
541
+ get codeBackgroundDark() {
542
+ return colors.text;
543
+ },
544
+ codeBackgroundDecorativeDark: "#435080",
545
+ selectedBackground: "rgb(242, 245, 250)",
546
+ transparentChecker: "rgba(255,255,255,0.8)",
547
+ activeBackground: "rgba(0,0,0,0.1)",
548
+ scrollbar: "rgba(199,199,199,0.8)",
549
+ placeholderDots: "rgba(0,0,0,0.3)",
550
+ breadcrumb: {
551
+ get text() {
552
+ return colors.textMuted;
553
+ },
554
+ get textHover() {
555
+ return colors.textSubtle;
556
+ },
557
+ get icon() {
558
+ return colors.icon;
559
+ }
560
+ },
561
+ listView: {
562
+ raisedBackground: "rgba(0,0,0,0.03)",
563
+ editingBackground: "#fff"
564
+ },
565
+ canvas: {
566
+ background: "rgb(249,249,249)",
567
+ get selectionStroke() {
568
+ return colors.primary;
569
+ },
570
+ dragHandleStroke: "rgba(180,180,180,0.5)",
571
+ measurement: "rgb(207,92,42)",
572
+ sliceOutline: "rgb(210,210,210)",
573
+ grid: "rgba(0,0,0,0.05)"
574
+ },
575
+ sidebar: {
576
+ background: "rgba(252,252,252,0.85)"
577
+ },
578
+ popover: {
579
+ background: "rgb(252,252,252)",
580
+ divider: "transparent"
581
+ },
582
+ slider: {
583
+ background: "white",
584
+ border: "#BBB"
585
+ },
586
+ radioGroup: {
587
+ background: "white"
588
+ },
589
+ icon: "rgb(139, 139, 139)",
590
+ iconSelected: "rgb(220, 220, 220)",
591
+ mask: "rgb(12,193,67)",
592
+ imageOverlay: "linear-gradient(0deg, rgba(132, 63, 255,0.55), rgba(132, 63, 255,0.55))",
593
+ get dragOutline() {
594
+ return colors.primary;
595
+ },
596
+ selection: "rgb(179,215,254)",
597
+ thumbnailBackground: "#f0efff",
598
+ thumbnailShadow: "#D3CEED66"
599
+ };
600
+ var fonts = {
601
+ normal: "'__Inter_6b0edc', '__Inter_Fallback_6b0edc', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
602
+ monospace: "Menlo, Monaco, Consolas, 'Courier New', monospace"
603
+ };
604
+ var typeScale = [3.052, 2.441, 1.953, 1.563, 1.25, 1, 0.85];
605
+ var textStyles = {
606
+ title: {
607
+ fontFamily: fonts.normal,
608
+ fontSize: `${typeScale[0]}rem`,
609
+ fontWeight: "bold",
610
+ lineHeight: "1.4",
611
+ letterSpacing: "-0.05em",
612
+ [mediaQuery.small]: {
613
+ fontSize: "36px"
614
+ }
615
+ },
616
+ subtitle: {
617
+ fontFamily: fonts.normal,
618
+ fontSize: `${typeScale[3]}rem`,
619
+ fontWeight: 500,
620
+ lineHeight: "1.75",
621
+ letterSpacing: "-0.05em",
622
+ [mediaQuery.small]: {
623
+ fontSize: "18px"
624
+ }
625
+ },
626
+ heading1: {
627
+ fontFamily: fonts.normal,
628
+ fontSize: `${typeScale[2]}rem`,
629
+ fontWeight: 500,
630
+ lineHeight: "1.75",
631
+ letterSpacing: "-0.025em"
632
+ },
633
+ heading2: {
634
+ fontFamily: fonts.normal,
635
+ fontSize: `${typeScale[3]}rem`,
636
+ fontWeight: 500,
637
+ lineHeight: "1.75",
638
+ letterSpacing: "-0.025em"
639
+ },
640
+ heading3: {
641
+ fontFamily: fonts.normal,
642
+ fontSize: `${typeScale[4]}rem`,
643
+ fontWeight: 500,
644
+ lineHeight: "1.75",
645
+ letterSpacing: "-0.025em"
646
+ },
647
+ heading4: {
648
+ fontFamily: fonts.normal,
649
+ fontSize: `${typeScale[5]}rem`,
650
+ fontWeight: 500,
651
+ lineHeight: "1.75"
652
+ },
653
+ heading5: {
654
+ fontFamily: fonts.normal,
655
+ fontSize: `${typeScale[6]}rem`,
656
+ fontWeight: 500,
657
+ lineHeight: "1.75"
658
+ },
659
+ body: {
660
+ fontFamily: fonts.normal,
661
+ fontSize: `${typeScale[5]}rem`,
662
+ fontWeight: 400,
663
+ lineHeight: "1.75"
664
+ },
665
+ small: {
666
+ fontFamily: fonts.normal,
667
+ fontSize: `${typeScale[6]}rem`,
668
+ fontWeight: 400,
669
+ lineHeight: "1.4"
670
+ },
671
+ button: {
672
+ fontFamily: fonts.normal,
673
+ fontSize: "0.8rem",
674
+ fontWeight: 500,
675
+ lineHeight: "1.4",
676
+ letterSpacing: "-0.2px"
677
+ },
678
+ code: {
679
+ fontFamily: fonts.monospace,
680
+ fontSize: "90%",
681
+ lineHeight: "1.5"
682
+ },
683
+ label: {
684
+ fontFamily: fonts.normal,
685
+ fontSize: "0.62rem",
686
+ fontWeight: 400,
687
+ lineHeight: "1.4",
688
+ textTransform: "uppercase",
689
+ letterSpacing: "-0.3px"
690
+ }
691
+ };
692
+ var sizes = {
693
+ sidebarWidth: 260,
694
+ toolbar: {
695
+ height: 46,
696
+ itemSeparator: 8
697
+ },
698
+ inspector: {
699
+ horizontalSeparator: 8,
700
+ verticalSeparator: 10
701
+ },
702
+ spacing: {
703
+ nano: 2,
704
+ micro: 4,
705
+ small: 8,
706
+ medium: 16,
707
+ large: 32,
708
+ xlarge: 64,
709
+ xxlarge: 128
710
+ },
711
+ dialog: {
712
+ padding: 16
713
+ }
714
+ };
715
+
488
716
  // src/contexts/DialogContext.tsx
489
717
  import React17, {
490
718
  createContext as createContext3,
@@ -1500,6 +1728,7 @@ function Popover({
1500
1728
  onFocusOutside,
1501
1729
  onPointerDownOutside,
1502
1730
  collisionPadding: 8,
1731
+ arrowPadding: 2,
1503
1732
  onPointerDown: (event) => {
1504
1733
  event.stopPropagation();
1505
1734
  },
@@ -1525,6 +1754,8 @@ var InputFieldContext = createContext2({
1525
1754
  }
1526
1755
  });
1527
1756
  var LabelContainer = styled12.label(({ theme, labelPosition, hasDropdown, pointerEvents }) => ({
1757
+ ...theme.textStyles.label,
1758
+ fontWeight: "bold",
1528
1759
  color: theme.colors.textDisabled,
1529
1760
  position: "absolute",
1530
1761
  top: 0,
@@ -1534,8 +1765,6 @@ var LabelContainer = styled12.label(({ theme, labelPosition, hasDropdown, pointe
1534
1765
  display: "flex",
1535
1766
  alignItems: "center",
1536
1767
  pointerEvents,
1537
- fontWeight: "bold",
1538
- fontSize: "60%",
1539
1768
  userSelect: "none",
1540
1769
  ...labelPosition === "start" ? { justifyContent: "flex-start", paddingLeft: "6px" } : {
1541
1770
  justifyContent: "flex-end",
@@ -2097,23 +2326,49 @@ var useCurrentFloatingWindowInternal = () => {
2097
2326
  };
2098
2327
 
2099
2328
  // src/contexts/DesignSystemConfiguration.tsx
2100
- var DesignSystemConfigurationContext = createContext5(void 0);
2329
+ var DesignSystemThemeProvider = memo10(
2330
+ function DesignSystemThemeProvider2({
2331
+ children,
2332
+ theme
2333
+ }) {
2334
+ const parentTheme = useTheme2();
2335
+ if (theme) {
2336
+ return /* @__PURE__ */ React19.createElement(ThemeProvider, { theme }, children);
2337
+ } else if (parentTheme) {
2338
+ return children;
2339
+ } else {
2340
+ return /* @__PURE__ */ React19.createElement(ThemeProvider, { theme: light_exports }, children);
2341
+ }
2342
+ }
2343
+ );
2344
+ var DesignSystemConfigurationContext = createContext5({
2345
+ platform: "key"
2346
+ });
2101
2347
  var DesignSystemConfigurationProvider = memo10(
2102
2348
  function DesignSystemConfigurationProvider2({
2103
2349
  children,
2104
- theme,
2350
+ theme = light_exports,
2105
2351
  platform
2106
2352
  }) {
2107
- const contextValue = useMemo9(() => ({ platform }), [platform]);
2353
+ const [internalPlatform, setInternalPlatform] = useState13(
2354
+ platform ?? "key"
2355
+ );
2356
+ useEffect11(() => {
2357
+ if (platform !== void 0)
2358
+ return;
2359
+ if (typeof navigator !== "undefined") {
2360
+ setInternalPlatform(getCurrentPlatform(navigator));
2361
+ }
2362
+ }, [platform]);
2363
+ const contextValue = useMemo9(
2364
+ () => ({ platform: platform ?? internalPlatform }),
2365
+ [platform, internalPlatform]
2366
+ );
2108
2367
  return /* @__PURE__ */ React19.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React19.createElement(ThemeProvider, { theme }, /* @__PURE__ */ React19.createElement(DialogProvider, null, /* @__PURE__ */ React19.createElement(ToastProvider, null, /* @__PURE__ */ React19.createElement(FloatingWindowProvider, null, children)))));
2109
2368
  }
2110
2369
  );
2111
2370
  function useDesignSystemConfiguration() {
2112
- const value = useContext5(DesignSystemConfigurationContext);
2113
- if (!value) {
2114
- throw new Error("Missing DesignSystemConfigurationProvider");
2115
- }
2116
- return value;
2371
+ return useContext5(DesignSystemConfigurationContext);
2117
2372
  }
2118
2373
  function useDesignSystemTheme() {
2119
2374
  return useTheme2();
@@ -2490,7 +2745,7 @@ var DividerVertical = memo13(function DividerVertical2(props) {
2490
2745
 
2491
2746
  // src/components/DraggableMenuButton.tsx
2492
2747
  import { DragHandleDots2Icon } from "@noya-app/noya-icons";
2493
- import React24, { memo as memo14, useCallback as useCallback14, useState as useState14 } from "react";
2748
+ import React24, { memo as memo14, useCallback as useCallback14, useState as useState15 } from "react";
2494
2749
  import styled17 from "styled-components";
2495
2750
  var DotButtonElement = styled17.div(({ theme }) => ({
2496
2751
  cursor: "pointer",
@@ -2516,7 +2771,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2516
2771
  isVisible = true
2517
2772
  }) {
2518
2773
  const color = useDesignSystemTheme().colors.icon;
2519
- const [open, setOpen] = useState14(false);
2774
+ const [open, setOpen] = useState15(false);
2520
2775
  const [downPosition, setDownPosition] = React24.useState(null);
2521
2776
  const handlePointerDownCapture = useCallback14(
2522
2777
  (event) => {
@@ -3123,7 +3378,7 @@ var FillInputField = memo17(
3123
3378
  );
3124
3379
 
3125
3380
  // src/components/FloatingWindow.tsx
3126
- import React28, { useCallback as useCallback15, useRef as useRef13, useState as useState15 } from "react";
3381
+ import React28, { useCallback as useCallback15, useRef as useRef13, useState as useState16 } from "react";
3127
3382
  var styles2 = {
3128
3383
  noSelect: {
3129
3384
  userSelect: "none",
@@ -3241,15 +3496,15 @@ var FloatingWindow = ({
3241
3496
  toolbarContent,
3242
3497
  renderToolbar = defaultRenderToolbar
3243
3498
  }) => {
3244
- const [position, setPosition] = useState15({ x: initialX, y: initialY });
3245
- const [size2, setSize] = useState15({
3499
+ const [position, setPosition] = useState16({ x: initialX, y: initialY });
3500
+ const [size2, setSize] = useState16({
3246
3501
  width: initialWidth,
3247
3502
  height: initialHeight
3248
3503
  });
3249
- const [isDragging, setIsDragging] = useState15(false);
3250
- const [isResizing, setIsResizing] = useState15(false);
3251
- const [dragOffset, setDragOffset] = useState15({ x: 0, y: 0 });
3252
- const [resizeDirection, setResizeDirection] = useState15(null);
3504
+ const [isDragging, setIsDragging] = useState16(false);
3505
+ const [isResizing, setIsResizing] = useState16(false);
3506
+ const [dragOffset, setDragOffset] = useState16({ x: 0, y: 0 });
3507
+ const [resizeDirection, setResizeDirection] = useState16(null);
3253
3508
  const wrapperRef = useRef13(null);
3254
3509
  const toggleGlobalTextSelection = (disable) => {
3255
3510
  if (disable) {
@@ -3504,7 +3759,7 @@ import styled22, { keyframes as keyframes2 } from "styled-components";
3504
3759
 
3505
3760
  // src/components/ScrollArea.tsx
3506
3761
  import * as RadixScrollArea from "@radix-ui/react-scroll-area";
3507
- import React30, { memo as memo19, useCallback as useCallback17, useState as useState16 } from "react";
3762
+ import React30, { memo as memo19, useCallback as useCallback17, useState as useState17 } from "react";
3508
3763
  import styled21 from "styled-components";
3509
3764
  var SCROLLBAR_SIZE = 10;
3510
3765
  var StyledViewport = styled21(RadixScrollArea.Viewport)({
@@ -3533,7 +3788,7 @@ var Container2 = styled21.div({
3533
3788
  minHeight: 0
3534
3789
  });
3535
3790
  var ScrollArea = memo19(function ScrollArea2({ children }) {
3536
- const [scrollElementRef, setScrollElementRef] = useState16(null);
3791
+ const [scrollElementRef, setScrollElementRef] = useState17(null);
3537
3792
  return /* @__PURE__ */ React30.createElement(Container2, null, /* @__PURE__ */ React30.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React30.createElement(
3538
3793
  StyledViewport,
3539
3794
  {
@@ -3547,7 +3802,7 @@ var ScrollArea = memo19(function ScrollArea2({ children }) {
3547
3802
  });
3548
3803
 
3549
3804
  // src/components/GridView.tsx
3550
- var sizes = {
3805
+ var sizes2 = {
3551
3806
  xxs: {
3552
3807
  itemWidth: 36,
3553
3808
  itemHeight: 36,
@@ -3583,9 +3838,9 @@ var Grid2 = styled22.div(({ theme, size: size2, padding }) => {
3583
3838
  return {
3584
3839
  color: theme.colors.text,
3585
3840
  display: "grid",
3586
- gridTemplateColumns: `repeat(auto-fill, minmax(${sizes[size2].itemWidth}px, 1fr))`,
3841
+ gridTemplateColumns: `repeat(auto-fill, minmax(${sizes2[size2].itemWidth}px, 1fr))`,
3587
3842
  // gridAutoRows: `${sizes[size].itemHeight}px`,
3588
- gap: `${sizes[size2].gap}px`,
3843
+ gap: `${sizes2[size2].gap}px`,
3589
3844
  // gridTemplateColumns: `repeat(auto-fill, minmax(
3590
3845
  // ${size === 'large' ? '280px' : size === 'small' ? '160px' : '116px'}
3591
3846
  // , 1fr))`,
@@ -3871,12 +4126,12 @@ import React35, {
3871
4126
  forwardRef as forwardRef13,
3872
4127
  memo as memo23,
3873
4128
  useCallback as useCallback21,
3874
- useEffect as useEffect12,
4129
+ useEffect as useEffect13,
3875
4130
  useImperativeHandle as useImperativeHandle3,
3876
4131
  useLayoutEffect as useLayoutEffect7,
3877
4132
  useMemo as useMemo19,
3878
4133
  useRef as useRef16,
3879
- useState as useState18
4134
+ useState as useState19
3880
4135
  } from "react";
3881
4136
  import styled25 from "styled-components";
3882
4137
 
@@ -4015,7 +4270,7 @@ import React32, {
4015
4270
  useContext as useContext8,
4016
4271
  useMemo as useMemo17,
4017
4272
  useRef as useRef14,
4018
- useState as useState17
4273
+ useState as useState18
4019
4274
  } from "react";
4020
4275
  import { createPortal as createPortal2 } from "react-dom";
4021
4276
  var normalizeListDestinationIndex = (index, position) => {
@@ -4103,12 +4358,12 @@ function SortableRoot({
4103
4358
  }
4104
4359
  })
4105
4360
  );
4106
- const [activeIndex, setActiveIndex] = useState17();
4361
+ const [activeIndex, setActiveIndex] = useState18();
4107
4362
  const activatorEvent = useRef14(null);
4108
4363
  const setActivatorEvent = useCallback19((event) => {
4109
4364
  activatorEvent.current = event;
4110
4365
  }, []);
4111
- const [position, setPosition] = useState17({ x: 0, y: 0 });
4366
+ const [position, setPosition] = useState18({ x: 0, y: 0 });
4112
4367
  const handleDragStart = useCallback19(
4113
4368
  (event) => {
4114
4369
  setActiveIndex(keys.indexOf(event.active.id));
@@ -4959,8 +5214,8 @@ var InputFieldWithCompletions = memo23(
4959
5214
  hideMenuWhenEmptyValue = false
4960
5215
  }, forwardedRef) {
4961
5216
  const ref = useRef16(null);
4962
- const [isFocused, setIsFocused] = useState18(false);
4963
- const [state, _setState] = useState18({
5217
+ const [isFocused, setIsFocused] = useState19(false);
5218
+ const [state, _setState] = useState19({
4964
5219
  filter: initialValue,
4965
5220
  selectedIndex: 0
4966
5221
  });
@@ -5018,7 +5273,7 @@ var InputFieldWithCompletions = memo23(
5018
5273
  ),
5019
5274
  ListView.rowHeight * 10.5
5020
5275
  );
5021
- useEffect12(() => {
5276
+ useEffect13(() => {
5022
5277
  if (listRef.current) {
5023
5278
  listRef.current.scrollToIndex(selectedIndex);
5024
5279
  }
@@ -5536,7 +5791,7 @@ import React40, {
5536
5791
  memo as memo27,
5537
5792
  useCallback as useCallback23,
5538
5793
  useContext as useContext11,
5539
- useEffect as useEffect13,
5794
+ useEffect as useEffect14,
5540
5795
  useMemo as useMemo22,
5541
5796
  useRef as useRef18
5542
5797
  } from "react";
@@ -5548,7 +5803,7 @@ var SelectOption = memo27(function SelectOption2({
5548
5803
  onSelect
5549
5804
  }) {
5550
5805
  const { addListener, removeListener } = useContext11(SelectContext);
5551
- useEffect13(() => {
5806
+ useEffect14(() => {
5552
5807
  if (!onSelect)
5553
5808
  return;
5554
5809
  addListener(value, onSelect);
@@ -5563,6 +5818,14 @@ var createChevronSVGString = memoize2(
5563
5818
  </svg>
5564
5819
  `
5565
5820
  );
5821
+ var SelectContainer = styled30.div(
5822
+ ({ flex }) => ({
5823
+ flex: flex ?? "1 1 0px",
5824
+ display: "flex",
5825
+ flexDirection: "row",
5826
+ position: "relative"
5827
+ })
5828
+ );
5566
5829
  var SelectElement = styled30.select(
5567
5830
  ({ theme, flex }) => ({
5568
5831
  appearance: "none",
@@ -5594,10 +5857,25 @@ var SelectElement = styled30.select(
5594
5857
  }
5595
5858
  })
5596
5859
  );
5860
+ var SelectLabel = styled30.label(({ theme }) => ({
5861
+ ...theme.textStyles.label,
5862
+ color: theme.colors.textDisabled,
5863
+ lineHeight: "19px",
5864
+ position: "absolute",
5865
+ inset: "0",
5866
+ fontWeight: "bold",
5867
+ fontSize: "60%",
5868
+ pointerEvents: "none",
5869
+ display: "flex",
5870
+ alignItems: "center",
5871
+ justifyContent: "end",
5872
+ paddingRight: "24px"
5873
+ }));
5597
5874
  var Select = memo27(function Select2({
5598
5875
  id,
5599
5876
  flex,
5600
5877
  value,
5878
+ label,
5601
5879
  ...rest
5602
5880
  }) {
5603
5881
  const options = "options" in rest ? rest.options : void 0;
@@ -5624,7 +5902,7 @@ var Select = memo27(function Select2({
5624
5902
  }),
5625
5903
  []
5626
5904
  );
5627
- return /* @__PURE__ */ React40.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ React40.createElement(
5905
+ return /* @__PURE__ */ React40.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ React40.createElement(SelectContainer, { flex }, /* @__PURE__ */ React40.createElement(
5628
5906
  SelectElement,
5629
5907
  {
5630
5908
  id,
@@ -5637,7 +5915,7 @@ var Select = memo27(function Select2({
5637
5915
  onPointerDown: (event) => event.stopPropagation()
5638
5916
  },
5639
5917
  optionElements
5640
- ));
5918
+ )), label && /* @__PURE__ */ React40.createElement(SelectLabel, { htmlFor: id }, label));
5641
5919
  });
5642
5920
 
5643
5921
  // src/components/Slider.tsx
@@ -5806,241 +6084,16 @@ function usePlatformModKey() {
5806
6084
  return platform === "mac" ? "metaKey" : "ctrlKey";
5807
6085
  }
5808
6086
 
5809
- // src/mediaQuery.ts
5810
- var size = {
5811
- medium: "800px",
5812
- large: "1280px",
5813
- xlarge: "1550px",
5814
- xxlarge: "1680px"
5815
- };
5816
- var mediaQuery = {
5817
- small: `@media (max-width: ${size.medium})`,
5818
- medium: `@media (max-width: ${size.large}) and (min-width: ${size.medium})`,
5819
- large: `@media (max-width: ${size.xlarge}) and (min-width: ${size.large})`,
5820
- xlarge: `@media (min-width: ${size.xlarge})`
5821
- };
5822
-
5823
6087
  // src/theme/dark.ts
5824
6088
  var dark_exports = {};
5825
6089
  __export(dark_exports, {
5826
6090
  colors: () => colors2,
5827
6091
  fonts: () => fonts,
5828
6092
  name: () => name2,
5829
- sizes: () => sizes2,
6093
+ sizes: () => sizes,
5830
6094
  textStyles: () => textStyles
5831
6095
  });
5832
6096
  import produce from "immer";
5833
-
5834
- // src/theme/light.ts
5835
- var light_exports = {};
5836
- __export(light_exports, {
5837
- colors: () => colors,
5838
- fonts: () => fonts,
5839
- name: () => name,
5840
- sizes: () => sizes2,
5841
- textStyles: () => textStyles
5842
- });
5843
- var name = "light";
5844
- var colors = {
5845
- logo: {
5846
- fill: "rgb(175,175,175)",
5847
- highlight: "rgb(175,175,175)"
5848
- },
5849
- text: "rgb(38, 48, 83)",
5850
- textMuted: "rgb(85, 85, 85)",
5851
- textSubtle: "rgb(121, 121, 121)",
5852
- textDisabled: "rgb(160, 160, 160)",
5853
- textDecorativeLight: "rgb(168, 185, 212)",
5854
- dividerSubtle: "rgba(0, 0, 0, 0.04)",
5855
- divider: "rgba(0, 0, 0, 0.07)",
5856
- dividerStrong: "rgba(0, 0, 0, 0.09)",
5857
- primary: "rgb(132, 63, 255)",
5858
- primaryLight: "rgb(147, 86, 255)",
5859
- secondary: "rgb(0, 151, 117)",
5860
- secondaryLight: "rgb(0, 160, 129)",
5861
- secondaryBright: "#0ab557",
5862
- warning: "rgb(251, 211, 0)",
5863
- neutralBackground: "rgb(222,223,232)",
5864
- inputBackground: "rgb(240, 240, 242)",
5865
- inputBackgroundLight: "rgb(243, 243, 245)",
5866
- codeBackground: "rgb(250, 250, 250)",
5867
- codeBackgroundLight: "rgb(250, 250, 250)",
5868
- get codeBackgroundDark() {
5869
- return colors.text;
5870
- },
5871
- codeBackgroundDecorativeDark: "#435080",
5872
- selectedBackground: "rgb(242, 245, 250)",
5873
- transparentChecker: "rgba(255,255,255,0.8)",
5874
- activeBackground: "rgba(0,0,0,0.1)",
5875
- scrollbar: "rgba(199,199,199,0.8)",
5876
- placeholderDots: "rgba(0,0,0,0.3)",
5877
- breadcrumb: {
5878
- get text() {
5879
- return colors.textMuted;
5880
- },
5881
- get textHover() {
5882
- return colors.textSubtle;
5883
- },
5884
- get icon() {
5885
- return colors.icon;
5886
- }
5887
- },
5888
- listView: {
5889
- raisedBackground: "rgba(0,0,0,0.03)",
5890
- editingBackground: "#fff"
5891
- },
5892
- canvas: {
5893
- background: "rgb(249,249,249)",
5894
- get selectionStroke() {
5895
- return colors.primary;
5896
- },
5897
- dragHandleStroke: "rgba(180,180,180,0.5)",
5898
- measurement: "rgb(207,92,42)",
5899
- sliceOutline: "rgb(210,210,210)",
5900
- grid: "rgba(0,0,0,0.05)"
5901
- },
5902
- sidebar: {
5903
- background: "rgba(252,252,252,0.85)"
5904
- },
5905
- popover: {
5906
- background: "rgb(252,252,252)",
5907
- divider: "transparent"
5908
- },
5909
- slider: {
5910
- background: "white",
5911
- border: "#BBB"
5912
- },
5913
- radioGroup: {
5914
- background: "white"
5915
- },
5916
- icon: "rgb(139, 139, 139)",
5917
- iconSelected: "rgb(220, 220, 220)",
5918
- mask: "rgb(12,193,67)",
5919
- imageOverlay: "linear-gradient(0deg, rgba(132, 63, 255,0.55), rgba(132, 63, 255,0.55))",
5920
- get dragOutline() {
5921
- return colors.primary;
5922
- },
5923
- selection: "rgb(179,215,254)",
5924
- thumbnailBackground: "#f0efff",
5925
- thumbnailShadow: "#D3CEED66"
5926
- };
5927
- var fonts = {
5928
- normal: "'__Inter_6b0edc', '__Inter_Fallback_6b0edc', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
5929
- monospace: "Menlo, Monaco, Consolas, 'Courier New', monospace"
5930
- };
5931
- var typeScale = [3.052, 2.441, 1.953, 1.563, 1.25, 1, 0.85];
5932
- var textStyles = {
5933
- title: {
5934
- fontFamily: fonts.normal,
5935
- fontSize: `${typeScale[0]}rem`,
5936
- fontWeight: "bold",
5937
- lineHeight: "1.4",
5938
- letterSpacing: "-0.05em",
5939
- [mediaQuery.small]: {
5940
- fontSize: "36px"
5941
- }
5942
- },
5943
- subtitle: {
5944
- fontFamily: fonts.normal,
5945
- fontSize: `${typeScale[3]}rem`,
5946
- fontWeight: 500,
5947
- lineHeight: "1.75",
5948
- letterSpacing: "-0.05em",
5949
- [mediaQuery.small]: {
5950
- fontSize: "18px"
5951
- }
5952
- },
5953
- heading1: {
5954
- fontFamily: fonts.normal,
5955
- fontSize: `${typeScale[2]}rem`,
5956
- fontWeight: 500,
5957
- lineHeight: "1.75",
5958
- letterSpacing: "-0.025em"
5959
- },
5960
- heading2: {
5961
- fontFamily: fonts.normal,
5962
- fontSize: `${typeScale[3]}rem`,
5963
- fontWeight: 500,
5964
- lineHeight: "1.75",
5965
- letterSpacing: "-0.025em"
5966
- },
5967
- heading3: {
5968
- fontFamily: fonts.normal,
5969
- fontSize: `${typeScale[4]}rem`,
5970
- fontWeight: 500,
5971
- lineHeight: "1.75",
5972
- letterSpacing: "-0.025em"
5973
- },
5974
- heading4: {
5975
- fontFamily: fonts.normal,
5976
- fontSize: `${typeScale[5]}rem`,
5977
- fontWeight: 500,
5978
- lineHeight: "1.75"
5979
- },
5980
- heading5: {
5981
- fontFamily: fonts.normal,
5982
- fontSize: `${typeScale[6]}rem`,
5983
- fontWeight: 500,
5984
- lineHeight: "1.75"
5985
- },
5986
- body: {
5987
- fontFamily: fonts.normal,
5988
- fontSize: `${typeScale[5]}rem`,
5989
- fontWeight: 400,
5990
- lineHeight: "1.75"
5991
- },
5992
- small: {
5993
- fontFamily: fonts.normal,
5994
- fontSize: `${typeScale[6]}rem`,
5995
- fontWeight: 400,
5996
- lineHeight: "1.4"
5997
- },
5998
- button: {
5999
- fontFamily: fonts.normal,
6000
- fontSize: "0.8rem",
6001
- fontWeight: 500,
6002
- lineHeight: "1.4",
6003
- letterSpacing: "-0.2px"
6004
- },
6005
- code: {
6006
- fontFamily: fonts.monospace,
6007
- fontSize: "90%",
6008
- lineHeight: "1.5"
6009
- },
6010
- label: {
6011
- fontFamily: fonts.normal,
6012
- fontSize: "0.62rem",
6013
- fontWeight: 400,
6014
- lineHeight: "1.4",
6015
- textTransform: "uppercase",
6016
- letterSpacing: "0.3px"
6017
- }
6018
- };
6019
- var sizes2 = {
6020
- sidebarWidth: 260,
6021
- toolbar: {
6022
- height: 46,
6023
- itemSeparator: 8
6024
- },
6025
- inspector: {
6026
- horizontalSeparator: 8,
6027
- verticalSeparator: 10
6028
- },
6029
- spacing: {
6030
- nano: 2,
6031
- micro: 4,
6032
- small: 8,
6033
- medium: 16,
6034
- large: 32,
6035
- xlarge: 64,
6036
- xxlarge: 128
6037
- },
6038
- dialog: {
6039
- padding: 16
6040
- }
6041
- };
6042
-
6043
- // src/theme/dark.ts
6044
6097
  var name2 = "dark";
6045
6098
  var colors2 = produce(colors, (colors3) => {
6046
6099
  colors3.logo.fill = "rgb(248,248,250)";
@@ -6368,6 +6421,7 @@ export {
6368
6421
  CompletionToken,
6369
6422
  ContextMenu,
6370
6423
  DesignSystemConfigurationProvider,
6424
+ DesignSystemThemeProvider,
6371
6425
  Dialog,
6372
6426
  DialogProvider,
6373
6427
  DimensionInput,