@ai-matrx/design-system 0.18.21 → 0.19.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/content-transfer/alchemy.svg +1 -1
  3. package/dist/content-transfer/copy-transform.svg +1 -0
  4. package/dist/content-transfer/icon.cjs +8 -2
  5. package/dist/content-transfer/icon.cjs.map +1 -1
  6. package/dist/content-transfer/icon.d.cts +5 -3
  7. package/dist/content-transfer/icon.d.ts +5 -3
  8. package/dist/content-transfer/icon.js +8 -2
  9. package/dist/content-transfer/icon.js.map +1 -1
  10. package/dist/content-transfer/portal.svg +1 -0
  11. package/dist/content-transfer.cjs +923 -304
  12. package/dist/content-transfer.cjs.map +1 -1
  13. package/dist/content-transfer.css +17 -74
  14. package/dist/content-transfer.d.cts +14 -3
  15. package/dist/content-transfer.d.ts +14 -3
  16. package/dist/content-transfer.js +929 -305
  17. package/dist/content-transfer.js.map +1 -1
  18. package/dist/data-table/copy-helpers.d.cts +1 -1
  19. package/dist/data-table/copy-helpers.d.ts +1 -1
  20. package/dist/data-table/data-row-inspector.cjs +990 -397
  21. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  22. package/dist/data-table/data-row-inspector.js +988 -390
  23. package/dist/data-table/data-row-inspector.js.map +1 -1
  24. package/dist/data-table/data-row-window.cjs +989 -396
  25. package/dist/data-table/data-row-window.cjs.map +1 -1
  26. package/dist/data-table/data-row-window.js +987 -389
  27. package/dist/data-table/data-row-window.js.map +1 -1
  28. package/dist/data-table/filter-engine.d.cts +1 -1
  29. package/dist/data-table/filter-engine.d.ts +1 -1
  30. package/dist/data-table/host.cjs.map +1 -1
  31. package/dist/data-table/host.d.cts +3 -2
  32. package/dist/data-table/host.d.ts +3 -2
  33. package/dist/data-table/host.js.map +1 -1
  34. package/dist/data-table/index.cjs +2733 -1441
  35. package/dist/data-table/index.cjs.map +1 -1
  36. package/dist/data-table/index.d.cts +2 -2
  37. package/dist/data-table/index.d.ts +2 -2
  38. package/dist/data-table/index.js +2742 -1440
  39. package/dist/data-table/index.js.map +1 -1
  40. package/dist/data-table/infer-filter.d.cts +1 -1
  41. package/dist/data-table/infer-filter.d.ts +1 -1
  42. package/dist/data-table/layered-filters.d.cts +1 -1
  43. package/dist/data-table/layered-filters.d.ts +1 -1
  44. package/dist/data-table/pagination.cjs +135 -97
  45. package/dist/data-table/pagination.cjs.map +1 -1
  46. package/dist/data-table/pagination.d.cts +8 -1
  47. package/dist/data-table/pagination.d.ts +8 -1
  48. package/dist/data-table/pagination.js +130 -92
  49. package/dist/data-table/pagination.js.map +1 -1
  50. package/dist/data-table/query-control.d.cts +1 -1
  51. package/dist/data-table/query-control.d.ts +1 -1
  52. package/dist/data-table/scroll-pagination.cjs +82 -54
  53. package/dist/data-table/scroll-pagination.cjs.map +1 -1
  54. package/dist/data-table/scroll-pagination.js +82 -54
  55. package/dist/data-table/scroll-pagination.js.map +1 -1
  56. package/dist/data-table/types.cjs.map +1 -1
  57. package/dist/data-table/types.d.cts +1 -1
  58. package/dist/data-table/types.d.ts +1 -1
  59. package/dist/data-table/url-state.cjs +7 -1
  60. package/dist/data-table/url-state.cjs.map +1 -1
  61. package/dist/data-table/url-state.d.cts +1 -1
  62. package/dist/data-table/url-state.d.ts +1 -1
  63. package/dist/data-table/url-state.js +7 -1
  64. package/dist/data-table/url-state.js.map +1 -1
  65. package/dist/data-table/uuid-cell.cjs +1 -1
  66. package/dist/data-table/uuid-cell.cjs.map +1 -1
  67. package/dist/data-table/uuid-cell.js +1 -1
  68. package/dist/data-table/uuid-cell.js.map +1 -1
  69. package/dist/data-table/xlsx.d.cts +1 -1
  70. package/dist/data-table/xlsx.d.ts +1 -1
  71. package/dist/index.cjs +527 -0
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.cts +1 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +531 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/tap-target.cjs +636 -0
  78. package/dist/tap-target.cjs.map +1 -0
  79. package/dist/tap-target.css +151 -0
  80. package/dist/tap-target.d.cts +131 -0
  81. package/dist/tap-target.d.ts +131 -0
  82. package/dist/tap-target.js +608 -0
  83. package/dist/tap-target.js.map +1 -0
  84. package/dist/{types-BuDKVpeF.d.ts → types-D1m14boM.d.ts} +49 -3
  85. package/dist/{types-Dqcb7jXO.d.cts → types-Di6QT0P1.d.cts} +49 -3
  86. package/package.json +14 -1
package/dist/index.d.cts CHANGED
@@ -29,6 +29,7 @@ import * as SliderPrimitive from '@radix-ui/react-slider';
29
29
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
30
30
  import * as TogglePrimitive from '@radix-ui/react-toggle';
31
31
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
32
+ export { TapTargetButton, TapTargetButtonDestructive, TapTargetButtonForGroup, TapTargetButtonGroup, TapTargetButtonProps, TapTargetButtonSolid, TapTargetButtonSolidProps, TapTargetButtonTransparent, TapTargetLabeled, TapTargetLinkComponent, TapTargetLinkProps, getTapTargetLinkComponent, setTapTargetLinkComponent } from './tap-target.cjs';
32
33
 
33
34
  /**
34
35
  * Accordion — the last primitive the fleet was still standing in for.
package/dist/index.d.ts CHANGED
@@ -29,6 +29,7 @@ import * as SliderPrimitive from '@radix-ui/react-slider';
29
29
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
30
30
  import * as TogglePrimitive from '@radix-ui/react-toggle';
31
31
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
32
+ export { TapTargetButton, TapTargetButtonDestructive, TapTargetButtonForGroup, TapTargetButtonGroup, TapTargetButtonProps, TapTargetButtonSolid, TapTargetButtonSolidProps, TapTargetButtonTransparent, TapTargetLabeled, TapTargetLinkComponent, TapTargetLinkProps, getTapTargetLinkComponent, setTapTargetLinkComponent } from './tap-target.js';
32
33
 
33
34
  /**
34
35
  * Accordion — the last primitive the fleet was still standing in for.
package/dist/index.js CHANGED
@@ -4232,6 +4232,528 @@ var TooltipContent = React36.forwardRef(({ className, sideOffset = 4, container,
4232
4232
  ) });
4233
4233
  });
4234
4234
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4235
+
4236
+ // src/tap-target/tap-target-button.tsx
4237
+ import {
4238
+ cloneElement,
4239
+ forwardRef as forwardRef31,
4240
+ isValidElement
4241
+ } from "react";
4242
+
4243
+ // src/tap-target/cn.ts
4244
+ function cn2(...values) {
4245
+ return values.filter(Boolean).join(" ").trim();
4246
+ }
4247
+
4248
+ // src/tap-target/link.ts
4249
+ var LINK_SLOT = /* @__PURE__ */ Symbol.for("@ai-matrx/tap-target:link-component");
4250
+ function setTapTargetLinkComponent(component) {
4251
+ globalThis[LINK_SLOT] = component;
4252
+ }
4253
+ function getTapTargetLinkComponent() {
4254
+ return globalThis[LINK_SLOT] ?? null;
4255
+ }
4256
+
4257
+ // src/tap-target/tap-target-button.tsx
4258
+ import { jsx as jsx49, jsxs as jsxs25 } from "react/jsx-runtime";
4259
+ var EXTERNAL_RE = /^(https?:|mailto:|tel:)/i;
4260
+ var TAP_OUTER_CLASS = "matrx-tap-target group";
4261
+ var TAP_GROUP_OUTER_CLASS = "matrx-tap-target matrx-tap-target-sm group";
4262
+ function IconContent({
4263
+ icon,
4264
+ children,
4265
+ strokeWidth = 2,
4266
+ className
4267
+ }) {
4268
+ if (icon) {
4269
+ if (isValidElement(icon)) {
4270
+ return cloneElement(icon, {
4271
+ className: cn2(className, icon.props.className)
4272
+ });
4273
+ }
4274
+ return /* @__PURE__ */ jsx49("span", { className, children: icon });
4275
+ }
4276
+ return /* @__PURE__ */ jsx49(
4277
+ "svg",
4278
+ {
4279
+ className,
4280
+ fill: "none",
4281
+ viewBox: "0 0 24 24",
4282
+ stroke: "currentColor",
4283
+ strokeWidth,
4284
+ children
4285
+ }
4286
+ );
4287
+ }
4288
+ function resolveTapGeometry(label, size, mobileIconOnly) {
4289
+ const inline = Boolean(label);
4290
+ if (size === "sm") {
4291
+ return {
4292
+ outerClassName: inline && mobileIconOnly ? "matrx-tap-target matrx-tap-target-sm matrx-tap-target-mobile-icon-only-sm group" : inline ? "matrx-tap-target matrx-tap-target-sm matrx-tap-target-inline-sm group" : TAP_GROUP_OUTER_CLASS,
4293
+ inlineModifier: mobileIconOnly ? "matrx-tap-pill-mobile-icon-only-sm" : "matrx-tap-pill-inline-sm"
4294
+ };
4295
+ }
4296
+ return {
4297
+ outerClassName: inline && mobileIconOnly ? `${TAP_OUTER_CLASS} matrx-tap-target-mobile-icon-only` : inline ? `${TAP_OUTER_CLASS} matrx-tap-target-inline` : TAP_OUTER_CLASS,
4298
+ inlineModifier: mobileIconOnly ? "matrx-tap-pill-mobile-icon-only" : "matrx-tap-pill-inline"
4299
+ };
4300
+ }
4301
+ function buildTapInner({
4302
+ label,
4303
+ pillClassName,
4304
+ iconClassName,
4305
+ labelClassName,
4306
+ inlineModifier,
4307
+ icon,
4308
+ children,
4309
+ strokeWidth = 2
4310
+ }) {
4311
+ const iconEl = /* @__PURE__ */ jsx49(
4312
+ IconContent,
4313
+ {
4314
+ icon,
4315
+ strokeWidth,
4316
+ className: iconClassName,
4317
+ children
4318
+ }
4319
+ );
4320
+ const pillClasses = label ? `${pillClassName} ${inlineModifier}`.trim() : pillClassName;
4321
+ if (!label) {
4322
+ return /* @__PURE__ */ jsx49("div", { className: pillClasses, children: iconEl });
4323
+ }
4324
+ return /* @__PURE__ */ jsxs25("div", { className: pillClasses, children: [
4325
+ iconEl,
4326
+ /* @__PURE__ */ jsx49("span", { className: labelClassName ?? "matrx-tap-label", children: label })
4327
+ ] });
4328
+ }
4329
+ function renderTapTarget({
4330
+ size = "default",
4331
+ pillClassName,
4332
+ iconClassName,
4333
+ labelClassName,
4334
+ icon,
4335
+ children,
4336
+ strokeWidth,
4337
+ label,
4338
+ mobileIconOnly = false,
4339
+ onClick,
4340
+ as,
4341
+ htmlFor,
4342
+ ariaLabel,
4343
+ disabled,
4344
+ href,
4345
+ target,
4346
+ rel,
4347
+ prefetch,
4348
+ linkComponent,
4349
+ tooltip,
4350
+ tooltipSide,
4351
+ tooltipAlign,
4352
+ rest,
4353
+ buttonRef
4354
+ }) {
4355
+ const { outerClassName, inlineModifier } = resolveTapGeometry(
4356
+ label,
4357
+ size,
4358
+ mobileIconOnly
4359
+ );
4360
+ const responsiveLabelClassName = mobileIconOnly ? `${labelClassName ?? "matrx-tap-label"} matrx-tap-label-mobile-icon-only` : labelClassName;
4361
+ const inner = buildTapInner({
4362
+ label,
4363
+ pillClassName,
4364
+ iconClassName,
4365
+ labelClassName: responsiveLabelClassName,
4366
+ inlineModifier: label ? inlineModifier : "",
4367
+ icon,
4368
+ children,
4369
+ strokeWidth
4370
+ });
4371
+ const resolvedTooltip = tooltip !== void 0 ? tooltip : label ? false : void 0;
4372
+ const triggerAriaLabel = label && !mobileIconOnly ? void 0 : ariaLabel ?? label;
4373
+ const trigger = renderTrigger({
4374
+ href,
4375
+ target,
4376
+ rel,
4377
+ prefetch,
4378
+ linkComponent,
4379
+ as,
4380
+ htmlFor,
4381
+ onClick,
4382
+ ariaLabel: triggerAriaLabel,
4383
+ disabled,
4384
+ outerClassName,
4385
+ children: inner,
4386
+ rest,
4387
+ buttonRef
4388
+ });
4389
+ return withTooltip(trigger, {
4390
+ tooltip: resolvedTooltip,
4391
+ ariaLabel: triggerAriaLabel,
4392
+ disabled,
4393
+ tooltipSide,
4394
+ tooltipAlign
4395
+ });
4396
+ }
4397
+ function renderTrigger({
4398
+ href,
4399
+ target,
4400
+ rel,
4401
+ prefetch,
4402
+ linkComponent,
4403
+ as,
4404
+ htmlFor,
4405
+ onClick,
4406
+ ariaLabel,
4407
+ disabled,
4408
+ outerClassName,
4409
+ children,
4410
+ rest,
4411
+ buttonRef
4412
+ }) {
4413
+ if (disabled && href) {
4414
+ return /* @__PURE__ */ jsx49(
4415
+ "span",
4416
+ {
4417
+ "aria-disabled": "true",
4418
+ "aria-label": ariaLabel,
4419
+ className: `${outerClassName} opacity-40 pointer-events-none`,
4420
+ children
4421
+ }
4422
+ );
4423
+ }
4424
+ if (href) {
4425
+ const isExternal = EXTERNAL_RE.test(href);
4426
+ if (isExternal) {
4427
+ return /* @__PURE__ */ jsx49(
4428
+ "a",
4429
+ {
4430
+ href,
4431
+ target: target ?? "_blank",
4432
+ rel: rel ?? "noopener noreferrer",
4433
+ "aria-label": ariaLabel,
4434
+ className: outerClassName,
4435
+ children
4436
+ }
4437
+ );
4438
+ }
4439
+ const Link = linkComponent ?? getTapTargetLinkComponent();
4440
+ if (Link) {
4441
+ return /* @__PURE__ */ jsx49(
4442
+ Link,
4443
+ {
4444
+ href,
4445
+ target,
4446
+ rel,
4447
+ prefetch,
4448
+ "aria-label": ariaLabel,
4449
+ className: outerClassName,
4450
+ children
4451
+ }
4452
+ );
4453
+ }
4454
+ return /* @__PURE__ */ jsx49(
4455
+ "a",
4456
+ {
4457
+ href,
4458
+ target,
4459
+ rel,
4460
+ "aria-label": ariaLabel,
4461
+ className: outerClassName,
4462
+ children
4463
+ }
4464
+ );
4465
+ }
4466
+ if (as === "label") {
4467
+ return /* @__PURE__ */ jsx49(
4468
+ "label",
4469
+ {
4470
+ htmlFor,
4471
+ "aria-label": ariaLabel,
4472
+ className: outerClassName,
4473
+ children
4474
+ }
4475
+ );
4476
+ }
4477
+ return /* @__PURE__ */ jsx49(
4478
+ "button",
4479
+ {
4480
+ ref: buttonRef,
4481
+ type: "button",
4482
+ onClick,
4483
+ "aria-label": ariaLabel,
4484
+ disabled,
4485
+ ...rest,
4486
+ className: outerClassName,
4487
+ children
4488
+ }
4489
+ );
4490
+ }
4491
+ function withTooltip(trigger, {
4492
+ tooltip,
4493
+ ariaLabel,
4494
+ disabled,
4495
+ tooltipSide = "top",
4496
+ tooltipAlign = "center"
4497
+ }) {
4498
+ if (tooltip === false) return trigger;
4499
+ const label = typeof tooltip === "string" && tooltip.length > 0 ? tooltip : ariaLabel;
4500
+ if (!label) return trigger;
4501
+ return /* @__PURE__ */ jsxs25(Tooltip, { children: [
4502
+ /* @__PURE__ */ jsx49(TooltipTrigger, { asChild: true, children: disabled ? (
4503
+ // Radix Tooltip triggers need a hoverable element; a disabled button
4504
+ // does not dispatch pointer events, so we wrap in a span for the
4505
+ // trigger target while keeping the disabled visual state.
4506
+ /* @__PURE__ */ jsx49("span", { className: "inline-flex", children: trigger })
4507
+ ) : trigger }),
4508
+ /* @__PURE__ */ jsx49(TooltipContent, { side: tooltipSide, align: tooltipAlign, children: label })
4509
+ ] });
4510
+ }
4511
+ var TapTargetButton = forwardRef31(function TapTargetButton2({
4512
+ icon,
4513
+ children,
4514
+ strokeWidth = 2,
4515
+ onClick,
4516
+ className,
4517
+ as,
4518
+ htmlFor,
4519
+ ariaLabel,
4520
+ disabled,
4521
+ href,
4522
+ target,
4523
+ rel,
4524
+ prefetch,
4525
+ linkComponent,
4526
+ tooltip,
4527
+ tooltipSide,
4528
+ tooltipAlign,
4529
+ label,
4530
+ mobileIconOnly,
4531
+ ...rest
4532
+ }, ref) {
4533
+ const color = className ?? "text-foreground";
4534
+ return renderTapTarget({
4535
+ icon,
4536
+ children,
4537
+ strokeWidth,
4538
+ onClick,
4539
+ as,
4540
+ htmlFor,
4541
+ ariaLabel,
4542
+ disabled,
4543
+ href,
4544
+ target,
4545
+ rel,
4546
+ prefetch,
4547
+ linkComponent,
4548
+ tooltip,
4549
+ tooltipSide,
4550
+ tooltipAlign,
4551
+ label,
4552
+ mobileIconOnly,
4553
+ pillClassName: "matrx-tap-pill matrx-glass-thin-border",
4554
+ iconClassName: `matrx-tap-icon ${color}`,
4555
+ rest,
4556
+ buttonRef: ref
4557
+ });
4558
+ });
4559
+ var TapTargetButtonTransparent = forwardRef31(function TapTargetButtonTransparent2({
4560
+ icon,
4561
+ children,
4562
+ strokeWidth = 2,
4563
+ onClick,
4564
+ className,
4565
+ as,
4566
+ htmlFor,
4567
+ ariaLabel,
4568
+ disabled,
4569
+ href,
4570
+ target,
4571
+ rel,
4572
+ prefetch,
4573
+ linkComponent,
4574
+ tooltip,
4575
+ tooltipSide,
4576
+ tooltipAlign,
4577
+ label,
4578
+ mobileIconOnly,
4579
+ ...rest
4580
+ }, ref) {
4581
+ const color = className ?? "text-foreground";
4582
+ return renderTapTarget({
4583
+ icon,
4584
+ children,
4585
+ strokeWidth,
4586
+ onClick,
4587
+ as,
4588
+ htmlFor,
4589
+ ariaLabel,
4590
+ disabled,
4591
+ href,
4592
+ target,
4593
+ rel,
4594
+ prefetch,
4595
+ linkComponent,
4596
+ tooltip,
4597
+ tooltipSide,
4598
+ tooltipAlign,
4599
+ label,
4600
+ mobileIconOnly,
4601
+ pillClassName: "matrx-tap-pill hover:bg-muted active:bg-muted-foreground/15",
4602
+ iconClassName: `matrx-tap-icon ${color}`,
4603
+ rest,
4604
+ buttonRef: ref
4605
+ });
4606
+ });
4607
+ var TapTargetButtonSolid = forwardRef31(function TapTargetButtonSolid2({
4608
+ icon,
4609
+ children,
4610
+ strokeWidth = 2,
4611
+ onClick,
4612
+ as,
4613
+ htmlFor,
4614
+ ariaLabel,
4615
+ disabled,
4616
+ href,
4617
+ target,
4618
+ rel,
4619
+ prefetch,
4620
+ linkComponent,
4621
+ bgColor = "bg-primary",
4622
+ iconColor = "text-primary-foreground",
4623
+ hoverBgColor = "hover:bg-primary/80",
4624
+ activeBgColor = "active:brightness-90",
4625
+ tooltip,
4626
+ tooltipSide,
4627
+ tooltipAlign,
4628
+ label,
4629
+ mobileIconOnly,
4630
+ ...rest
4631
+ }, ref) {
4632
+ return renderTapTarget({
4633
+ icon,
4634
+ children,
4635
+ strokeWidth,
4636
+ onClick,
4637
+ as,
4638
+ htmlFor,
4639
+ ariaLabel,
4640
+ disabled,
4641
+ href,
4642
+ target,
4643
+ rel,
4644
+ prefetch,
4645
+ linkComponent,
4646
+ tooltip,
4647
+ tooltipSide,
4648
+ tooltipAlign,
4649
+ label,
4650
+ mobileIconOnly,
4651
+ pillClassName: `matrx-tap-pill ${bgColor} ${iconColor} ${hoverBgColor} ${activeBgColor}`,
4652
+ iconClassName: `matrx-tap-icon ${iconColor}`,
4653
+ labelClassName: `matrx-tap-label ${iconColor}`,
4654
+ rest,
4655
+ buttonRef: ref
4656
+ });
4657
+ });
4658
+ var TapTargetButtonDestructive = forwardRef31(function TapTargetButtonDestructive2({
4659
+ bgColor = "bg-destructive",
4660
+ iconColor = "text-destructive-foreground",
4661
+ hoverBgColor = "hover:bg-destructive/90",
4662
+ ...rest
4663
+ }, ref) {
4664
+ return /* @__PURE__ */ jsx49(
4665
+ TapTargetButtonSolid,
4666
+ {
4667
+ ref,
4668
+ bgColor,
4669
+ iconColor,
4670
+ hoverBgColor,
4671
+ ...rest
4672
+ }
4673
+ );
4674
+ });
4675
+ var TapTargetButtonForGroup = forwardRef31(function TapTargetButtonForGroup2({
4676
+ icon,
4677
+ children,
4678
+ strokeWidth = 2,
4679
+ onClick,
4680
+ className,
4681
+ as,
4682
+ htmlFor,
4683
+ ariaLabel,
4684
+ disabled,
4685
+ href,
4686
+ target,
4687
+ rel,
4688
+ prefetch,
4689
+ linkComponent,
4690
+ tooltip,
4691
+ tooltipSide,
4692
+ tooltipAlign,
4693
+ label,
4694
+ mobileIconOnly,
4695
+ ...rest
4696
+ }, ref) {
4697
+ const color = className ?? "text-foreground";
4698
+ return renderTapTarget({
4699
+ size: "sm",
4700
+ icon,
4701
+ children,
4702
+ strokeWidth,
4703
+ onClick,
4704
+ as,
4705
+ htmlFor,
4706
+ ariaLabel,
4707
+ disabled,
4708
+ href,
4709
+ target,
4710
+ rel,
4711
+ prefetch,
4712
+ linkComponent,
4713
+ tooltip,
4714
+ tooltipSide,
4715
+ tooltipAlign,
4716
+ label,
4717
+ mobileIconOnly,
4718
+ pillClassName: "matrx-tap-pill matrx-tap-pill-sm matrx-glass-interactive",
4719
+ iconClassName: `matrx-tap-icon ${color}`,
4720
+ labelClassName: `matrx-tap-label ${color}`,
4721
+ rest,
4722
+ buttonRef: ref
4723
+ });
4724
+ });
4725
+ function TapTargetButtonGroup({
4726
+ children,
4727
+ className
4728
+ }) {
4729
+ return /* @__PURE__ */ jsxs25(
4730
+ "div",
4731
+ {
4732
+ className: className ? `relative inline-flex h-9 items-center ${className}` : "relative inline-flex h-9 items-center",
4733
+ children: [
4734
+ /* @__PURE__ */ jsx49("div", { className: "pointer-events-none absolute inset-x-0 top-1/2 -translate-y-1/2 h-7 rounded-full matrx-glass-thin-border" }),
4735
+ /* @__PURE__ */ jsx49("div", { className: "relative flex min-w-0 items-center", children })
4736
+ ]
4737
+ }
4738
+ );
4739
+ }
4740
+
4741
+ // src/tap-target/tap-target-labeled.tsx
4742
+ import { jsx as jsx50, jsxs as jsxs26 } from "react/jsx-runtime";
4743
+ function TapTargetLabeled({
4744
+ label,
4745
+ children,
4746
+ hideLabel = false,
4747
+ toolTipSide = "bottom"
4748
+ }) {
4749
+ return /* @__PURE__ */ jsx50(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs26(Tooltip, { children: [
4750
+ /* @__PURE__ */ jsx50(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center p-0 gap-0 space-y-0 space-x-0 shrink-0", children: [
4751
+ children,
4752
+ !hideLabel && /* @__PURE__ */ jsx50("span", { className: "text-[10px] text-muted-foreground/70 leading-tight max-w-[52px] text-center truncate", children: label })
4753
+ ] }) }),
4754
+ /* @__PURE__ */ jsx50(TooltipContent, { side: toolTipSide, children: /* @__PURE__ */ jsx50("span", { className: "font-mono text-xs max-w-[280px] break-all", children: label }) })
4755
+ ] }) });
4756
+ }
4235
4757
  export {
4236
4758
  ALL_MOTION_CLASSES,
4237
4759
  ARCHIVE_FILTER_LABELS,
@@ -4423,6 +4945,13 @@ export {
4423
4945
  TabsList,
4424
4946
  TabsTrigger,
4425
4947
  TabsTriggerCore,
4948
+ TapTargetButton,
4949
+ TapTargetButtonDestructive,
4950
+ TapTargetButtonForGroup,
4951
+ TapTargetButtonGroup,
4952
+ TapTargetButtonSolid,
4953
+ TapTargetButtonTransparent,
4954
+ TapTargetLabeled,
4426
4955
  Textarea,
4427
4956
  TextareaWithPrefix,
4428
4957
  Toggle,
@@ -4437,9 +4966,11 @@ export {
4437
4966
  badgeVariants,
4438
4967
  buttonVariants,
4439
4968
  cn,
4969
+ getTapTargetLinkComponent,
4440
4970
  scoreAccentBgClasses,
4441
4971
  scoreRingColorClasses,
4442
4972
  selectTriggerVariants,
4973
+ setTapTargetLinkComponent,
4443
4974
  sheetVariants,
4444
4975
  toArchiveFilter,
4445
4976
  toggleVariants,