doodleui-react 0.5.0 → 0.6.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.cjs CHANGED
@@ -31,6 +31,8 @@ var HoverCardPrimitive = require('@radix-ui/react-hover-card');
31
31
  var ContextMenuPrimitive = require('@radix-ui/react-context-menu');
32
32
  var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
33
33
  var MenubarPrimitive = require('@radix-ui/react-menubar');
34
+ var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
35
+ var useEmblaCarousel = require('embla-carousel-react');
34
36
 
35
37
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
36
38
 
@@ -77,6 +79,8 @@ var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrim
77
79
  var ContextMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(ContextMenuPrimitive);
78
80
  var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
79
81
  var MenubarPrimitive__namespace = /*#__PURE__*/_interopNamespace(MenubarPrimitive);
82
+ var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
83
+ var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
80
84
 
81
85
  // src/types.ts
82
86
  function toRoughOptions(props) {
@@ -7231,6 +7235,1335 @@ var DrawerHeader = SlidingPanelHeader;
7231
7235
  var DrawerFooter = SlidingPanelFooter;
7232
7236
  var DrawerTitle = SlidingPanelTitle;
7233
7237
  var DrawerDescription = SlidingPanelDescription;
7238
+ function AspectRatio({
7239
+ ratio = 16 / 9,
7240
+ bordered = false,
7241
+ className,
7242
+ style,
7243
+ children,
7244
+ roughness,
7245
+ seed,
7246
+ sketchColor,
7247
+ bowing,
7248
+ fillStyle,
7249
+ strokeWidth,
7250
+ animate
7251
+ }) {
7252
+ const inner = /* @__PURE__ */ jsxRuntime.jsx(
7253
+ AspectRatioPrimitive__namespace.Root,
7254
+ {
7255
+ ratio,
7256
+ className: cn(className),
7257
+ style: {
7258
+ width: "100%",
7259
+ overflow: "hidden",
7260
+ ...style
7261
+ },
7262
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%", height: "100%" }, children })
7263
+ }
7264
+ );
7265
+ if (!bordered) {
7266
+ return inner;
7267
+ }
7268
+ return /* @__PURE__ */ jsxRuntime.jsx(
7269
+ SketchBox,
7270
+ {
7271
+ className: cn(className),
7272
+ style: { width: "100%", ...style },
7273
+ contentStyle: { padding: 0, width: "100%" },
7274
+ fill: SKETCH_COLORS.paper,
7275
+ fillStyle: fillStyle ?? "hachure",
7276
+ roughness,
7277
+ seed,
7278
+ sketchColor,
7279
+ bowing,
7280
+ strokeWidth,
7281
+ animate,
7282
+ children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatioPrimitive__namespace.Root, { ratio, style: { width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%", height: "100%" }, children }) })
7283
+ }
7284
+ );
7285
+ }
7286
+ var CHEVRON_PATH6 = "M 4 6 L 10 12 L 16 6";
7287
+ var NativeSelect = react.forwardRef(
7288
+ function NativeSelect2({
7289
+ className,
7290
+ style,
7291
+ options,
7292
+ children,
7293
+ roughness,
7294
+ seed,
7295
+ sketchColor,
7296
+ bowing,
7297
+ fillStyle,
7298
+ strokeWidth,
7299
+ animate,
7300
+ disabled,
7301
+ ...rest
7302
+ }, ref) {
7303
+ const fieldRef = react.useRef(null);
7304
+ const shouldAnimate = useAnimate(animate);
7305
+ const resolvedSeed = useResolvedSeed(seed);
7306
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
7307
+ useDrawIn(fieldRef, DRAW_IN_DURATION_MS, shouldAnimate);
7308
+ return /* @__PURE__ */ jsxRuntime.jsx(
7309
+ "span",
7310
+ {
7311
+ className: cn(className),
7312
+ style: {
7313
+ position: "relative",
7314
+ display: "block",
7315
+ width: "100%",
7316
+ opacity: disabled ? 0.6 : 1,
7317
+ ...style
7318
+ },
7319
+ children: /* @__PURE__ */ jsxRuntime.jsxs("span", { ref: fieldRef, style: { position: "relative", display: "block" }, children: [
7320
+ /* @__PURE__ */ jsxRuntime.jsx(
7321
+ RoughSvg,
7322
+ {
7323
+ shape: "rectangle",
7324
+ roughness,
7325
+ seed: resolvedSeed,
7326
+ sketchColor: ink,
7327
+ bowing,
7328
+ fillStyle,
7329
+ fill: SKETCH_COLORS.paper,
7330
+ strokeWidth
7331
+ }
7332
+ ),
7333
+ /* @__PURE__ */ jsxRuntime.jsx(
7334
+ "select",
7335
+ {
7336
+ ref,
7337
+ disabled,
7338
+ style: {
7339
+ position: "relative",
7340
+ zIndex: 1,
7341
+ width: "100%",
7342
+ border: "none",
7343
+ background: "transparent",
7344
+ padding: "10px 36px 10px 12px",
7345
+ fontFamily: doodleUiFontFamily,
7346
+ fontSize: 14,
7347
+ fontWeight: doodleUiFontWeight(500),
7348
+ color: ink,
7349
+ cursor: disabled ? "not-allowed" : "pointer",
7350
+ appearance: "none",
7351
+ WebkitAppearance: "none",
7352
+ MozAppearance: "none",
7353
+ outline: "none"
7354
+ },
7355
+ ...rest,
7356
+ children: options ? options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
7357
+ "option",
7358
+ {
7359
+ value: opt.value,
7360
+ disabled: opt.disabled,
7361
+ children: opt.label
7362
+ },
7363
+ opt.value
7364
+ )) : children
7365
+ }
7366
+ ),
7367
+ /* @__PURE__ */ jsxRuntime.jsx(
7368
+ "span",
7369
+ {
7370
+ "aria-hidden": true,
7371
+ style: {
7372
+ position: "absolute",
7373
+ right: 10,
7374
+ top: "50%",
7375
+ transform: "translateY(-50%)",
7376
+ width: 20,
7377
+ height: 14,
7378
+ pointerEvents: "none",
7379
+ zIndex: 2
7380
+ },
7381
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7382
+ RoughSvg,
7383
+ {
7384
+ shape: "path",
7385
+ path: CHEVRON_PATH6,
7386
+ roughness: (roughness ?? 1.5) * 0.85,
7387
+ seed: resolvedSeed,
7388
+ sketchColor: ink,
7389
+ bowing,
7390
+ strokeWidth: strokeWidth ?? 1.5
7391
+ }
7392
+ )
7393
+ }
7394
+ )
7395
+ ] })
7396
+ }
7397
+ );
7398
+ }
7399
+ );
7400
+ var EmptyContext = react.createContext(null);
7401
+ function useEmptyInk() {
7402
+ const ctx = react.useContext(EmptyContext);
7403
+ return ctx?.ink ?? SKETCH_COLORS.ink;
7404
+ }
7405
+ var emptyContentStyle = {
7406
+ display: "flex",
7407
+ flexDirection: "column",
7408
+ alignItems: "center",
7409
+ justifyContent: "center",
7410
+ textAlign: "center",
7411
+ gap: 12,
7412
+ padding: "32px 24px",
7413
+ minHeight: 160,
7414
+ width: "100%"
7415
+ };
7416
+ var Empty = react.forwardRef(function Empty2({
7417
+ className,
7418
+ style,
7419
+ children,
7420
+ bordered = true,
7421
+ roughness,
7422
+ seed,
7423
+ sketchColor,
7424
+ bowing,
7425
+ fillStyle,
7426
+ strokeWidth,
7427
+ animate,
7428
+ ...rest
7429
+ }, ref) {
7430
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
7431
+ const inner = /* @__PURE__ */ jsxRuntime.jsx(EmptyContext.Provider, { value: { ink }, children: /* @__PURE__ */ jsxRuntime.jsx(
7432
+ "div",
7433
+ {
7434
+ ref: bordered ? void 0 : ref,
7435
+ className: cn(className),
7436
+ style: { ...emptyContentStyle, ...style },
7437
+ ...bordered ? {} : rest,
7438
+ children
7439
+ }
7440
+ ) });
7441
+ if (!bordered) {
7442
+ return inner;
7443
+ }
7444
+ return /* @__PURE__ */ jsxRuntime.jsx(
7445
+ SketchBox,
7446
+ {
7447
+ ref,
7448
+ className: cn(className),
7449
+ style: { width: "100%", ...style },
7450
+ contentStyle: emptyContentStyle,
7451
+ fill: SKETCH_COLORS.secondaryFill,
7452
+ fillStyle: fillStyle ?? "hachure",
7453
+ roughness,
7454
+ seed,
7455
+ sketchColor,
7456
+ bowing,
7457
+ strokeWidth,
7458
+ animate,
7459
+ ...rest,
7460
+ children: /* @__PURE__ */ jsxRuntime.jsx(EmptyContext.Provider, { value: { ink }, children })
7461
+ }
7462
+ );
7463
+ });
7464
+ function EmptyMedia({
7465
+ className,
7466
+ style,
7467
+ children
7468
+ }) {
7469
+ return /* @__PURE__ */ jsxRuntime.jsx(
7470
+ "div",
7471
+ {
7472
+ className: cn(className),
7473
+ style: {
7474
+ display: "flex",
7475
+ alignItems: "center",
7476
+ justifyContent: "center",
7477
+ marginBottom: 4,
7478
+ ...style
7479
+ },
7480
+ children
7481
+ }
7482
+ );
7483
+ }
7484
+ function EmptyTitle({
7485
+ className,
7486
+ style,
7487
+ children
7488
+ }) {
7489
+ const ink = useEmptyInk();
7490
+ return /* @__PURE__ */ jsxRuntime.jsx(
7491
+ "h3",
7492
+ {
7493
+ className: cn(className),
7494
+ style: {
7495
+ margin: 0,
7496
+ fontFamily: doodleUiFontFamily,
7497
+ fontSize: 18,
7498
+ fontWeight: doodleUiFontWeight(700),
7499
+ color: ink,
7500
+ ...style
7501
+ },
7502
+ children
7503
+ }
7504
+ );
7505
+ }
7506
+ function EmptyDescription({
7507
+ className,
7508
+ style,
7509
+ children
7510
+ }) {
7511
+ const ink = useEmptyInk();
7512
+ return /* @__PURE__ */ jsxRuntime.jsx(
7513
+ "p",
7514
+ {
7515
+ className: cn(className),
7516
+ style: {
7517
+ margin: 0,
7518
+ maxWidth: 360,
7519
+ fontFamily: doodleUiFontFamily,
7520
+ fontSize: 14,
7521
+ lineHeight: 1.5,
7522
+ color: ink,
7523
+ opacity: 0.85,
7524
+ ...style
7525
+ },
7526
+ children
7527
+ }
7528
+ );
7529
+ }
7530
+ function EmptyAction({
7531
+ className,
7532
+ style,
7533
+ children
7534
+ }) {
7535
+ return /* @__PURE__ */ jsxRuntime.jsx(
7536
+ "div",
7537
+ {
7538
+ className: cn(className),
7539
+ style: {
7540
+ display: "flex",
7541
+ flexWrap: "wrap",
7542
+ gap: 8,
7543
+ justifyContent: "center",
7544
+ marginTop: 8,
7545
+ ...style
7546
+ },
7547
+ children
7548
+ }
7549
+ );
7550
+ }
7551
+ var FieldContext = react.createContext(null);
7552
+ function useField() {
7553
+ const ctx = react.useContext(FieldContext);
7554
+ if (!ctx) {
7555
+ throw new Error("Field parts must be used inside <Field>.");
7556
+ }
7557
+ return ctx;
7558
+ }
7559
+ function Field({
7560
+ className,
7561
+ style,
7562
+ children,
7563
+ invalid = false,
7564
+ error,
7565
+ ...rest
7566
+ }) {
7567
+ const id = react.useId();
7568
+ const descriptionId = `${id}-description`;
7569
+ const errorId = `${id}-error`;
7570
+ const value = react.useMemo(
7571
+ () => ({
7572
+ id,
7573
+ descriptionId,
7574
+ errorId,
7575
+ invalid: invalid || Boolean(error),
7576
+ error
7577
+ }),
7578
+ [id, descriptionId, errorId, invalid, error]
7579
+ );
7580
+ return /* @__PURE__ */ jsxRuntime.jsx(FieldContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(
7581
+ "div",
7582
+ {
7583
+ className: cn(className),
7584
+ style: {
7585
+ display: "flex",
7586
+ flexDirection: "column",
7587
+ gap: 6,
7588
+ width: "100%",
7589
+ ...style
7590
+ },
7591
+ ...rest,
7592
+ children
7593
+ }
7594
+ ) });
7595
+ }
7596
+ function FieldLabel({ className, style, ...rest }) {
7597
+ const { id } = useField();
7598
+ return /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: id, className, style, ...rest });
7599
+ }
7600
+ function FieldDescription({
7601
+ className,
7602
+ style,
7603
+ children,
7604
+ ...rest
7605
+ }) {
7606
+ const { descriptionId } = useField();
7607
+ return /* @__PURE__ */ jsxRuntime.jsx(
7608
+ "p",
7609
+ {
7610
+ id: descriptionId,
7611
+ className: cn(className),
7612
+ style: {
7613
+ margin: 0,
7614
+ fontFamily: doodleUiFontFamily,
7615
+ fontSize: 12,
7616
+ lineHeight: 1.45,
7617
+ color: SKETCH_COLORS.ink,
7618
+ opacity: 0.75,
7619
+ ...style
7620
+ },
7621
+ ...rest,
7622
+ children
7623
+ }
7624
+ );
7625
+ }
7626
+ function FieldError({
7627
+ className,
7628
+ style,
7629
+ children,
7630
+ ...rest
7631
+ }) {
7632
+ const { error, errorId } = useField();
7633
+ const message = children ?? error;
7634
+ if (!message) return null;
7635
+ return /* @__PURE__ */ jsxRuntime.jsx(
7636
+ "p",
7637
+ {
7638
+ id: errorId,
7639
+ role: "alert",
7640
+ className: cn(className),
7641
+ style: {
7642
+ margin: 0,
7643
+ fontFamily: doodleUiFontFamily,
7644
+ fontSize: 12,
7645
+ lineHeight: 1.45,
7646
+ color: SKETCH_COLORS.error,
7647
+ ...style
7648
+ },
7649
+ ...rest,
7650
+ children: message
7651
+ }
7652
+ );
7653
+ }
7654
+ function FieldControl({ children }) {
7655
+ const { id, descriptionId, errorId, invalid } = useField();
7656
+ const child = react.Children.only(children);
7657
+ if (!react.isValidElement(child)) {
7658
+ throw new Error("FieldControl expects a single React element child.");
7659
+ }
7660
+ const describedBy = [descriptionId, invalid ? errorId : null].filter(Boolean).join(" ");
7661
+ const props = child.props;
7662
+ return react.cloneElement(child, {
7663
+ id: props.id ?? id,
7664
+ "aria-describedby": props["aria-describedby"] ?? (describedBy.length > 0 ? describedBy : void 0),
7665
+ "aria-invalid": invalid ? true : props["aria-invalid"]
7666
+ });
7667
+ }
7668
+ var HEADING_SIZES = {
7669
+ 1: 32,
7670
+ 2: 26,
7671
+ 3: 22,
7672
+ 4: 18,
7673
+ 5: 16,
7674
+ 6: 14
7675
+ };
7676
+ var Heading = react.forwardRef(
7677
+ function Heading2({
7678
+ level = 2,
7679
+ accent = "none",
7680
+ className,
7681
+ style,
7682
+ children,
7683
+ roughness,
7684
+ seed,
7685
+ sketchColor,
7686
+ bowing,
7687
+ strokeWidth,
7688
+ animate,
7689
+ ...rest
7690
+ }, ref) {
7691
+ const Tag = `h${level}`;
7692
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
7693
+ const resolvedSeed = useResolvedSeed(seed);
7694
+ const shouldAnimate = useAnimate(animate);
7695
+ const accentRef = react.useRef(null);
7696
+ useDrawIn(accentRef, DRAW_IN_MARK_MS, shouldAnimate && accent !== "none");
7697
+ const fontSize = HEADING_SIZES[level];
7698
+ return /* @__PURE__ */ jsxRuntime.jsxs(
7699
+ Tag,
7700
+ {
7701
+ ref,
7702
+ className: cn(className),
7703
+ style: {
7704
+ position: "relative",
7705
+ margin: 0,
7706
+ fontFamily: doodleUiFontFamily,
7707
+ fontSize,
7708
+ fontWeight: doodleUiFontWeight(700),
7709
+ color: ink,
7710
+ lineHeight: 1.2,
7711
+ ...style
7712
+ },
7713
+ ...rest,
7714
+ children: [
7715
+ accent === "highlight" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { position: "relative", display: "inline" }, children: [
7716
+ /* @__PURE__ */ jsxRuntime.jsx(
7717
+ "span",
7718
+ {
7719
+ ref: accentRef,
7720
+ "aria-hidden": true,
7721
+ style: {
7722
+ position: "absolute",
7723
+ left: -4,
7724
+ right: -4,
7725
+ bottom: 2,
7726
+ height: "0.45em",
7727
+ zIndex: 0
7728
+ },
7729
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7730
+ RoughSvg,
7731
+ {
7732
+ shape: "rectangle",
7733
+ roughness,
7734
+ seed: resolvedSeed,
7735
+ sketchColor: SKETCH_COLORS.accent,
7736
+ fill: SKETCH_COLORS.accentFill,
7737
+ fillStyle: "solid",
7738
+ bowing,
7739
+ strokeWidth: strokeWidth ?? 1.2
7740
+ }
7741
+ )
7742
+ }
7743
+ ),
7744
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { position: "relative", zIndex: 1 }, children })
7745
+ ] }) : children,
7746
+ accent === "underline" ? /* @__PURE__ */ jsxRuntime.jsx(
7747
+ "span",
7748
+ {
7749
+ ref: accentRef,
7750
+ "aria-hidden": true,
7751
+ style: {
7752
+ display: "block",
7753
+ position: "relative",
7754
+ height: 6,
7755
+ marginTop: 4,
7756
+ maxWidth: "100%"
7757
+ },
7758
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7759
+ RoughSvg,
7760
+ {
7761
+ shape: "path",
7762
+ path: "M 2 4 Q 40 1 80 5 T 160 3",
7763
+ roughness,
7764
+ seed: resolvedSeed,
7765
+ sketchColor: ink,
7766
+ bowing,
7767
+ strokeWidth: strokeWidth ?? 1.5
7768
+ }
7769
+ )
7770
+ }
7771
+ ) : null
7772
+ ]
7773
+ }
7774
+ );
7775
+ }
7776
+ );
7777
+ var Text = react.forwardRef(function Text2({ variant = "body", className, style, children, ...rest }, ref) {
7778
+ const sizes = { body: 14, lead: 17, muted: 13 };
7779
+ const opacity = variant === "muted" ? 0.75 : 1;
7780
+ return /* @__PURE__ */ jsxRuntime.jsx(
7781
+ "p",
7782
+ {
7783
+ ref,
7784
+ className: cn(className),
7785
+ style: {
7786
+ margin: 0,
7787
+ fontFamily: doodleUiFontFamily,
7788
+ fontSize: sizes[variant],
7789
+ fontWeight: doodleUiFontWeight(variant === "lead" ? 500 : 400),
7790
+ lineHeight: 1.55,
7791
+ color: SKETCH_COLORS.ink,
7792
+ opacity,
7793
+ ...style
7794
+ },
7795
+ ...rest,
7796
+ children
7797
+ }
7798
+ );
7799
+ });
7800
+ var Paragraph = Text;
7801
+ var Blockquote = react.forwardRef(
7802
+ function Blockquote2({
7803
+ className,
7804
+ style,
7805
+ children,
7806
+ roughness,
7807
+ seed,
7808
+ sketchColor,
7809
+ bowing,
7810
+ strokeWidth,
7811
+ animate,
7812
+ ...rest
7813
+ }, ref) {
7814
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
7815
+ const resolvedSeed = useResolvedSeed(seed);
7816
+ const shouldAnimate = useAnimate(animate);
7817
+ const ruleRef = react.useRef(null);
7818
+ useDrawIn(ruleRef, DRAW_IN_MARK_MS, shouldAnimate);
7819
+ return /* @__PURE__ */ jsxRuntime.jsxs(
7820
+ "blockquote",
7821
+ {
7822
+ ref,
7823
+ className: cn(className),
7824
+ style: {
7825
+ display: "flex",
7826
+ gap: 12,
7827
+ margin: 0,
7828
+ padding: "8px 0 8px 4px",
7829
+ fontFamily: doodleUiFontFamily,
7830
+ fontSize: 15,
7831
+ fontStyle: "italic",
7832
+ lineHeight: 1.5,
7833
+ color: ink,
7834
+ ...style
7835
+ },
7836
+ ...rest,
7837
+ children: [
7838
+ /* @__PURE__ */ jsxRuntime.jsx(
7839
+ "span",
7840
+ {
7841
+ ref: ruleRef,
7842
+ "aria-hidden": true,
7843
+ style: { position: "relative", width: 6, flexShrink: 0, minHeight: 40 },
7844
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7845
+ RoughSvg,
7846
+ {
7847
+ shape: "line-vertical",
7848
+ roughness,
7849
+ seed: resolvedSeed,
7850
+ sketchColor: ink,
7851
+ bowing,
7852
+ strokeWidth: strokeWidth ?? 2
7853
+ }
7854
+ )
7855
+ }
7856
+ ),
7857
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children })
7858
+ ]
7859
+ }
7860
+ );
7861
+ }
7862
+ );
7863
+ var InlineCode = react.forwardRef(
7864
+ function InlineCode2({
7865
+ className,
7866
+ style,
7867
+ children,
7868
+ roughness,
7869
+ seed,
7870
+ sketchColor,
7871
+ bowing,
7872
+ fillStyle,
7873
+ strokeWidth,
7874
+ animate,
7875
+ ...rest
7876
+ }, ref) {
7877
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
7878
+ return /* @__PURE__ */ jsxRuntime.jsx(
7879
+ SketchBox,
7880
+ {
7881
+ className: cn(className),
7882
+ style: { display: "inline-flex", verticalAlign: "baseline", ...style },
7883
+ contentStyle: {
7884
+ padding: "1px 6px",
7885
+ fontSize: "0.9em",
7886
+ fontFamily: "ui-monospace, monospace"
7887
+ },
7888
+ fill: SKETCH_COLORS.paper,
7889
+ fillStyle: fillStyle ?? "hachure",
7890
+ roughness,
7891
+ seed,
7892
+ sketchColor: ink,
7893
+ bowing,
7894
+ strokeWidth: strokeWidth ?? 1.2,
7895
+ animate,
7896
+ ...rest,
7897
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7898
+ "code",
7899
+ {
7900
+ ref,
7901
+ style: {
7902
+ border: "none",
7903
+ background: "transparent",
7904
+ padding: 0,
7905
+ font: "inherit",
7906
+ color: ink
7907
+ },
7908
+ children
7909
+ }
7910
+ )
7911
+ }
7912
+ );
7913
+ }
7914
+ );
7915
+ var Highlight = react.forwardRef(
7916
+ function Highlight2({
7917
+ className,
7918
+ style,
7919
+ children,
7920
+ roughness,
7921
+ seed,
7922
+ sketchColor,
7923
+ bowing,
7924
+ strokeWidth,
7925
+ animate,
7926
+ ...rest
7927
+ }, ref) {
7928
+ const resolvedSeed = useResolvedSeed(seed);
7929
+ const shouldAnimate = useAnimate(animate);
7930
+ const markRef = react.useRef(null);
7931
+ useDrawIn(markRef, DRAW_IN_MARK_MS, shouldAnimate);
7932
+ return /* @__PURE__ */ jsxRuntime.jsxs(
7933
+ "span",
7934
+ {
7935
+ ref,
7936
+ className: cn(className),
7937
+ style: { position: "relative", display: "inline", ...style },
7938
+ ...rest,
7939
+ children: [
7940
+ /* @__PURE__ */ jsxRuntime.jsx(
7941
+ "span",
7942
+ {
7943
+ ref: markRef,
7944
+ "aria-hidden": true,
7945
+ style: {
7946
+ position: "absolute",
7947
+ left: -2,
7948
+ right: -2,
7949
+ bottom: 0,
7950
+ top: "35%",
7951
+ zIndex: 0
7952
+ },
7953
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7954
+ RoughSvg,
7955
+ {
7956
+ shape: "rectangle",
7957
+ roughness,
7958
+ seed: resolvedSeed,
7959
+ sketchColor: sketchColor ?? SKETCH_COLORS.accent,
7960
+ fill: SKETCH_COLORS.accentFill,
7961
+ fillStyle: "solid",
7962
+ bowing,
7963
+ strokeWidth: strokeWidth ?? 1
7964
+ }
7965
+ )
7966
+ }
7967
+ ),
7968
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { position: "relative", zIndex: 1 }, children })
7969
+ ]
7970
+ }
7971
+ );
7972
+ }
7973
+ );
7974
+ var SIDEBAR_WIDTH = 240;
7975
+ var SIDEBAR_WIDTH_COLLAPSED = 56;
7976
+ var SidebarContext = react.createContext(null);
7977
+ function useSidebar() {
7978
+ const ctx = react.useContext(SidebarContext);
7979
+ if (!ctx) {
7980
+ throw new Error("Sidebar parts must be used inside <SidebarProvider>.");
7981
+ }
7982
+ return ctx;
7983
+ }
7984
+ function SidebarProvider({
7985
+ defaultOpen = true,
7986
+ open: openProp,
7987
+ onOpenChange,
7988
+ defaultCollapsed = false,
7989
+ children,
7990
+ roughness,
7991
+ seed,
7992
+ sketchColor,
7993
+ bowing,
7994
+ strokeWidth
7995
+ }) {
7996
+ const [uncontrolledOpen, setUncontrolledOpen] = react.useState(defaultOpen);
7997
+ const [collapsed, setCollapsed] = react.useState(defaultCollapsed);
7998
+ const open = openProp ?? uncontrolledOpen;
7999
+ const setOpen = react.useCallback(
8000
+ (next) => {
8001
+ onOpenChange?.(next);
8002
+ if (openProp === void 0) {
8003
+ setUncontrolledOpen(next);
8004
+ }
8005
+ },
8006
+ [onOpenChange, openProp]
8007
+ );
8008
+ const toggleCollapsed = react.useCallback(() => {
8009
+ setCollapsed((c) => !c);
8010
+ }, []);
8011
+ const ink = sketchColor ?? SKETCH_COLORS.ink;
8012
+ const value = react.useMemo(
8013
+ () => ({
8014
+ open,
8015
+ setOpen,
8016
+ collapsed,
8017
+ toggleCollapsed,
8018
+ ink,
8019
+ sketch: { roughness, seed, sketchColor, bowing, strokeWidth }
8020
+ }),
8021
+ [
8022
+ open,
8023
+ setOpen,
8024
+ collapsed,
8025
+ toggleCollapsed,
8026
+ ink,
8027
+ roughness,
8028
+ seed,
8029
+ sketchColor,
8030
+ bowing,
8031
+ strokeWidth
8032
+ ]
8033
+ );
8034
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value, children });
8035
+ }
8036
+ var Sidebar = react.forwardRef(function Sidebar2({ className, style, children, side = "left", ...rest }, ref) {
8037
+ const { open, collapsed, sketch } = useSidebar();
8038
+ const resolvedSeed = useResolvedSeed(sketch.seed);
8039
+ const width = collapsed ? SIDEBAR_WIDTH_COLLAPSED : SIDEBAR_WIDTH;
8040
+ if (!open) {
8041
+ return null;
8042
+ }
8043
+ return /* @__PURE__ */ jsxRuntime.jsxs(
8044
+ "aside",
8045
+ {
8046
+ ref,
8047
+ className: cn(className),
8048
+ style: {
8049
+ position: "relative",
8050
+ flexShrink: 0,
8051
+ width,
8052
+ minHeight: 200,
8053
+ transition: "width 200ms ease",
8054
+ display: "flex",
8055
+ flexDirection: "column",
8056
+ background: SKETCH_COLORS.paper,
8057
+ ...style
8058
+ },
8059
+ "data-side": side,
8060
+ ...rest,
8061
+ children: [
8062
+ children,
8063
+ /* @__PURE__ */ jsxRuntime.jsx(
8064
+ "span",
8065
+ {
8066
+ "aria-hidden": true,
8067
+ style: {
8068
+ position: "absolute",
8069
+ top: 0,
8070
+ bottom: 0,
8071
+ width: 4,
8072
+ ...side === "left" ? { right: 0 } : { left: 0 },
8073
+ pointerEvents: "none"
8074
+ },
8075
+ children: /* @__PURE__ */ jsxRuntime.jsx(
8076
+ RoughSvg,
8077
+ {
8078
+ shape: "line-vertical",
8079
+ roughness: sketch.roughness,
8080
+ seed: resolvedSeed,
8081
+ sketchColor: sketch.sketchColor ?? SKETCH_COLORS.ink,
8082
+ bowing: sketch.bowing,
8083
+ strokeWidth: sketch.strokeWidth ?? 1.5
8084
+ }
8085
+ )
8086
+ }
8087
+ )
8088
+ ]
8089
+ }
8090
+ );
8091
+ });
8092
+ function SidebarHeader({
8093
+ className,
8094
+ style,
8095
+ children,
8096
+ ...rest
8097
+ }) {
8098
+ const { collapsed } = useSidebar();
8099
+ return /* @__PURE__ */ jsxRuntime.jsx(
8100
+ "div",
8101
+ {
8102
+ className: cn(className),
8103
+ style: {
8104
+ padding: collapsed ? "12px 8px" : "16px 14px",
8105
+ borderBottom: `1px solid ${SKETCH_COLORS.ink}22`,
8106
+ ...style
8107
+ },
8108
+ ...rest,
8109
+ children
8110
+ }
8111
+ );
8112
+ }
8113
+ function SidebarContent({
8114
+ className,
8115
+ style,
8116
+ children,
8117
+ ...rest
8118
+ }) {
8119
+ return /* @__PURE__ */ jsxRuntime.jsx(
8120
+ "div",
8121
+ {
8122
+ className: cn(className),
8123
+ style: {
8124
+ flex: 1,
8125
+ overflow: "auto",
8126
+ padding: "8px 6px",
8127
+ ...style
8128
+ },
8129
+ ...rest,
8130
+ children
8131
+ }
8132
+ );
8133
+ }
8134
+ function SidebarFooter({
8135
+ className,
8136
+ style,
8137
+ children,
8138
+ ...rest
8139
+ }) {
8140
+ return /* @__PURE__ */ jsxRuntime.jsx(
8141
+ "div",
8142
+ {
8143
+ className: cn(className),
8144
+ style: {
8145
+ padding: "12px 10px",
8146
+ borderTop: `1px solid ${SKETCH_COLORS.ink}22`,
8147
+ ...style
8148
+ },
8149
+ ...rest,
8150
+ children
8151
+ }
8152
+ );
8153
+ }
8154
+ function SidebarGroup({
8155
+ className,
8156
+ style,
8157
+ children,
8158
+ title,
8159
+ ...rest
8160
+ }) {
8161
+ const { collapsed, ink } = useSidebar();
8162
+ return /* @__PURE__ */ jsxRuntime.jsxs(
8163
+ "div",
8164
+ {
8165
+ className: cn(className),
8166
+ style: { marginBottom: 12, ...style },
8167
+ ...rest,
8168
+ children: [
8169
+ title && !collapsed ? /* @__PURE__ */ jsxRuntime.jsx(
8170
+ "div",
8171
+ {
8172
+ style: {
8173
+ padding: "4px 10px 8px",
8174
+ fontSize: 11,
8175
+ fontWeight: doodleUiFontWeight(600),
8176
+ fontFamily: doodleUiFontFamily,
8177
+ color: ink,
8178
+ opacity: 0.65,
8179
+ textTransform: "uppercase",
8180
+ letterSpacing: "0.06em"
8181
+ },
8182
+ children: title
8183
+ }
8184
+ ) : null,
8185
+ children
8186
+ ]
8187
+ }
8188
+ );
8189
+ }
8190
+ var SidebarItem = react.forwardRef(
8191
+ function SidebarItem2({ className, style, children, active, ...rest }, ref) {
8192
+ const { collapsed, ink, sketch } = useSidebar();
8193
+ return /* @__PURE__ */ jsxRuntime.jsx(
8194
+ Button,
8195
+ {
8196
+ ref,
8197
+ type: "button",
8198
+ variant: active ? "secondary" : "ghost",
8199
+ className: cn(className),
8200
+ style: {
8201
+ width: "100%",
8202
+ justifyContent: collapsed ? "center" : "flex-start",
8203
+ marginBottom: 4,
8204
+ ...style
8205
+ },
8206
+ roughness: sketch.roughness,
8207
+ seed: sketch.seed,
8208
+ sketchColor: ink,
8209
+ bowing: sketch.bowing,
8210
+ strokeWidth: sketch.strokeWidth,
8211
+ ...rest,
8212
+ children
8213
+ }
8214
+ );
8215
+ }
8216
+ );
8217
+ function SidebarTrigger({
8218
+ className,
8219
+ style,
8220
+ children,
8221
+ ...rest
8222
+ }) {
8223
+ const { toggleCollapsed, sketch, ink } = useSidebar();
8224
+ return /* @__PURE__ */ jsxRuntime.jsx(
8225
+ Button,
8226
+ {
8227
+ type: "button",
8228
+ variant: "outline",
8229
+ size: "sm",
8230
+ className: cn(className),
8231
+ style,
8232
+ onClick: toggleCollapsed,
8233
+ roughness: sketch.roughness,
8234
+ seed: sketch.seed,
8235
+ sketchColor: ink,
8236
+ bowing: sketch.bowing,
8237
+ strokeWidth: sketch.strokeWidth,
8238
+ ...rest,
8239
+ children: children ?? "Toggle"
8240
+ }
8241
+ );
8242
+ }
8243
+ function SidebarLayout({
8244
+ className,
8245
+ style,
8246
+ children,
8247
+ ...rest
8248
+ }) {
8249
+ return /* @__PURE__ */ jsxRuntime.jsx(
8250
+ "div",
8251
+ {
8252
+ className: cn(className),
8253
+ style: {
8254
+ display: "flex",
8255
+ width: "100%",
8256
+ minHeight: 280,
8257
+ alignItems: "stretch",
8258
+ ...style
8259
+ },
8260
+ ...rest,
8261
+ children
8262
+ }
8263
+ );
8264
+ }
8265
+ function SidebarInset({
8266
+ className,
8267
+ style,
8268
+ children,
8269
+ ...rest
8270
+ }) {
8271
+ return /* @__PURE__ */ jsxRuntime.jsx(
8272
+ "div",
8273
+ {
8274
+ className: cn(className),
8275
+ style: {
8276
+ flex: 1,
8277
+ padding: 16,
8278
+ minWidth: 0,
8279
+ ...style
8280
+ },
8281
+ ...rest,
8282
+ children
8283
+ }
8284
+ );
8285
+ }
8286
+ var CarouselContext = react.createContext(null);
8287
+ function useCarousel() {
8288
+ const ctx = react.useContext(CarouselContext);
8289
+ if (!ctx) {
8290
+ throw new Error("Carousel parts must be used inside <Carousel>.");
8291
+ }
8292
+ return ctx;
8293
+ }
8294
+ function Carousel({
8295
+ opts,
8296
+ plugins,
8297
+ orientation = "horizontal",
8298
+ bordered = false,
8299
+ className,
8300
+ style,
8301
+ children,
8302
+ setApi,
8303
+ roughness,
8304
+ seed,
8305
+ sketchColor,
8306
+ bowing,
8307
+ strokeWidth,
8308
+ fillStyle,
8309
+ animate
8310
+ }) {
8311
+ const [emblaRef, api] = useEmblaCarousel__default.default(
8312
+ {
8313
+ ...opts,
8314
+ axis: orientation === "horizontal" ? "x" : "y"
8315
+ },
8316
+ plugins
8317
+ );
8318
+ const [canScrollPrev, setCanScrollPrev] = react.useState(false);
8319
+ const [canScrollNext, setCanScrollNext] = react.useState(false);
8320
+ const scrollPrev = react.useCallback(() => api?.scrollPrev(), [api]);
8321
+ const scrollNext = react.useCallback(() => api?.scrollNext(), [api]);
8322
+ const onSelect = react.useCallback(() => {
8323
+ if (!api) return;
8324
+ setCanScrollPrev(api.canScrollPrev());
8325
+ setCanScrollNext(api.canScrollNext());
8326
+ }, [api]);
8327
+ react.useEffect(() => {
8328
+ if (!api) return;
8329
+ setApi?.(api);
8330
+ onSelect();
8331
+ api.on("reInit", onSelect);
8332
+ api.on("select", onSelect);
8333
+ return () => {
8334
+ api.off("reInit", onSelect);
8335
+ api.off("select", onSelect);
8336
+ };
8337
+ }, [api, onSelect, setApi]);
8338
+ const handleKeyDown = react.useCallback(
8339
+ (event) => {
8340
+ if (orientation === "horizontal") {
8341
+ if (event.key === "ArrowLeft") {
8342
+ event.preventDefault();
8343
+ scrollPrev();
8344
+ } else if (event.key === "ArrowRight") {
8345
+ event.preventDefault();
8346
+ scrollNext();
8347
+ }
8348
+ } else if (event.key === "ArrowUp") {
8349
+ event.preventDefault();
8350
+ scrollPrev();
8351
+ } else if (event.key === "ArrowDown") {
8352
+ event.preventDefault();
8353
+ scrollNext();
8354
+ }
8355
+ },
8356
+ [orientation, scrollPrev, scrollNext]
8357
+ );
8358
+ const value = {
8359
+ emblaRef,
8360
+ api,
8361
+ scrollPrev,
8362
+ scrollNext,
8363
+ canScrollPrev,
8364
+ canScrollNext,
8365
+ orientation,
8366
+ sketch: {
8367
+ roughness,
8368
+ seed,
8369
+ sketchColor,
8370
+ bowing,
8371
+ strokeWidth,
8372
+ fillStyle,
8373
+ animate
8374
+ },
8375
+ bordered
8376
+ };
8377
+ return /* @__PURE__ */ jsxRuntime.jsx(CarouselContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(
8378
+ "div",
8379
+ {
8380
+ className: cn(className),
8381
+ role: "region",
8382
+ "aria-roledescription": "carousel",
8383
+ tabIndex: 0,
8384
+ onKeyDown: handleKeyDown,
8385
+ style: {
8386
+ position: "relative",
8387
+ width: "100%",
8388
+ ...style
8389
+ },
8390
+ children
8391
+ }
8392
+ ) });
8393
+ }
8394
+ var CarouselContent = react.forwardRef(
8395
+ function CarouselContent2({ className, style, children, ...rest }, ref) {
8396
+ const { emblaRef, orientation, bordered, sketch } = useCarousel();
8397
+ const viewport = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: emblaRef, style: { overflow: "hidden" }, children: /* @__PURE__ */ jsxRuntime.jsx(
8398
+ "div",
8399
+ {
8400
+ ref,
8401
+ className: cn(className),
8402
+ style: {
8403
+ display: "flex",
8404
+ flexDirection: orientation === "vertical" ? "column" : "row",
8405
+ marginLeft: orientation === "horizontal" ? -16 : 0,
8406
+ marginTop: orientation === "vertical" ? -16 : 0,
8407
+ ...style
8408
+ },
8409
+ ...rest,
8410
+ children
8411
+ }
8412
+ ) });
8413
+ if (!bordered) {
8414
+ return viewport;
8415
+ }
8416
+ return /* @__PURE__ */ jsxRuntime.jsx(
8417
+ SketchBox,
8418
+ {
8419
+ fill: SKETCH_COLORS.paper,
8420
+ fillStyle: sketch.fillStyle ?? "hachure",
8421
+ roughness: sketch.roughness,
8422
+ seed: sketch.seed,
8423
+ sketchColor: sketch.sketchColor,
8424
+ bowing: sketch.bowing,
8425
+ strokeWidth: sketch.strokeWidth,
8426
+ animate: sketch.animate,
8427
+ contentStyle: { padding: 8 },
8428
+ children: viewport
8429
+ }
8430
+ );
8431
+ }
8432
+ );
8433
+ var CarouselItem = react.forwardRef(
8434
+ function CarouselItem2({ className, style, children, ...rest }, ref) {
8435
+ const { orientation } = useCarousel();
8436
+ const gap = 16;
8437
+ return /* @__PURE__ */ jsxRuntime.jsx(
8438
+ "div",
8439
+ {
8440
+ ref,
8441
+ className: cn(className),
8442
+ role: "group",
8443
+ "aria-roledescription": "slide",
8444
+ style: {
8445
+ flex: "0 0 100%",
8446
+ minWidth: 0,
8447
+ paddingLeft: orientation === "horizontal" ? gap : 0,
8448
+ paddingTop: orientation === "vertical" ? gap : 0,
8449
+ ...style
8450
+ },
8451
+ ...rest,
8452
+ children
8453
+ }
8454
+ );
8455
+ }
8456
+ );
8457
+ var ARROW_PATH_PREV = "M 14 4 L 6 12 L 14 20";
8458
+ var ARROW_PATH_NEXT = "M 6 4 L 14 12 L 6 20";
8459
+ var ARROW_SIZE = 40;
8460
+ var CarouselArrow = react.forwardRef(function CarouselArrow2({ className, style, direction, ...rest }, ref) {
8461
+ const {
8462
+ scrollPrev,
8463
+ scrollNext,
8464
+ canScrollPrev,
8465
+ canScrollNext,
8466
+ sketch,
8467
+ orientation
8468
+ } = useCarousel();
8469
+ const resolvedSeed = useResolvedSeed(sketch.seed);
8470
+ const ink = sketch.sketchColor ?? SKETCH_COLORS.ink;
8471
+ const isPrev = direction === "prev";
8472
+ const disabled = isPrev ? !canScrollPrev : !canScrollNext;
8473
+ const shouldAnimate = useAnimate(sketch.animate);
8474
+ const rootRef = react.useRef(null);
8475
+ const sketchSeed = deriveSeed(resolvedSeed, direction);
8476
+ useDrawIn(rootRef, DRAW_IN_DURATION_MS, shouldAnimate, sketchSeed);
8477
+ const horizontal = orientation === "horizontal";
8478
+ return /* @__PURE__ */ jsxRuntime.jsxs(
8479
+ "button",
8480
+ {
8481
+ ref: (node) => {
8482
+ rootRef.current = node;
8483
+ assignRef(ref, node);
8484
+ },
8485
+ type: "button",
8486
+ disabled,
8487
+ className: cn(className),
8488
+ style: {
8489
+ position: "absolute",
8490
+ zIndex: 2,
8491
+ width: ARROW_SIZE,
8492
+ height: ARROW_SIZE,
8493
+ padding: 0,
8494
+ border: "none",
8495
+ background: "transparent",
8496
+ cursor: disabled ? "not-allowed" : "pointer",
8497
+ opacity: disabled ? 0.5 : 1,
8498
+ ...horizontal ? {
8499
+ top: "50%",
8500
+ transform: "translateY(-50%)",
8501
+ left: isPrev ? -52 : void 0,
8502
+ right: isPrev ? void 0 : -52
8503
+ } : {
8504
+ left: "50%",
8505
+ transform: "translateX(-50%) rotate(90deg)",
8506
+ top: isPrev ? -52 : void 0,
8507
+ bottom: isPrev ? void 0 : -52
8508
+ },
8509
+ ...style
8510
+ },
8511
+ onClick: isPrev ? scrollPrev : scrollNext,
8512
+ "aria-label": isPrev ? "Previous slide" : "Next slide",
8513
+ ...rest,
8514
+ children: [
8515
+ /* @__PURE__ */ jsxRuntime.jsx(
8516
+ RoughSvg,
8517
+ {
8518
+ shape: "ellipse",
8519
+ roughness: sketch.roughness,
8520
+ seed: sketchSeed,
8521
+ sketchColor: ink,
8522
+ bowing: sketch.bowing,
8523
+ fill: SKETCH_COLORS.paper,
8524
+ fillStyle: "solid",
8525
+ strokeWidth: sketch.strokeWidth ?? 1.5,
8526
+ inset: 1.5
8527
+ }
8528
+ ),
8529
+ /* @__PURE__ */ jsxRuntime.jsx(
8530
+ "span",
8531
+ {
8532
+ style: {
8533
+ position: "relative",
8534
+ zIndex: 1,
8535
+ width: 18,
8536
+ height: 22,
8537
+ display: "block",
8538
+ margin: "0 auto"
8539
+ },
8540
+ children: /* @__PURE__ */ jsxRuntime.jsx(
8541
+ RoughSvg,
8542
+ {
8543
+ shape: "path",
8544
+ path: isPrev ? ARROW_PATH_PREV : ARROW_PATH_NEXT,
8545
+ roughness: sketch.roughness,
8546
+ seed: deriveSeed(resolvedSeed, `${direction}-arrow`),
8547
+ sketchColor: ink,
8548
+ strokeWidth: sketch.strokeWidth ?? 1.6
8549
+ }
8550
+ )
8551
+ }
8552
+ )
8553
+ ]
8554
+ }
8555
+ );
8556
+ });
8557
+ var CarouselPrevious = react.forwardRef(
8558
+ function CarouselPrevious2(props, ref) {
8559
+ return /* @__PURE__ */ jsxRuntime.jsx(CarouselArrow, { ref, direction: "prev", ...props });
8560
+ }
8561
+ );
8562
+ var CarouselNext = react.forwardRef(
8563
+ function CarouselNext2(props, ref) {
8564
+ return /* @__PURE__ */ jsxRuntime.jsx(CarouselArrow, { ref, direction: "next", ...props });
8565
+ }
8566
+ );
7234
8567
 
7235
8568
  exports.Accordion = Accordion;
7236
8569
  exports.AccordionContent = AccordionContent;
@@ -7248,12 +8581,19 @@ exports.AlertDialogOverlay = AlertDialogOverlay;
7248
8581
  exports.AlertDialogPortal = AlertDialogPortal;
7249
8582
  exports.AlertDialogTitle = AlertDialogTitle;
7250
8583
  exports.AlertDialogTrigger = AlertDialogTrigger;
8584
+ exports.AspectRatio = AspectRatio;
7251
8585
  exports.Avatar = Avatar;
7252
8586
  exports.Badge = Badge;
8587
+ exports.Blockquote = Blockquote;
7253
8588
  exports.Breadcrumb = Breadcrumb;
7254
8589
  exports.BreadcrumbItem = BreadcrumbItem;
7255
8590
  exports.Button = Button;
7256
8591
  exports.Card = Card;
8592
+ exports.Carousel = Carousel;
8593
+ exports.CarouselContent = CarouselContent;
8594
+ exports.CarouselItem = CarouselItem;
8595
+ exports.CarouselNext = CarouselNext;
8596
+ exports.CarouselPrevious = CarouselPrevious;
7257
8597
  exports.Checkbox = Checkbox;
7258
8598
  exports.Collapsible = Collapsible;
7259
8599
  exports.CollapsibleContent = CollapsibleContent;
@@ -7318,10 +8658,23 @@ exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
7318
8658
  exports.DropdownMenuSeparator = DropdownMenuSeparator;
7319
8659
  exports.DropdownMenuSub = DropdownMenuSub;
7320
8660
  exports.DropdownMenuTrigger = DropdownMenuTrigger;
8661
+ exports.Empty = Empty;
8662
+ exports.EmptyAction = EmptyAction;
8663
+ exports.EmptyDescription = EmptyDescription;
8664
+ exports.EmptyMedia = EmptyMedia;
8665
+ exports.EmptyTitle = EmptyTitle;
8666
+ exports.Field = Field;
8667
+ exports.FieldControl = FieldControl;
8668
+ exports.FieldDescription = FieldDescription;
8669
+ exports.FieldError = FieldError;
8670
+ exports.FieldLabel = FieldLabel;
8671
+ exports.Heading = Heading;
8672
+ exports.Highlight = Highlight;
7321
8673
  exports.HoverCard = HoverCard;
7322
8674
  exports.HoverCardArrow = HoverCardArrow;
7323
8675
  exports.HoverCardContent = HoverCardContent;
7324
8676
  exports.HoverCardTrigger = HoverCardTrigger;
8677
+ exports.InlineCode = InlineCode;
7325
8678
  exports.Input = Input;
7326
8679
  exports.InputGroup = InputGroup;
7327
8680
  exports.InputGroupAddon = InputGroupAddon;
@@ -7353,6 +8706,7 @@ exports.ModalDescription = ModalDescription;
7353
8706
  exports.ModalRoot = ModalRoot;
7354
8707
  exports.ModalTitle = ModalTitle;
7355
8708
  exports.ModalTrigger = ModalTrigger;
8709
+ exports.NativeSelect = NativeSelect;
7356
8710
  exports.NavigationMenu = NavigationMenu;
7357
8711
  exports.NavigationMenuContent = NavigationMenuContent;
7358
8712
  exports.NavigationMenuIndicator = NavigationMenuIndicator;
@@ -7363,6 +8717,7 @@ exports.NavigationMenuList = NavigationMenuList;
7363
8717
  exports.NavigationMenuTrigger = NavigationMenuTrigger;
7364
8718
  exports.NavigationMenuViewport = NavigationMenuViewport;
7365
8719
  exports.Pagination = Pagination;
8720
+ exports.Paragraph = Paragraph;
7366
8721
  exports.Popover = Popover;
7367
8722
  exports.PopoverAnchor = PopoverAnchor;
7368
8723
  exports.PopoverArrow = PopoverArrow;
@@ -7398,6 +8753,16 @@ exports.SheetFooter = SheetFooter;
7398
8753
  exports.SheetHeader = SheetHeader;
7399
8754
  exports.SheetTitle = SheetTitle;
7400
8755
  exports.SheetTrigger = SheetTrigger;
8756
+ exports.Sidebar = Sidebar;
8757
+ exports.SidebarContent = SidebarContent;
8758
+ exports.SidebarFooter = SidebarFooter;
8759
+ exports.SidebarGroup = SidebarGroup;
8760
+ exports.SidebarHeader = SidebarHeader;
8761
+ exports.SidebarInset = SidebarInset;
8762
+ exports.SidebarItem = SidebarItem;
8763
+ exports.SidebarLayout = SidebarLayout;
8764
+ exports.SidebarProvider = SidebarProvider;
8765
+ exports.SidebarTrigger = SidebarTrigger;
7401
8766
  exports.Skeleton = Skeleton;
7402
8767
  exports.SketchBox = SketchBox;
7403
8768
  exports.SketchSeedProvider = SketchSeedProvider;
@@ -7416,6 +8781,7 @@ exports.TableHead = TableHead;
7416
8781
  exports.TableHeaderCell = TableHeaderCell;
7417
8782
  exports.TableRow = TableRow;
7418
8783
  exports.Tabs = Tabs;
8784
+ exports.Text = Text;
7419
8785
  exports.Textarea = Textarea;
7420
8786
  exports.Toast = Toast;
7421
8787
  exports.ToastAction = ToastAction;
@@ -7433,9 +8799,11 @@ exports.TooltipProvider = TooltipProvider;
7433
8799
  exports.deriveSeed = deriveSeed;
7434
8800
  exports.toRoughOptions = toRoughOptions;
7435
8801
  exports.useAnimate = useAnimate;
8802
+ exports.useCarousel = useCarousel;
7436
8803
  exports.useDoodleUI = useDoodleUI;
7437
8804
  exports.useDrawIn = useDrawIn;
7438
8805
  exports.useResolvedSeed = useResolvedSeed;
8806
+ exports.useSidebar = useSidebar;
7439
8807
  exports.useSketchSeed = useSketchSeed;
7440
8808
  //# sourceMappingURL=index.cjs.map
7441
8809
  //# sourceMappingURL=index.cjs.map