@remotion/design 4.0.508 → 4.0.509

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.
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export type SliderProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'onChange' | 'type' | 'value'> & {
3
+ readonly value: number;
4
+ readonly onChange: (value: number) => void;
5
+ readonly unfilledColor?: string;
6
+ };
7
+ export declare const Slider: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "onChange" | "type" | "value"> & {
8
+ readonly value: number;
9
+ readonly onChange: (value: number) => void;
10
+ readonly unfilledColor?: string | undefined;
11
+ } & React.RefAttributes<HTMLInputElement>>;
package/dist/Slider.js ADDED
@@ -0,0 +1,54 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { cn } from './helpers/cn';
4
+ export const Slider = React.forwardRef(({ className, max = 100, min = 0, onChange, style, unfilledColor = 'var(--color-card-bg, white)', value, ...props }, ref) => {
5
+ const numericMin = Number(min);
6
+ const numericMax = Number(max);
7
+ const percentage = numericMax === numericMin
8
+ ? 0
9
+ : ((value - numericMin) / (numericMax - numericMin)) * 100;
10
+ return (_jsxs(_Fragment, { children: [
11
+ _jsx("style", { children: `
12
+ .remotion-design-slider {
13
+ -webkit-appearance: none;
14
+ appearance: none;
15
+ height: 12px;
16
+ border-radius: 8px;
17
+ border: 2px solid black;
18
+ cursor: pointer;
19
+ }
20
+ .remotion-design-slider::-webkit-slider-thumb {
21
+ -webkit-appearance: none;
22
+ appearance: none;
23
+ width: 24px;
24
+ height: 24px;
25
+ border-radius: 50%;
26
+ background: white;
27
+ border: 2px solid black;
28
+ border-bottom-width: 4px;
29
+ cursor: pointer;
30
+ scale: 1.2;
31
+ }
32
+ .remotion-design-slider::-moz-range-thumb {
33
+ width: 24px;
34
+ height: 24px;
35
+ border-radius: 50%;
36
+ background: white;
37
+ border: 2px solid black;
38
+ border-bottom-width: 4px;
39
+ scale: 1.2;
40
+ cursor: pointer;
41
+ }
42
+ .remotion-design-slider:disabled,
43
+ .remotion-design-slider:disabled::-webkit-slider-thumb,
44
+ .remotion-design-slider:disabled::-moz-range-thumb {
45
+ cursor: default;
46
+ opacity: 0.5;
47
+ }
48
+ ` }), _jsx("input", { ref: ref, type: "range", min: min, max: max, value: value, onChange: (event) => onChange(Number(event.target.value)), className: cn('remotion-design-slider w-full', className), style: {
49
+ background: `linear-gradient(to right, var(--color-brand) 0%, var(--color-brand) ${percentage}%, ${unfilledColor} ${percentage}%, ${unfilledColor} 100%)`,
50
+ ...style,
51
+ }, ...props })
52
+ ] }));
53
+ });
54
+ Slider.displayName = 'Slider';
@@ -5726,10 +5726,86 @@ var SelectSeparator2 = React37.forwardRef(({ className, ...props }, ref) => /* @
5726
5726
  ...props
5727
5727
  }));
5728
5728
  SelectSeparator2.displayName = Separator.displayName;
5729
+ // src/Slider.tsx
5730
+ import React38 from "react";
5731
+ import { jsx as jsx26, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
5732
+ var Slider = React38.forwardRef(({
5733
+ className,
5734
+ max: max2 = 100,
5735
+ min: min2 = 0,
5736
+ onChange,
5737
+ style,
5738
+ unfilledColor = "var(--color-card-bg, white)",
5739
+ value,
5740
+ ...props
5741
+ }, ref) => {
5742
+ const numericMin = Number(min2);
5743
+ const numericMax = Number(max2);
5744
+ const percentage = numericMax === numericMin ? 0 : (value - numericMin) / (numericMax - numericMin) * 100;
5745
+ return /* @__PURE__ */ jsxs6(Fragment9, {
5746
+ children: [
5747
+ /* @__PURE__ */ jsx26("style", {
5748
+ children: `
5749
+ .remotion-design-slider {
5750
+ -webkit-appearance: none;
5751
+ appearance: none;
5752
+ height: 12px;
5753
+ border-radius: 8px;
5754
+ border: 2px solid black;
5755
+ cursor: pointer;
5756
+ }
5757
+ .remotion-design-slider::-webkit-slider-thumb {
5758
+ -webkit-appearance: none;
5759
+ appearance: none;
5760
+ width: 24px;
5761
+ height: 24px;
5762
+ border-radius: 50%;
5763
+ background: white;
5764
+ border: 2px solid black;
5765
+ border-bottom-width: 4px;
5766
+ cursor: pointer;
5767
+ scale: 1.2;
5768
+ }
5769
+ .remotion-design-slider::-moz-range-thumb {
5770
+ width: 24px;
5771
+ height: 24px;
5772
+ border-radius: 50%;
5773
+ background: white;
5774
+ border: 2px solid black;
5775
+ border-bottom-width: 4px;
5776
+ scale: 1.2;
5777
+ cursor: pointer;
5778
+ }
5779
+ .remotion-design-slider:disabled,
5780
+ .remotion-design-slider:disabled::-webkit-slider-thumb,
5781
+ .remotion-design-slider:disabled::-moz-range-thumb {
5782
+ cursor: default;
5783
+ opacity: 0.5;
5784
+ }
5785
+ `
5786
+ }),
5787
+ /* @__PURE__ */ jsx26("input", {
5788
+ ref,
5789
+ type: "range",
5790
+ min: min2,
5791
+ max: max2,
5792
+ value,
5793
+ onChange: (event) => onChange(Number(event.target.value)),
5794
+ className: cn("remotion-design-slider w-full", className),
5795
+ style: {
5796
+ background: `linear-gradient(to right, var(--color-brand) 0%, var(--color-brand) ${percentage}%, ${unfilledColor} ${percentage}%, ${unfilledColor} 100%)`,
5797
+ ...style
5798
+ },
5799
+ ...props
5800
+ })
5801
+ ]
5802
+ });
5803
+ });
5804
+ Slider.displayName = "Slider";
5729
5805
  // src/Switch.tsx
5730
- import { jsx as jsx26 } from "react/jsx-runtime";
5806
+ import { jsx as jsx27 } from "react/jsx-runtime";
5731
5807
  var Switch = ({ active, onToggle, "aria-label": ariaLabel }) => {
5732
- return /* @__PURE__ */ jsx26("button", {
5808
+ return /* @__PURE__ */ jsx27("button", {
5733
5809
  type: "button",
5734
5810
  role: "switch",
5735
5811
  "aria-checked": active,
@@ -5737,14 +5813,14 @@ var Switch = ({ active, onToggle, "aria-label": ariaLabel }) => {
5737
5813
  "data-active": active,
5738
5814
  className: "h-[34px] transition-all rounded-full w-[56px] border-2 border-b-4 bg-gray-200 p-[2px] cursor-pointer data-[active=true]:bg-brand border-black relative shrink-0",
5739
5815
  onClick: onToggle,
5740
- children: /* @__PURE__ */ jsx26("div", {
5816
+ children: /* @__PURE__ */ jsx27("div", {
5741
5817
  "data-active": active,
5742
5818
  className: "h-[20px] w-[20px] left-[4px] top-[4px] transition-all rounded-full bg-white border-2 border-black absolute data-[active=true]:left-[calc(100%-24px)]"
5743
5819
  })
5744
5820
  });
5745
5821
  };
5746
5822
  // ../../node_modules/.bun/@radix-ui+react-tabs@1.1.13+f178f9b1194b24ba/node_modules/@radix-ui/react-tabs/dist/index.mjs
5747
- import * as React49 from "react";
5823
+ import * as React50 from "react";
5748
5824
 
5749
5825
  // ../../node_modules/.bun/@radix-ui+primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.mjs
5750
5826
  var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
@@ -5758,24 +5834,24 @@ function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkFor
5758
5834
  }
5759
5835
 
5760
5836
  // ../../node_modules/.bun/@radix-ui+react-context@1.1.2+09a4a3ac15cb54ba/node_modules/@radix-ui/react-context/dist/index.mjs
5761
- import * as React38 from "react";
5762
- import { jsx as jsx27 } from "react/jsx-runtime";
5837
+ import * as React39 from "react";
5838
+ import { jsx as jsx28 } from "react/jsx-runtime";
5763
5839
  function createContextScope2(scopeName, createContextScopeDeps = []) {
5764
5840
  let defaultContexts = [];
5765
5841
  function createContext32(rootComponentName, defaultContext) {
5766
- const BaseContext = React38.createContext(defaultContext);
5842
+ const BaseContext = React39.createContext(defaultContext);
5767
5843
  const index2 = defaultContexts.length;
5768
5844
  defaultContexts = [...defaultContexts, defaultContext];
5769
5845
  const Provider = (props) => {
5770
5846
  const { scope, children, ...context } = props;
5771
5847
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
5772
- const value = React38.useMemo(() => context, Object.values(context));
5773
- return /* @__PURE__ */ jsx27(Context.Provider, { value, children });
5848
+ const value = React39.useMemo(() => context, Object.values(context));
5849
+ return /* @__PURE__ */ jsx28(Context.Provider, { value, children });
5774
5850
  };
5775
5851
  Provider.displayName = rootComponentName + "Provider";
5776
5852
  function useContext22(consumerName, scope) {
5777
5853
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
5778
- const context = React38.useContext(Context);
5854
+ const context = React39.useContext(Context);
5779
5855
  if (context)
5780
5856
  return context;
5781
5857
  if (defaultContext !== undefined)
@@ -5786,11 +5862,11 @@ function createContextScope2(scopeName, createContextScopeDeps = []) {
5786
5862
  }
5787
5863
  const createScope = () => {
5788
5864
  const scopeContexts = defaultContexts.map((defaultContext) => {
5789
- return React38.createContext(defaultContext);
5865
+ return React39.createContext(defaultContext);
5790
5866
  });
5791
5867
  return function useScope(scope) {
5792
5868
  const contexts = scope?.[scopeName] || scopeContexts;
5793
- return React38.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
5869
+ return React39.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
5794
5870
  };
5795
5871
  };
5796
5872
  createScope.scopeName = scopeName;
@@ -5811,7 +5887,7 @@ function composeContextScopes2(...scopes) {
5811
5887
  const currentScope = scopeProps[`__scope${scopeName}`];
5812
5888
  return { ...nextScopes2, ...currentScope };
5813
5889
  }, {});
5814
- return React38.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
5890
+ return React39.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
5815
5891
  };
5816
5892
  };
5817
5893
  createScope.scopeName = baseScope.scopeName;
@@ -5819,57 +5895,57 @@ function composeContextScopes2(...scopes) {
5819
5895
  }
5820
5896
 
5821
5897
  // ../../node_modules/.bun/@radix-ui+react-roving-focus@1.1.11+f178f9b1194b24ba/node_modules/@radix-ui/react-roving-focus/dist/index.mjs
5822
- import * as React47 from "react";
5898
+ import * as React48 from "react";
5823
5899
 
5824
5900
  // ../../node_modules/.bun/@radix-ui+react-collection@1.1.7+f178f9b1194b24ba/node_modules/@radix-ui/react-collection/dist/index.mjs
5825
- import React40 from "react";
5901
+ import React41 from "react";
5826
5902
 
5827
5903
  // ../../node_modules/.bun/@radix-ui+react-slot@1.2.3+09a4a3ac15cb54ba/node_modules/@radix-ui/react-slot/dist/index.mjs
5828
- import * as React39 from "react";
5829
- import { Fragment as Fragment22, jsx as jsx28 } from "react/jsx-runtime";
5904
+ import * as React40 from "react";
5905
+ import { Fragment as Fragment22, jsx as jsx29 } from "react/jsx-runtime";
5830
5906
  function createSlot2(ownerName) {
5831
5907
  const SlotClone2 = /* @__PURE__ */ createSlotClone2(ownerName);
5832
- const Slot22 = React39.forwardRef((props, forwardedRef) => {
5908
+ const Slot22 = React40.forwardRef((props, forwardedRef) => {
5833
5909
  const { children, ...slotProps } = props;
5834
- const childrenArray = React39.Children.toArray(children);
5910
+ const childrenArray = React40.Children.toArray(children);
5835
5911
  const slottable = childrenArray.find(isSlottable3);
5836
5912
  if (slottable) {
5837
5913
  const newElement = slottable.props.children;
5838
5914
  const newChildren = childrenArray.map((child) => {
5839
5915
  if (child === slottable) {
5840
- if (React39.Children.count(newElement) > 1)
5841
- return React39.Children.only(null);
5842
- return React39.isValidElement(newElement) ? newElement.props.children : null;
5916
+ if (React40.Children.count(newElement) > 1)
5917
+ return React40.Children.only(null);
5918
+ return React40.isValidElement(newElement) ? newElement.props.children : null;
5843
5919
  } else {
5844
5920
  return child;
5845
5921
  }
5846
5922
  });
5847
- return /* @__PURE__ */ jsx28(SlotClone2, { ...slotProps, ref: forwardedRef, children: React39.isValidElement(newElement) ? React39.cloneElement(newElement, undefined, newChildren) : null });
5923
+ return /* @__PURE__ */ jsx29(SlotClone2, { ...slotProps, ref: forwardedRef, children: React40.isValidElement(newElement) ? React40.cloneElement(newElement, undefined, newChildren) : null });
5848
5924
  }
5849
- return /* @__PURE__ */ jsx28(SlotClone2, { ...slotProps, ref: forwardedRef, children });
5925
+ return /* @__PURE__ */ jsx29(SlotClone2, { ...slotProps, ref: forwardedRef, children });
5850
5926
  });
5851
5927
  Slot22.displayName = `${ownerName}.Slot`;
5852
5928
  return Slot22;
5853
5929
  }
5854
5930
  function createSlotClone2(ownerName) {
5855
- const SlotClone2 = React39.forwardRef((props, forwardedRef) => {
5931
+ const SlotClone2 = React40.forwardRef((props, forwardedRef) => {
5856
5932
  const { children, ...slotProps } = props;
5857
- if (React39.isValidElement(children)) {
5933
+ if (React40.isValidElement(children)) {
5858
5934
  const childrenRef = getElementRef3(children);
5859
5935
  const props2 = mergeProps3(slotProps, children.props);
5860
- if (children.type !== React39.Fragment) {
5936
+ if (children.type !== React40.Fragment) {
5861
5937
  props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
5862
5938
  }
5863
- return React39.cloneElement(children, props2);
5939
+ return React40.cloneElement(children, props2);
5864
5940
  }
5865
- return React39.Children.count(children) > 1 ? React39.Children.only(null) : null;
5941
+ return React40.Children.count(children) > 1 ? React40.Children.only(null) : null;
5866
5942
  });
5867
5943
  SlotClone2.displayName = `${ownerName}.SlotClone`;
5868
5944
  return SlotClone2;
5869
5945
  }
5870
5946
  var SLOTTABLE_IDENTIFIER2 = Symbol("radix.slottable");
5871
5947
  function isSlottable3(child) {
5872
- return React39.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2;
5948
+ return React40.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2;
5873
5949
  }
5874
5950
  function mergeProps3(slotProps, childProps) {
5875
5951
  const overrideProps = { ...childProps };
@@ -5910,7 +5986,7 @@ function getElementRef3(element) {
5910
5986
  }
5911
5987
 
5912
5988
  // ../../node_modules/.bun/@radix-ui+react-collection@1.1.7+f178f9b1194b24ba/node_modules/@radix-ui/react-collection/dist/index.mjs
5913
- import { jsx as jsx29 } from "react/jsx-runtime";
5989
+ import { jsx as jsx30 } from "react/jsx-runtime";
5914
5990
  import React210 from "react";
5915
5991
  import { jsx as jsx210 } from "react/jsx-runtime";
5916
5992
  function createCollection2(name) {
@@ -5919,38 +5995,38 @@ function createCollection2(name) {
5919
5995
  const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map });
5920
5996
  const CollectionProvider = (props) => {
5921
5997
  const { scope, children } = props;
5922
- const ref = React40.useRef(null);
5923
- const itemMap = React40.useRef(/* @__PURE__ */ new Map).current;
5924
- return /* @__PURE__ */ jsx29(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
5998
+ const ref = React41.useRef(null);
5999
+ const itemMap = React41.useRef(/* @__PURE__ */ new Map).current;
6000
+ return /* @__PURE__ */ jsx30(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
5925
6001
  };
5926
6002
  CollectionProvider.displayName = PROVIDER_NAME;
5927
6003
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
5928
6004
  const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);
5929
- const CollectionSlot = React40.forwardRef((props, forwardedRef) => {
6005
+ const CollectionSlot = React41.forwardRef((props, forwardedRef) => {
5930
6006
  const { scope, children } = props;
5931
6007
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
5932
6008
  const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
5933
- return /* @__PURE__ */ jsx29(CollectionSlotImpl, { ref: composedRefs, children });
6009
+ return /* @__PURE__ */ jsx30(CollectionSlotImpl, { ref: composedRefs, children });
5934
6010
  });
5935
6011
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
5936
6012
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
5937
6013
  const ITEM_DATA_ATTR = "data-radix-collection-item";
5938
6014
  const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);
5939
- const CollectionItemSlot = React40.forwardRef((props, forwardedRef) => {
6015
+ const CollectionItemSlot = React41.forwardRef((props, forwardedRef) => {
5940
6016
  const { scope, children, ...itemData } = props;
5941
- const ref = React40.useRef(null);
6017
+ const ref = React41.useRef(null);
5942
6018
  const composedRefs = useComposedRefs(forwardedRef, ref);
5943
6019
  const context = useCollectionContext(ITEM_SLOT_NAME, scope);
5944
- React40.useEffect(() => {
6020
+ React41.useEffect(() => {
5945
6021
  context.itemMap.set(ref, { ref, ...itemData });
5946
6022
  return () => void context.itemMap.delete(ref);
5947
6023
  });
5948
- return /* @__PURE__ */ jsx29(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
6024
+ return /* @__PURE__ */ jsx30(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
5949
6025
  });
5950
6026
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
5951
6027
  function useCollection2(scope) {
5952
6028
  const context = useCollectionContext(name + "CollectionConsumer", scope);
5953
- const getItems = React40.useCallback(() => {
6029
+ const getItems = React41.useCallback(() => {
5954
6030
  const collectionNode = context.collectionRef.current;
5955
6031
  if (!collectionNode)
5956
6032
  return [];
@@ -6270,19 +6346,19 @@ function toSafeInteger(number) {
6270
6346
  }
6271
6347
 
6272
6348
  // ../../node_modules/.bun/@radix-ui+react-id@1.1.1+09a4a3ac15cb54ba/node_modules/@radix-ui/react-id/dist/index.mjs
6273
- import * as React42 from "react";
6349
+ import * as React43 from "react";
6274
6350
 
6275
6351
  // ../../node_modules/.bun/@radix-ui+react-use-layout-effect@1.1.1+09a4a3ac15cb54ba/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
6276
- import * as React41 from "react";
6277
- var useLayoutEffect22 = globalThis?.document ? React41.useLayoutEffect : () => {};
6352
+ import * as React42 from "react";
6353
+ var useLayoutEffect22 = globalThis?.document ? React42.useLayoutEffect : () => {};
6278
6354
 
6279
6355
  // ../../node_modules/.bun/@radix-ui+react-id@1.1.1+09a4a3ac15cb54ba/node_modules/@radix-ui/react-id/dist/index.mjs
6280
- var useReactId2 = React42[" useId ".trim().toString()] || (() => {
6356
+ var useReactId2 = React43[" useId ".trim().toString()] || (() => {
6281
6357
  return;
6282
6358
  });
6283
6359
  var count3 = 0;
6284
6360
  function useId2(deterministicId) {
6285
- const [id, setId] = React42.useState(useReactId2());
6361
+ const [id, setId] = React43.useState(useReactId2());
6286
6362
  useLayoutEffect22(() => {
6287
6363
  if (!deterministicId)
6288
6364
  setId((reactId) => reactId ?? String(count3++));
@@ -6291,9 +6367,9 @@ function useId2(deterministicId) {
6291
6367
  }
6292
6368
 
6293
6369
  // ../../node_modules/.bun/@radix-ui+react-primitive@2.1.3+f178f9b1194b24ba/node_modules/@radix-ui/react-primitive/dist/index.mjs
6294
- import * as React43 from "react";
6370
+ import * as React44 from "react";
6295
6371
  import * as ReactDOM5 from "react-dom";
6296
- import { jsx as jsx30 } from "react/jsx-runtime";
6372
+ import { jsx as jsx31 } from "react/jsx-runtime";
6297
6373
  var NODES2 = [
6298
6374
  "a",
6299
6375
  "button",
@@ -6315,32 +6391,32 @@ var NODES2 = [
6315
6391
  ];
6316
6392
  var Primitive2 = NODES2.reduce((primitive, node) => {
6317
6393
  const Slot3 = createSlot2(`Primitive.${node}`);
6318
- const Node2 = React43.forwardRef((props, forwardedRef) => {
6394
+ const Node2 = React44.forwardRef((props, forwardedRef) => {
6319
6395
  const { asChild, ...primitiveProps } = props;
6320
6396
  const Comp = asChild ? Slot3 : node;
6321
6397
  if (typeof window !== "undefined") {
6322
6398
  window[Symbol.for("radix-ui")] = true;
6323
6399
  }
6324
- return /* @__PURE__ */ jsx30(Comp, { ...primitiveProps, ref: forwardedRef });
6400
+ return /* @__PURE__ */ jsx31(Comp, { ...primitiveProps, ref: forwardedRef });
6325
6401
  });
6326
6402
  Node2.displayName = `Primitive.${node}`;
6327
6403
  return { ...primitive, [node]: Node2 };
6328
6404
  }, {});
6329
6405
 
6330
6406
  // ../../node_modules/.bun/@radix-ui+react-use-callback-ref@1.1.1+09a4a3ac15cb54ba/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs
6331
- import * as React44 from "react";
6407
+ import * as React45 from "react";
6332
6408
  function useCallbackRef3(callback) {
6333
- const callbackRef = React44.useRef(callback);
6334
- React44.useEffect(() => {
6409
+ const callbackRef = React45.useRef(callback);
6410
+ React45.useEffect(() => {
6335
6411
  callbackRef.current = callback;
6336
6412
  });
6337
- return React44.useMemo(() => (...args) => callbackRef.current?.(...args), []);
6413
+ return React45.useMemo(() => (...args) => callbackRef.current?.(...args), []);
6338
6414
  }
6339
6415
 
6340
6416
  // ../../node_modules/.bun/@radix-ui+react-use-controllable-state@1.2.2+09a4a3ac15cb54ba/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
6341
- import * as React45 from "react";
6417
+ import * as React46 from "react";
6342
6418
  import * as React212 from "react";
6343
- var useInsertionEffect = React45[" useInsertionEffect ".trim().toString()] || useLayoutEffect22;
6419
+ var useInsertionEffect = React46[" useInsertionEffect ".trim().toString()] || useLayoutEffect22;
6344
6420
  function useControllableState2({
6345
6421
  prop,
6346
6422
  defaultProp,
@@ -6354,8 +6430,8 @@ function useControllableState2({
6354
6430
  const isControlled = prop !== undefined;
6355
6431
  const value = isControlled ? prop : uncontrolledProp;
6356
6432
  if (true) {
6357
- const isControlledRef = React45.useRef(prop !== undefined);
6358
- React45.useEffect(() => {
6433
+ const isControlledRef = React46.useRef(prop !== undefined);
6434
+ React46.useEffect(() => {
6359
6435
  const wasControlled = isControlledRef.current;
6360
6436
  if (wasControlled !== isControlled) {
6361
6437
  const from = wasControlled ? "controlled" : "uncontrolled";
@@ -6365,7 +6441,7 @@ function useControllableState2({
6365
6441
  isControlledRef.current = isControlled;
6366
6442
  }, [isControlled, caller]);
6367
6443
  }
6368
- const setValue = React45.useCallback((nextValue) => {
6444
+ const setValue = React46.useCallback((nextValue) => {
6369
6445
  if (isControlled) {
6370
6446
  const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
6371
6447
  if (value2 !== prop) {
@@ -6381,13 +6457,13 @@ function useUncontrolledState2({
6381
6457
  defaultProp,
6382
6458
  onChange
6383
6459
  }) {
6384
- const [value, setValue] = React45.useState(defaultProp);
6385
- const prevValueRef = React45.useRef(value);
6386
- const onChangeRef = React45.useRef(onChange);
6460
+ const [value, setValue] = React46.useState(defaultProp);
6461
+ const prevValueRef = React46.useRef(value);
6462
+ const onChangeRef = React46.useRef(onChange);
6387
6463
  useInsertionEffect(() => {
6388
6464
  onChangeRef.current = onChange;
6389
6465
  }, [onChange]);
6390
- React45.useEffect(() => {
6466
+ React46.useEffect(() => {
6391
6467
  if (prevValueRef.current !== value) {
6392
6468
  onChangeRef.current?.(value);
6393
6469
  prevValueRef.current = value;
@@ -6401,27 +6477,27 @@ function isFunction(value) {
6401
6477
  var SYNC_STATE = Symbol("RADIX:SYNC_STATE");
6402
6478
 
6403
6479
  // ../../node_modules/.bun/@radix-ui+react-direction@1.1.1+09a4a3ac15cb54ba/node_modules/@radix-ui/react-direction/dist/index.mjs
6404
- import * as React46 from "react";
6405
- import { jsx as jsx31 } from "react/jsx-runtime";
6406
- var DirectionContext2 = React46.createContext(undefined);
6480
+ import * as React47 from "react";
6481
+ import { jsx as jsx32 } from "react/jsx-runtime";
6482
+ var DirectionContext2 = React47.createContext(undefined);
6407
6483
  function useDirection2(localDir) {
6408
- const globalDir = React46.useContext(DirectionContext2);
6484
+ const globalDir = React47.useContext(DirectionContext2);
6409
6485
  return localDir || globalDir || "ltr";
6410
6486
  }
6411
6487
 
6412
6488
  // ../../node_modules/.bun/@radix-ui+react-roving-focus@1.1.11+f178f9b1194b24ba/node_modules/@radix-ui/react-roving-focus/dist/index.mjs
6413
- import { jsx as jsx32 } from "react/jsx-runtime";
6489
+ import { jsx as jsx33 } from "react/jsx-runtime";
6414
6490
  var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
6415
6491
  var EVENT_OPTIONS2 = { bubbles: false, cancelable: true };
6416
6492
  var GROUP_NAME2 = "RovingFocusGroup";
6417
6493
  var [Collection2, useCollection2, createCollectionScope2] = createCollection2(GROUP_NAME2);
6418
6494
  var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope2(GROUP_NAME2, [createCollectionScope2]);
6419
6495
  var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME2);
6420
- var RovingFocusGroup = React47.forwardRef((props, forwardedRef) => {
6421
- return /* @__PURE__ */ jsx32(Collection2.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx32(Collection2.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx32(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });
6496
+ var RovingFocusGroup = React48.forwardRef((props, forwardedRef) => {
6497
+ return /* @__PURE__ */ jsx33(Collection2.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx33(Collection2.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx33(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });
6422
6498
  });
6423
6499
  RovingFocusGroup.displayName = GROUP_NAME2;
6424
- var RovingFocusGroupImpl = React47.forwardRef((props, forwardedRef) => {
6500
+ var RovingFocusGroupImpl = React48.forwardRef((props, forwardedRef) => {
6425
6501
  const {
6426
6502
  __scopeRovingFocusGroup,
6427
6503
  orientation,
@@ -6434,7 +6510,7 @@ var RovingFocusGroupImpl = React47.forwardRef((props, forwardedRef) => {
6434
6510
  preventScrollOnEntryFocus = false,
6435
6511
  ...groupProps
6436
6512
  } = props;
6437
- const ref = React47.useRef(null);
6513
+ const ref = React48.useRef(null);
6438
6514
  const composedRefs = useComposedRefs(forwardedRef, ref);
6439
6515
  const direction = useDirection2(dir);
6440
6516
  const [currentTabStopId, setCurrentTabStopId] = useControllableState2({
@@ -6443,29 +6519,29 @@ var RovingFocusGroupImpl = React47.forwardRef((props, forwardedRef) => {
6443
6519
  onChange: onCurrentTabStopIdChange,
6444
6520
  caller: GROUP_NAME2
6445
6521
  });
6446
- const [isTabbingBackOut, setIsTabbingBackOut] = React47.useState(false);
6522
+ const [isTabbingBackOut, setIsTabbingBackOut] = React48.useState(false);
6447
6523
  const handleEntryFocus = useCallbackRef3(onEntryFocus);
6448
6524
  const getItems = useCollection2(__scopeRovingFocusGroup);
6449
- const isClickFocusRef = React47.useRef(false);
6450
- const [focusableItemsCount, setFocusableItemsCount] = React47.useState(0);
6451
- React47.useEffect(() => {
6525
+ const isClickFocusRef = React48.useRef(false);
6526
+ const [focusableItemsCount, setFocusableItemsCount] = React48.useState(0);
6527
+ React48.useEffect(() => {
6452
6528
  const node = ref.current;
6453
6529
  if (node) {
6454
6530
  node.addEventListener(ENTRY_FOCUS, handleEntryFocus);
6455
6531
  return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);
6456
6532
  }
6457
6533
  }, [handleEntryFocus]);
6458
- return /* @__PURE__ */ jsx32(RovingFocusProvider, {
6534
+ return /* @__PURE__ */ jsx33(RovingFocusProvider, {
6459
6535
  scope: __scopeRovingFocusGroup,
6460
6536
  orientation,
6461
6537
  dir: direction,
6462
6538
  loop,
6463
6539
  currentTabStopId,
6464
- onItemFocus: React47.useCallback((tabStopId) => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),
6465
- onItemShiftTab: React47.useCallback(() => setIsTabbingBackOut(true), []),
6466
- onFocusableItemAdd: React47.useCallback(() => setFocusableItemsCount((prevCount) => prevCount + 1), []),
6467
- onFocusableItemRemove: React47.useCallback(() => setFocusableItemsCount((prevCount) => prevCount - 1), []),
6468
- children: /* @__PURE__ */ jsx32(Primitive2.div, {
6540
+ onItemFocus: React48.useCallback((tabStopId) => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),
6541
+ onItemShiftTab: React48.useCallback(() => setIsTabbingBackOut(true), []),
6542
+ onFocusableItemAdd: React48.useCallback(() => setFocusableItemsCount((prevCount) => prevCount + 1), []),
6543
+ onFocusableItemRemove: React48.useCallback(() => setFocusableItemsCount((prevCount) => prevCount - 1), []),
6544
+ children: /* @__PURE__ */ jsx33(Primitive2.div, {
6469
6545
  tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
6470
6546
  "data-orientation": orientation,
6471
6547
  ...groupProps,
@@ -6495,7 +6571,7 @@ var RovingFocusGroupImpl = React47.forwardRef((props, forwardedRef) => {
6495
6571
  });
6496
6572
  });
6497
6573
  var ITEM_NAME2 = "RovingFocusGroupItem";
6498
- var RovingFocusGroupItem = React47.forwardRef((props, forwardedRef) => {
6574
+ var RovingFocusGroupItem = React48.forwardRef((props, forwardedRef) => {
6499
6575
  const {
6500
6576
  __scopeRovingFocusGroup,
6501
6577
  focusable = true,
@@ -6510,18 +6586,18 @@ var RovingFocusGroupItem = React47.forwardRef((props, forwardedRef) => {
6510
6586
  const isCurrentTabStop = context.currentTabStopId === id;
6511
6587
  const getItems = useCollection2(__scopeRovingFocusGroup);
6512
6588
  const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;
6513
- React47.useEffect(() => {
6589
+ React48.useEffect(() => {
6514
6590
  if (focusable) {
6515
6591
  onFocusableItemAdd();
6516
6592
  return () => onFocusableItemRemove();
6517
6593
  }
6518
6594
  }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);
6519
- return /* @__PURE__ */ jsx32(Collection2.ItemSlot, {
6595
+ return /* @__PURE__ */ jsx33(Collection2.ItemSlot, {
6520
6596
  scope: __scopeRovingFocusGroup,
6521
6597
  id,
6522
6598
  focusable,
6523
6599
  active,
6524
- children: /* @__PURE__ */ jsx32(Primitive2.span, {
6600
+ children: /* @__PURE__ */ jsx33(Primitive2.span, {
6525
6601
  tabIndex: isCurrentTabStop ? 0 : -1,
6526
6602
  "data-orientation": context.orientation,
6527
6603
  ...itemProps,
@@ -6604,9 +6680,9 @@ var Item2 = RovingFocusGroupItem;
6604
6680
 
6605
6681
  // ../../node_modules/.bun/@radix-ui+react-presence@1.1.5+f178f9b1194b24ba/node_modules/@radix-ui/react-presence/dist/index.mjs
6606
6682
  import * as React213 from "react";
6607
- import * as React48 from "react";
6683
+ import * as React49 from "react";
6608
6684
  function useStateMachine(initialState, machine) {
6609
- return React48.useReducer((state, event) => {
6685
+ return React49.useReducer((state, event) => {
6610
6686
  const nextState = machine[state][event];
6611
6687
  return nextState ?? state;
6612
6688
  }, initialState);
@@ -6729,14 +6805,14 @@ function getElementRef4(element) {
6729
6805
  }
6730
6806
 
6731
6807
  // ../../node_modules/.bun/@radix-ui+react-tabs@1.1.13+f178f9b1194b24ba/node_modules/@radix-ui/react-tabs/dist/index.mjs
6732
- import { jsx as jsx33 } from "react/jsx-runtime";
6808
+ import { jsx as jsx34 } from "react/jsx-runtime";
6733
6809
  var TABS_NAME = "Tabs";
6734
6810
  var [createTabsContext, createTabsScope] = createContextScope2(TABS_NAME, [
6735
6811
  createRovingFocusGroupScope
6736
6812
  ]);
6737
6813
  var useRovingFocusGroupScope = createRovingFocusGroupScope();
6738
6814
  var [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);
6739
- var Tabs = React49.forwardRef((props, forwardedRef) => {
6815
+ var Tabs = React50.forwardRef((props, forwardedRef) => {
6740
6816
  const {
6741
6817
  __scopeTabs,
6742
6818
  value: valueProp,
@@ -6754,7 +6830,7 @@ var Tabs = React49.forwardRef((props, forwardedRef) => {
6754
6830
  defaultProp: defaultValue ?? "",
6755
6831
  caller: TABS_NAME
6756
6832
  });
6757
- return /* @__PURE__ */ jsx33(TabsProvider, {
6833
+ return /* @__PURE__ */ jsx34(TabsProvider, {
6758
6834
  scope: __scopeTabs,
6759
6835
  baseId: useId2(),
6760
6836
  value,
@@ -6762,7 +6838,7 @@ var Tabs = React49.forwardRef((props, forwardedRef) => {
6762
6838
  orientation,
6763
6839
  dir: direction,
6764
6840
  activationMode,
6765
- children: /* @__PURE__ */ jsx33(Primitive2.div, {
6841
+ children: /* @__PURE__ */ jsx34(Primitive2.div, {
6766
6842
  dir: direction,
6767
6843
  "data-orientation": orientation,
6768
6844
  ...tabsProps,
@@ -6772,17 +6848,17 @@ var Tabs = React49.forwardRef((props, forwardedRef) => {
6772
6848
  });
6773
6849
  Tabs.displayName = TABS_NAME;
6774
6850
  var TAB_LIST_NAME = "TabsList";
6775
- var TabsList = React49.forwardRef((props, forwardedRef) => {
6851
+ var TabsList = React50.forwardRef((props, forwardedRef) => {
6776
6852
  const { __scopeTabs, loop = true, ...listProps } = props;
6777
6853
  const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);
6778
6854
  const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);
6779
- return /* @__PURE__ */ jsx33(Root3, {
6855
+ return /* @__PURE__ */ jsx34(Root3, {
6780
6856
  asChild: true,
6781
6857
  ...rovingFocusGroupScope,
6782
6858
  orientation: context.orientation,
6783
6859
  dir: context.dir,
6784
6860
  loop,
6785
- children: /* @__PURE__ */ jsx33(Primitive2.div, {
6861
+ children: /* @__PURE__ */ jsx34(Primitive2.div, {
6786
6862
  role: "tablist",
6787
6863
  "aria-orientation": context.orientation,
6788
6864
  ...listProps,
@@ -6792,19 +6868,19 @@ var TabsList = React49.forwardRef((props, forwardedRef) => {
6792
6868
  });
6793
6869
  TabsList.displayName = TAB_LIST_NAME;
6794
6870
  var TRIGGER_NAME2 = "TabsTrigger";
6795
- var TabsTrigger = React49.forwardRef((props, forwardedRef) => {
6871
+ var TabsTrigger = React50.forwardRef((props, forwardedRef) => {
6796
6872
  const { __scopeTabs, value, disabled = false, ...triggerProps } = props;
6797
6873
  const context = useTabsContext(TRIGGER_NAME2, __scopeTabs);
6798
6874
  const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);
6799
6875
  const triggerId = makeTriggerId(context.baseId, value);
6800
6876
  const contentId = makeContentId(context.baseId, value);
6801
6877
  const isSelected = value === context.value;
6802
- return /* @__PURE__ */ jsx33(Item2, {
6878
+ return /* @__PURE__ */ jsx34(Item2, {
6803
6879
  asChild: true,
6804
6880
  ...rovingFocusGroupScope,
6805
6881
  focusable: !disabled,
6806
6882
  active: isSelected,
6807
- children: /* @__PURE__ */ jsx33(Primitive2.button, {
6883
+ children: /* @__PURE__ */ jsx34(Primitive2.button, {
6808
6884
  type: "button",
6809
6885
  role: "tab",
6810
6886
  "aria-selected": isSelected,
@@ -6837,18 +6913,18 @@ var TabsTrigger = React49.forwardRef((props, forwardedRef) => {
6837
6913
  });
6838
6914
  TabsTrigger.displayName = TRIGGER_NAME2;
6839
6915
  var CONTENT_NAME3 = "TabsContent";
6840
- var TabsContent = React49.forwardRef((props, forwardedRef) => {
6916
+ var TabsContent = React50.forwardRef((props, forwardedRef) => {
6841
6917
  const { __scopeTabs, value, forceMount, children, ...contentProps } = props;
6842
6918
  const context = useTabsContext(CONTENT_NAME3, __scopeTabs);
6843
6919
  const triggerId = makeTriggerId(context.baseId, value);
6844
6920
  const contentId = makeContentId(context.baseId, value);
6845
6921
  const isSelected = value === context.value;
6846
- const isMountAnimationPreventedRef = React49.useRef(isSelected);
6847
- React49.useEffect(() => {
6922
+ const isMountAnimationPreventedRef = React50.useRef(isSelected);
6923
+ React50.useEffect(() => {
6848
6924
  const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
6849
6925
  return () => cancelAnimationFrame(rAF);
6850
6926
  }, []);
6851
- return /* @__PURE__ */ jsx33(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx33(Primitive2.div, {
6927
+ return /* @__PURE__ */ jsx34(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx34(Primitive2.div, {
6852
6928
  "data-state": isSelected ? "active" : "inactive",
6853
6929
  "data-orientation": context.orientation,
6854
6930
  role: "tabpanel",
@@ -6878,32 +6954,32 @@ var Trigger2 = TabsTrigger;
6878
6954
  var Content3 = TabsContent;
6879
6955
 
6880
6956
  // src/Tabs.tsx
6881
- import * as React50 from "react";
6882
- import { jsx as jsx34 } from "react/jsx-runtime";
6957
+ import * as React51 from "react";
6958
+ import { jsx as jsx35 } from "react/jsx-runtime";
6883
6959
  var Tabs2 = Root23;
6884
- var TabsList2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(List, {
6960
+ var TabsList2 = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(List, {
6885
6961
  ref,
6886
6962
  className: cn("inline-flex items-center justify-center bg-white p-1 border-2 border-black border-b-4 rounded-full", className),
6887
6963
  ...props
6888
6964
  }));
6889
6965
  TabsList2.displayName = List.displayName;
6890
- var TabsTrigger2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(Trigger2, {
6966
+ var TabsTrigger2 = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(Trigger2, {
6891
6967
  ref,
6892
6968
  className: cn("inline-flex items-center border-none font-brand bg-transparent justify-center whitespace-nowrap rounded-full px-3 py-1.5 text-sm ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-brand data-[state=active]:text-white data-[state=inactive]:hover:bg-gray-100", className),
6893
6969
  ...props
6894
6970
  }));
6895
6971
  TabsTrigger2.displayName = Trigger2.displayName;
6896
- var TabsContent2 = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(Content3, {
6972
+ var TabsContent2 = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(Content3, {
6897
6973
  ref,
6898
6974
  className: cn("mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className),
6899
6975
  ...props
6900
6976
  }));
6901
6977
  TabsContent2.displayName = Content3.displayName;
6902
6978
  // src/Textarea.tsx
6903
- import React51 from "react";
6904
- import { jsx as jsx35 } from "react/jsx-runtime";
6905
- var Textarea = React51.forwardRef(({ className, style, ...props }, ref) => {
6906
- return /* @__PURE__ */ jsx35("textarea", {
6979
+ import React52 from "react";
6980
+ import { jsx as jsx36 } from "react/jsx-runtime";
6981
+ var Textarea = React52.forwardRef(({ className, style, ...props }, ref) => {
6982
+ return /* @__PURE__ */ jsx36("textarea", {
6907
6983
  ref,
6908
6984
  className: cn("w-full bg-white dark:bg-[#121212] rounded-lg border-2 border-b-4 border-black outline-none px-3 py-3 fontbrand text-lg box-border field-sizing-content min-h-[90px]", className),
6909
6985
  style: {
@@ -6914,13 +6990,13 @@ var Textarea = React51.forwardRef(({ className, style, ...props }, ref) => {
6914
6990
  });
6915
6991
  Textarea.displayName = "Textarea";
6916
6992
  // src/Triangle.tsx
6917
- import { jsx as jsx36 } from "react/jsx-runtime";
6993
+ import { jsx as jsx37 } from "react/jsx-runtime";
6918
6994
  var Triangle2 = (props) => {
6919
- return /* @__PURE__ */ jsx36("svg", {
6995
+ return /* @__PURE__ */ jsx37("svg", {
6920
6996
  viewBox: "0 0 127 131",
6921
6997
  fill: "none",
6922
6998
  ...props,
6923
- children: /* @__PURE__ */ jsx36("path", {
6999
+ children: /* @__PURE__ */ jsx37("path", {
6924
7000
  d: "M28.5644 0.011261C25.8196 0.159241 23.6077 0.591782 21.3786 1.43413C20.2669 1.84959 18.4446 2.75455 17.4418 3.38062C13.2472 5.993 10.0496 9.9201 8.38209 14.4903C8.04973 15.3953 7.15007 18.2809 6.5713 20.2672C2.71476 33.5453 0.525761 48.0643 0.0558711 63.4312C-0.0186237 65.8785 -0.0186237 71.7066 0.0558711 74.1141C0.371041 84.3018 1.35093 93.4992 3.12735 102.879C3.84937 106.675 5.00691 111.774 5.67736 114.091C7.04692 118.798 9.84334 122.805 13.8202 125.741C16.4848 127.711 19.5105 129.031 22.8627 129.68C24.4787 129.993 26.6104 130.135 28.1805 130.033C30.3523 129.89 34.6616 129.316 38.1628 128.695C53.9442 125.901 68.5223 120.898 81.7422 113.738C90.1143 109.202 97.2715 104.29 104.177 98.3312C111.059 92.4007 116.927 86.0206 122.09 78.8608C123.287 77.2045 123.889 76.237 124.491 75.019C126.038 71.8773 126.766 68.7527 126.76 65.2582C126.76 62.0027 126.141 59.1114 124.806 56.1518C124.164 54.7233 123.551 53.6988 122.176 51.7523C117.11 44.5868 111.489 38.3433 104.635 32.2762C94.011 22.8739 81.3927 15.1619 67.3017 9.45339C64.2474 8.21835 61.239 7.13128 57.6174 5.95315C49.9502 3.46598 40.4607 1.30891 32.4324 0.233231C31.1718 0.0624847 29.4584 -0.0342712 28.5644 0.011261Z",
6925
7001
  fill: "currentcolor"
6926
7002
  })
@@ -6934,6 +7010,7 @@ export {
6934
7010
  TabsContent2 as TabsContent,
6935
7011
  Tabs2 as Tabs,
6936
7012
  Switch,
7013
+ Slider,
6937
7014
  SelectValue2 as SelectValue,
6938
7015
  SelectTrigger2 as SelectTrigger,
6939
7016
  SelectSeparator2 as SelectSeparator,
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export { Input } from './Input';
7
7
  export { Link } from './Link';
8
8
  export { PlanePaperIcon } from './PaperPlaneIcon';
9
9
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, } from './Select';
10
+ export { Slider, type SliderProps } from './Slider';
10
11
  export { Switch } from './Switch';
11
12
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './Tabs';
12
13
  export { Textarea } from './Textarea';
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ export { Input } from './Input';
7
7
  export { Link } from './Link';
8
8
  export { PlanePaperIcon } from './PaperPlaneIcon';
9
9
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, } from './Select';
10
+ export { Slider } from './Slider';
10
11
  export { Switch } from './Switch';
11
12
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './Tabs';
12
13
  export { Textarea } from './Textarea';
package/dist/tailwind.css CHANGED
@@ -28,6 +28,8 @@
28
28
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
29
29
  --default-font-family: var(--font-sans);
30
30
  --default-mono-font-family: var(--font-mono);
31
+ --color-brand: #0b84f3;
32
+ --color-card-bg: white;
31
33
  }
32
34
  }
33
35
  @layer base {
@@ -365,6 +367,10 @@
365
367
  .rounded-sm {
366
368
  border-radius: var(--radius-sm);
367
369
  }
370
+ .border {
371
+ border-style: var(--tw-border-style);
372
+ border-width: 1px;
373
+ }
368
374
  .border-0 {
369
375
  border-style: var(--tw-border-style);
370
376
  border-width: 0px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/design",
3
- "version": "4.0.508",
3
+ "version": "4.0.509",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/esm/index.mjs",
@@ -22,19 +22,19 @@
22
22
  "@radix-ui/react-select": "2.1.1",
23
23
  "@radix-ui/react-slot": "1.2.4",
24
24
  "@radix-ui/react-tabs": "1.1.13",
25
- "@remotion/paths": "4.0.508",
26
- "@remotion/shapes": "4.0.508",
27
- "@remotion/svg-3d-engine": "4.0.508",
25
+ "@remotion/paths": "4.0.509",
26
+ "@remotion/shapes": "4.0.509",
27
+ "@remotion/svg-3d-engine": "4.0.509",
28
28
  "clsx": "2.1.1",
29
29
  "lucide-react": "0.439.0",
30
- "remotion": "4.0.508"
30
+ "remotion": "4.0.509"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "react": ">=16.8.0",
34
34
  "react-dom": ">=16.8.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@remotion/eslint-config-internal": "4.0.508",
37
+ "@remotion/eslint-config-internal": "4.0.509",
38
38
  "eslint": "9.19.0",
39
39
  "react": "19.2.3",
40
40
  "react-dom": "19.2.3",