@xenide-io/the-old-ui-theme 0.3.2 → 0.4.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 (60) hide show
  1. package/dist/{chunk-5HSOBJ4F.mjs → chunk-KORWJCIO.mjs} +600 -932
  2. package/dist/{index-BgG8Homu.d.mts → index-B5NOyoKS.d.mts} +100 -100
  3. package/dist/{index-BgG8Homu.d.ts → index-B5NOyoKS.d.ts} +100 -100
  4. package/dist/index.d.mts +9 -145
  5. package/dist/index.d.ts +9 -145
  6. package/dist/index.js +653 -1111
  7. package/dist/index.mjs +9 -267
  8. package/dist/suite.d.mts +760 -0
  9. package/dist/suite.d.ts +760 -0
  10. package/dist/suite.js +2564 -0
  11. package/dist/suite.mjs +2465 -0
  12. package/dist/ui.d.mts +1 -2
  13. package/dist/ui.d.ts +1 -2
  14. package/dist/ui.js +14 -10
  15. package/dist/ui.mjs +1 -1
  16. package/package.json +43 -24
  17. package/src/components/icons/icons.tsx +0 -2
  18. package/src/components/icons/index.ts +0 -3
  19. package/src/components/sections/IconShowcase.tsx +1 -110
  20. package/src/components/sections/NewComponentsShowcase.tsx +4 -4
  21. package/src/components/sections/SidebarShowcase.tsx +3 -3
  22. package/src/components/sections/SuiteShowcase.tsx +669 -0
  23. package/src/components/ui/ComponentDocs.tsx +2 -2
  24. package/src/components/ui/ContextMenu.tsx +1 -1
  25. package/src/components/ui/Menubar.tsx +1 -1
  26. package/src/components/ui/Sidebar.tsx +10 -8
  27. package/src/styles/suite-skin.css +255 -0
  28. package/src/suite/components/ai-panel.tsx +202 -0
  29. package/src/suite/components/app-switcher.tsx +196 -0
  30. package/src/suite/components/command-palette-host.tsx +62 -0
  31. package/src/suite/components/deferred-chrome.tsx +12 -0
  32. package/src/suite/components/suite-app-layout.tsx +69 -0
  33. package/src/suite/components/suite-bottom-nav.tsx +113 -0
  34. package/src/suite/components/suite-layout.tsx +287 -0
  35. package/src/suite/components/suite-mobile-drawer.tsx +150 -0
  36. package/src/suite/components/suite-mobile-header.tsx +71 -0
  37. package/src/suite/components/suite-notification-bell.tsx +227 -0
  38. package/src/suite/components/suite-settings-mobile-nav.tsx +83 -0
  39. package/src/suite/components/suite-sidebar.tsx +191 -0
  40. package/src/suite/components/suite-skeleton.tsx +191 -0
  41. package/src/suite/components/suite-user-menu.tsx +128 -0
  42. package/src/suite/components/theme-provider.tsx +174 -0
  43. package/src/suite/components/today-calibrating.tsx +95 -0
  44. package/src/suite/components/today-page-frame.tsx +28 -0
  45. package/src/suite/components/today-ui.tsx +370 -0
  46. package/src/suite/icons/app-accents.ts +75 -0
  47. package/src/suite/icons/glyph-parts.tsx +67 -0
  48. package/src/suite/icons/glyphs.ts +203 -0
  49. package/src/suite/icons/index.ts +12 -0
  50. package/src/suite/icons/suite-app-icon.tsx +68 -0
  51. package/src/suite/icons/suite-icon.tsx +93 -0
  52. package/src/suite/index.ts +108 -0
  53. package/src/suite/lib/apps.ts +75 -0
  54. package/src/suite/lib/cn.ts +6 -0
  55. package/src/suite/lib/injected.ts +54 -0
  56. package/src/suite/lib/motion.tsx +48 -0
  57. package/src/suite/lib/use-idle-mount.ts +25 -0
  58. package/src/components/icons/lemon-brand-icons.tsx +0 -16
  59. package/src/components/icons/lemon-category-icons.tsx +0 -72
  60. package/src/components/icons/lemon-icons.tsx +0 -57
@@ -654,212 +654,8 @@ var IconByName = forwardRef4(function IconByName2(_a, ref) {
654
654
  });
655
655
  IconByName.displayName = "IconByName";
656
656
 
657
- // src/components/icons/lemon-icons.tsx
658
- import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
659
- var p = (d) => /* @__PURE__ */ jsx6("path", { d, fill: "currentColor" });
660
- var IconTextSize = createIconBase({ paths: p("M2 4V7H7V19H10V7H15V4H2M21 9H12V12H15V19H18V12H21V9Z") });
661
- var IconBranch = createIconBase({ paths: p("M13,14C9.64,14 8.54,15.35 8.18,16.24C9.25,16.7 10,17.76 10,19A3,3 0 0,1 7,22A3,3 0 0,1 4,19C4,17.69 4.83,16.58 6,16.17V7.83C4.83,7.42 4,6.31 4,5A3,3 0 0,1 7,2A3,3 0 0,1 10,5C10,6.31 9.17,7.42 8,7.83V13.12C8.88,12.47 10.16,12 12,12C14.67,12 15.56,10.66 15.85,9.77C14.77,9.32 14,8.25 14,7A3,3 0 0,1 17,4A3,3 0 0,1 20,7C20,8.34 19.12,9.5 17.91,9.86C17.65,11.29 16.68,14 13,14M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M7,4A1,1 0 0,0 6,5A1,1 0 0,0 7,6A1,1 0 0,0 8,5A1,1 0 0,0 7,4M17,6A1,1 0 0,0 16,7A1,1 0 0,0 17,8A1,1 0 0,0 18,7A1,1 0 0,0 17,6Z") });
662
- var IconFeedback = createIconBase({ viewBox: "0 0 32 32", paths: p("M26.6667 2.66663H5.33341C3.86675 2.66663 2.68008 3.86663 2.68008 5.33329L2.66675 29.3333L8.00008 24H26.6667C28.1334 24 29.3334 22.8 29.3334 21.3333V5.33329C29.3334 3.86663 28.1334 2.66663 26.6667 2.66663ZM26.6667 21.3333H6.89341L6.10675 22.12L5.33341 22.8933V5.33329H26.6667V21.3333ZM14.6667 16H17.3334V18.6666H14.6667V16ZM14.6667 7.99996H17.3334V13.3333H14.6667V7.99996Z") });
663
- var IconSelectAll = createIconBase({ paths: p("M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z") });
664
- var IconKey = createIconBase({ paths: p("M21,10h-8.35C11.83,7.67,9.61,6,7,6c-3.31,0-6,2.69-6,6s2.69,6,6,6c2.61,0,4.83-1.67,5.65-4H13l2,2l2-2l2,2l4-4.04L21,10z M7,15c-1.65,0-3-1.35-3-3c0-1.65,1.35-3,3-3s3,1.35,3,3C10,13.65,8.65,15,7,15z") });
665
- var IconOpenInApp = createIconBase({ paths: /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m12 10l-4 4h3v6h2v-6h3m3-10H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z" }) });
666
- var IconSwapHoriz = createIconBase({ paths: p("m6.99 11-3.99 4 3.99 4v-3h7.01v-2h-7.01zm14.01-2-3.99-4v3h-7.01v2h7.01v3z") });
667
- var IconBlank = createIconBase({ paths: null });
668
- var IconRadioButtonUnchecked = createIconBase({ paths: p("M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z") });
669
- var IconOffline = createIconBase({ paths: p("m12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98-4.47-9.98-9.98-9.98zm0 17.96c-4.4 0-7.98-3.58-7.98-7.98s3.58-7.98 7.98-7.98 7.98 3.58 7.98 7.98-3.58 7.98-7.98 7.98zm.75-14.98-4.5 8.5h3.14v5.5l4.36-8.5h-3z") });
670
- var IconMenu = createIconBase({ paths: p("m3 18h18v-2h-18zm0-5h18v-2h-18zm0-7v2h18v-2z") });
671
- var IconSubtitles = createIconBase({ paths: p("m20 4h-16c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm0 14h-16v-12h16zm-14-8h2v2h-2zm0 4h8v2h-8zm10 0h2v2h-2zm-6-4h8v2h-8z") });
672
- var IconSubtitlesOff = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
673
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m20.0001 4h-13.17002l2 2h11.17002v11.17l1.76 1.76c.15-.28.24-.59.24-.93v-12c0-1.1-.9-2-2-2z" }),
674
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m18.0001 10h-5.17l2 2h3.17z" }),
675
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m1.04004 3.86922 1.2 1.2c-.15.28-.24.59-.24.93v11.99998c0 1.1.9 2 2 2h13.16996l2.96 2.96 1.41-1.41-19.08996-19.09998zm2.96 2.96 3.17 3.17h-1.17v1.99998h2v-1.17l3.16996 3.17h-5.16996v2h7.16996l2 2h-11.16996z" })
676
- ] }) });
677
- var IconCalculate = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
678
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m19 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-14v-14h14z" }),
679
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m11.25 7.7207h-5v1.5h5z" }),
680
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m18 15.75h-5v1.5h5z" }),
681
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m18 13.25h-5v1.5h5z" }),
682
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m8 18h1.5v-2h2v-1.5h-2v-2h-1.5v2h-2v1.5h2z" }),
683
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "m14.09 10.95 1.41-1.41 1.41 1.41 1.06-1.06-1.41-1.42 1.41-1.41-1.06-1.06-1.41 1.41-1.41-1.41-1.06 1.06 1.41 1.41-1.41 1.42z" })
684
- ] }) });
685
- var IconGroupedEvents = createIconBase({ paths: /* @__PURE__ */ jsx6("path", { fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd", d: "m2 6h2v14h14v2h-14c-1.1 0-2-.9-2-2zm6-4h12c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2h-12c-1.1 0-2-.9-2-2v-12c0-1.1.9-2 2-2zm0 14h12v-12h-12zm4.6851-3.6586-.5398 1.6584h-1.6477l2.5106-7.27275h1.9815l2.5071 7.27275h-1.6477l-.5398-1.6584zm1.2855-3.95242-.8949 2.75212h1.8466l-.8949-2.75212z" }) });
686
- var IconQuestionAnswer = createIconBase({ paths: p("m15 4v7h-9.83l-1.17 1.17v-8.17zm1-2h-13c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm5 4h-2v9h-13v2c0 .55.45 1 1 1h11l4 4v-15c0-.55-.45-1-1-1z") });
687
- var IconOpenInNew = createIconBase({ paths: p("m19 19h-14v-14h7v-2h-7c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-5-16v2h3.59l-9.83 9.83 1.41 1.41 9.83-9.83v3.59h2v-7z") });
688
- var IconTrendingFlat = createIconBase({ paths: p("m20 12-4-4v3h-12v2h12v3z") });
689
- var IconTrendingFlatDown = createIconBase({ paths: p("m17.6567 17.6558v-5.6568l-2.1214 2.1213-8.48523-8.48531-1.41422 1.41422 8.48525 8.48529-2.1213 2.1213z") });
690
- var IconTrendingDown = createIconBase({ paths: p("m16 18 2.29-2.29-4.88-4.88-4 4-7.41-7.42 1.41-1.41 6 6 4-4 6.3 6.29 2.29-2.29v6z") });
691
- var IconAction = createIconBase({ viewBox: "0 0 20 20", paths: /* @__PURE__ */ jsx6("path", { fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd", d: "M0 4H2V18H16V20H2C0.9 20 0 19.1 0 18V4ZM6 0H18C19.1 0 20 0.9 20 2V14C20 15.1 19.1 16 18 16H6C4.9 16 4 15.1 4 14V2C4 0.9 4.9 0 6 0ZM6 14H18V2H6V14ZM10.6851 10.3414L10.1453 11.9998H8.49756L11.0082 4.72705H12.9897L15.4968 11.9998H13.8491L13.3093 10.3414H10.6851ZM11.9706 6.38898L11.0757 9.14111H12.9223L12.0274 6.38898H11.9706Z" }) });
692
- var IconEvent = createIconBase({ viewBox: "0 0 20 10", paths: p("M7.4 10.6L2.8 6L7.4 1.4L6 0L0 6L6 12L7.4 10.6ZM12.6 10.6L17.2 6L12.6 1.4L14 0L20 6L14 12L12.6 10.6Z") });
693
- var IconReplay = createIconBase({ paths: p("m12 5v-4l-5 5 5 5v-4c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z") });
694
- var IconHeatmap = createIconBase({ viewBox: "0 0 32 32", paths: p("M17.5 1.49056C17.5 0.00305736 15.5844 -0.557568 14.7406 0.675557C7 11.9899 18 12.4993 18 17.9993C18 20.2262 16.1806 22.0281 13.9469 21.9987C11.7487 21.9706 10 20.1381 10 17.9399V12.5956C10 11.2393 8.34562 10.5812 7.41062 11.5643C5.7375 13.3218 4 16.3324 4 19.9993C4 26.6162 9.38312 31.9993 16 31.9993C22.6169 31.9993 28 26.6162 28 19.9993C28 9.35618 17.5 7.93681 17.5 1.49056V1.49056Z") });
695
- var IconUnverifiedEvent = createIconBase({ paths: p("M4.8 17.4H19.2V15.6H4.8V17.4ZM6.6 21H17.4V19.2H6.6V21ZM19.2 13.8H4.8C3.81 13.8 3 12.99 3 12V4.8C3 3.81 3.81 3 4.8 3H19.2C20.19 3 21 3.81 21 4.8V12C21 12.99 20.19 13.8 19.2 13.8ZM19.2 4.8H4.8V12H19.2V4.8Z") });
696
- var IconVerifiedEvent = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
697
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M14 3H4.8C3.81 3 3 3.81 3 4.8V12C3 12.99 3.81 13.8 4.8 13.8H19.2C20.19 13.8 21 12.99 21 12V10H19.2V12H4.8V4.8H14V3ZM19.2 17.4H4.8V15.6H19.2V17.4ZM17.4 21H6.6V19.2H17.4V21Z" }),
698
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M17.7289 6.04489L16.0628 4.37164L15 5.44166L17.7289 8.17774L23 2.89228L21.9372 1.82227L17.7289 6.04489Z" })
699
- ] }) });
700
- var IconBookmarkBorder = createIconBase({ viewBox: "-4 -3 24 24", paths: p("M12.5 0H2.5C1.4 0 0.5 0.9 0.5 2V18L7.5 15L14.5 18V2C14.5 0.9 13.6 0 12.5 0ZM12.5 15L7.5 12.82L2.5 15V2H12.5V15Z") });
701
- var IconWeb = createIconBase({ paths: p("M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z") });
702
- var IconMonitor = createIconBase({ paths: p("M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z") });
703
- var IconBold = createIconBase({ paths: p("M6.8 19V5H12.325C13.4083 5 14.4083 5.33333 15.325 6C16.2417 6.66667 16.7 7.59167 16.7 8.775C16.7 9.625 16.5083 10.2792 16.125 10.7375C15.7417 11.1958 15.3833 11.525 15.05 11.725C15.4667 11.9083 15.9292 12.25 16.4375 12.75C16.9458 13.25 17.2 14 17.2 15C17.2 16.4833 16.6583 17.5208 15.575 18.1125C14.4917 18.7042 13.475 19 12.525 19H6.8ZM9.825 16.2H12.425C13.225 16.2 13.7125 15.9958 13.8875 15.5875C14.0625 15.1792 14.15 14.8833 14.15 14.7C14.15 14.5167 14.0625 14.2208 13.8875 13.8125C13.7125 13.4042 13.2 13.2 12.35 13.2H9.825V16.2ZM9.825 10.5H12.15C12.7 10.5 13.1 10.3583 13.35 10.075C13.6 9.79167 13.725 9.475 13.725 9.125C13.725 8.725 13.5833 8.4 13.3 8.15C13.0167 7.9 12.65 7.775 12.2 7.775H9.825V10.5Z") });
704
- var IconItalic = createIconBase({ paths: p("M5 19V16.5H9L12 7.5H8V5H18V7.5H14.5L11.5 16.5H15V19H5Z") });
705
- var IconDevices = createIconBase({ paths: p("M3 6H21V4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H7V18H3V6M13 12H9V13.78C8.39 14.33 8 15.11 8 16C8 16.89 8.39 17.67 9 18.22V20H13V18.22C13.61 17.67 14 16.88 14 16S13.61 14.33 13 13.78V12M11 17.5C10.17 17.5 9.5 16.83 9.5 16S10.17 14.5 11 14.5 12.5 15.17 12.5 16 11.83 17.5 11 17.5M22 8H16C15.5 8 15 8.5 15 9V19C15 19.5 15.5 20 16 20H22C22.5 20 23 19.5 23 19V9C23 8.5 22.5 8 22 8M21 18H17V10H21V18Z") });
706
- var IconMacOS = createIconBase({ paths: p("M18.71,19.5C17.88,20.74 17,21.95 15.66,21.97C14.32,22 13.89,21.18 12.37,21.18C10.84,21.18 10.37,21.95 9.1,22C7.79,22.05 6.8,20.68 5.96,19.47C4.25,17 2.94,12.45 4.7,9.39C5.57,7.87 7.13,6.91 8.82,6.88C10.1,6.86 11.32,7.75 12.11,7.75C12.89,7.75 14.37,6.68 15.92,6.84C16.57,6.87 18.39,7.1 19.56,8.82C19.47,8.88 17.39,10.1 17.41,12.63C17.44,15.65 20.06,16.66 20.09,16.67C20.06,16.74 19.67,18.11 18.71,19.5M13,3.5C13.73,2.67 14.94,2.04 15.94,2C16.07,3.17 15.6,4.35 14.9,5.19C14.21,6.04 13.07,6.7 11.95,6.61C11.8,5.46 12.36,4.26 13,3.5Z") });
707
- var IconAppleIOS = createIconBase({ paths: /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M2.09 16.8H3.75V9.76H2.09M2.92 8.84C3.44 8.84 3.84 8.44 3.84 7.94C3.84 7.44 3.44 7.04 2.92 7.04C2.4 7.04 2 7.44 2 7.94C2 8.44 2.4 8.84 2.92 8.84M9.25 7.06C6.46 7.06 4.7 8.96 4.7 12C4.7 15.06 6.46 16.96 9.25 16.96C12.04 16.96 13.8 15.06 13.8 12C13.8 8.96 12.04 7.06 9.25 7.06M9.25 8.5C10.96 8.5 12.05 9.87 12.05 12C12.05 14.15 10.96 15.5 9.25 15.5C7.54 15.5 6.46 14.15 6.46 12C6.46 9.87 7.54 8.5 9.25 8.5M14.5 14.11C14.57 15.87 16 16.96 18.22 16.96C20.54 16.96 22 15.82 22 14C22 12.57 21.18 11.77 19.23 11.32L18.13 11.07C16.95 10.79 16.47 10.42 16.47 9.78C16.47 9 17.2 8.45 18.28 8.45C19.38 8.45 20.13 9 20.21 9.89H21.84C21.8 8.2 20.41 7.06 18.29 7.06C16.21 7.06 14.73 8.21 14.73 9.91C14.73 11.28 15.56 12.13 17.33 12.53L18.57 12.82C19.78 13.11 20.27 13.5 20.27 14.2C20.27 15 19.47 15.57 18.31 15.57C17.15 15.57 16.26 15 16.16 14.11H14.5Z" }) });
708
- var IconWindows = createIconBase({ paths: p("M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z") });
709
- var IconLinux = createIconBase({ paths: p("M14.62,8.35C14.2,8.63 12.87,9.39 12.67,9.54C12.28,9.85 11.92,9.83 11.53,9.53C11.33,9.37 10,8.61 9.58,8.34C9.1,8.03 9.13,7.64 9.66,7.42C11.3,6.73 12.94,6.78 14.57,7.45C15.06,7.66 15.08,8.05 14.62,8.35M21.84,15.63C20.91,13.54 19.64,11.64 18,9.97C17.47,9.42 17.14,8.8 16.94,8.09C16.84,7.76 16.77,7.42 16.7,7.08C16.5,6.2 16.41,5.3 16,4.47C15.27,2.89 14,2.07 12.16,2C10.35,2.05 9,2.81 8.21,4.4C8,4.83 7.85,5.28 7.75,5.74C7.58,6.5 7.43,7.29 7.25,8.06C7.1,8.71 6.8,9.27 6.29,9.77C4.68,11.34 3.39,13.14 2.41,15.12C2.27,15.41 2.13,15.7 2.04,16C1.85,16.66 2.33,17.12 3.03,16.96C3.47,16.87 3.91,16.78 4.33,16.65C4.74,16.5 4.9,16.6 5,17C5.65,19.15 7.07,20.66 9.24,21.5C13.36,23.06 18.17,20.84 19.21,16.92C19.28,16.65 19.38,16.55 19.68,16.65C20.14,16.79 20.61,16.89 21.08,17C21.57,17.09 21.93,16.84 22,16.36C22.03,16.1 21.94,15.87 21.84,15.63") });
710
- var IconAndroidOS = createIconBase({ paths: p("M16.61 15.15C16.15 15.15 15.77 14.78 15.77 14.32S16.15 13.5 16.61 13.5H16.61C17.07 13.5 17.45 13.86 17.45 14.32C17.45 14.78 17.07 15.15 16.61 15.15M7.41 15.15C6.95 15.15 6.57 14.78 6.57 14.32C6.57 13.86 6.95 13.5 7.41 13.5H7.41C7.87 13.5 8.24 13.86 8.24 14.32C8.24 14.78 7.87 15.15 7.41 15.15M16.91 10.14L18.58 7.26C18.67 7.09 18.61 6.88 18.45 6.79C18.28 6.69 18.07 6.75 18 6.92L16.29 9.83C14.95 9.22 13.5 8.9 12 8.91C10.47 8.91 9 9.24 7.73 9.82L6.04 6.91C5.95 6.74 5.74 6.68 5.57 6.78C5.4 6.87 5.35 7.08 5.44 7.25L7.1 10.13C4.25 11.69 2.29 14.58 2 18H22C21.72 14.59 19.77 11.7 16.91 10.14H16.91Z") });
711
- var IconLink = createIconBase({ paths: p("M7.90326 16.7536C6.93594 15.7863 6.93594 14.2137 7.90326 13.2464L10.166 10.9836L9.0912 9.90883L6.82846 12.1716C5.26717 13.7329 5.26717 16.2671 6.82846 17.8284C8.38975 19.3897 10.924 19.3897 12.4853 17.8284L14.7481 15.5657L13.6733 14.4909L11.4105 16.7536C10.4432 17.7209 8.87058 17.7209 7.90326 16.7536ZM10.7883 15L15.3137 10.4745L14.1824 9.34315L9.65688 13.8686L10.7883 15ZM12.4853 6.51472L10.2226 8.77746L11.2974 9.85226L13.5601 7.58952C14.5274 6.6222 16.1 6.6222 17.0674 7.58952C18.0347 8.55684 18.0347 10.1294 17.0674 11.0968L14.8046 13.3595L15.8794 14.4343L18.1422 12.1716C19.7035 10.6103 19.7035 8.07601 18.1422 6.51472C16.5809 4.95343 14.0466 4.95343 12.4853 6.51472Z") });
712
- var IconPreview = createIconBase({ paths: p("M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.11,3,19,3z M19,19H5V7h14V19z M12,10.5 c1.84,0,3.48,0.96,4.34,2.5c-0.86,1.54-2.5,2.5-4.34,2.5S8.52,14.54,7.66,13C8.52,11.46,10.16,10.5,12,10.5 M12,9 c-2.73,0-5.06,1.66-6,4c0.94,2.34,3.27,4,6,4s5.06-1.66,6-4C17.06,10.66,14.73,9,12,9L12,9z M12,14.5c-0.83,0-1.5-0.67-1.5-1.5 s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S12.83,14.5,12,14.5z") });
713
- var IconEyeHidden = createIconBase({ paths: p("M12 6.90455C15.1009 6.90455 17.8664 8.64727 19.2164 11.4045C18.7336 12.4027 18.0545 13.2618 17.2445 13.9573L18.3982 15.1109C19.5355 14.1045 20.4355 12.8445 21 11.4045C19.5845 7.81273 16.0909 5.26818 12 5.26818C10.9609 5.26818 9.96273 5.43182 9.02182 5.73455L10.3718 7.08454C10.9036 6.97818 11.4436 6.90455 12 6.90455ZM11.1245 7.83727L12.8182 9.53091C13.2845 9.73545 13.6609 10.1118 13.8655 10.5782L15.5591 12.2718C15.6245 11.9936 15.6736 11.6991 15.6736 11.3964C15.6818 9.36727 14.0291 7.72273 12 7.72273C11.6973 7.72273 11.4109 7.76364 11.1245 7.83727ZM3.82636 5.16182L6.01909 7.35455C4.68545 8.40182 3.63 9.79273 3 11.4045C4.41545 14.9964 7.90909 17.5409 12 17.5409C13.2436 17.5409 14.4382 17.3036 15.5345 16.87L18.3327 19.6682L19.4864 18.5145L4.98 4L3.82636 5.16182ZM9.96273 11.2982L12.0982 13.4336C12.0655 13.4418 12.0327 13.45 12 13.45C10.8709 13.45 9.95455 12.5336 9.95455 11.4045C9.95455 11.3636 9.96273 11.3391 9.96273 11.2982ZM7.18091 8.51636L8.61273 9.94818C8.42455 10.3982 8.31818 10.8891 8.31818 11.4045C8.31818 13.4336 9.97091 15.0864 12 15.0864C12.5155 15.0864 13.0064 14.98 13.4482 14.7918L14.25 15.5936C13.53 15.79 12.7773 15.9045 12 15.9045C8.89909 15.9045 6.13364 14.1618 4.78364 11.4045C5.35636 10.2345 6.19091 9.26909 7.18091 8.51636Z") });
714
- var IconFunnelHorizontal = createIconBase({ paths: p("M19 5L19 8L5 8L5 5L19 5ZM15 10.6L15 13.4L5 13.4L5 10.6L15 10.6ZM11 16.2L11 19L5 19L5 16.2L11 16.2Z") });
715
- var IconFunnelVertical = createIconBase({ paths: p("M5 5H8V19H5V5ZM10.6 9H13.4V19H10.6V9ZM16.2 13H19V19H16.2V13Z") });
716
- var IconFullScreen = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
717
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M5 14H3V20H10V18H5V14Z" }),
718
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M10 6L10 4L3 4L3 10L5 10L5 6L10 6Z" }),
719
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M19 14H21V20H14V18H19V14Z" }),
720
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M14 6L14 4L21 4L21 10L19 10L19 6L14 6Z" })
721
- ] }) });
722
- var IconPauseCircle = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
723
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z" }),
724
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M9.5 8h2v8h-2z" }),
725
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M12.5 8h2v8h-2z" })
726
- ] }) });
727
- var IconSkipBackward = createIconBase({ paths: p("M21.8636 13.6486C22.7745 8.20179 18.9753 3.03539 13.3613 2.08842C10.1083 1.5397 6.96075 2.53504 4.71122 4.52864L3.64727 3.39843C3.52963 3.27464 3.31814 3.33531 3.29323 3.49844L2.61914 7.61871C2.59751 7.7469 2.70624 7.86158 2.83872 7.85097L7.12768 7.57298C7.16635 7.57046 7.20339 7.55738 7.23454 7.53524C7.26569 7.5131 7.28969 7.48281 7.30378 7.44784C7.31787 7.41288 7.32148 7.37466 7.31418 7.33758C7.30689 7.3005 7.289 7.26607 7.26256 7.23825L6.10772 6.01158C6.35345 5.79443 6.6153 5.59014 6.89033 5.40074C7.75239 4.80488 8.72707 4.3786 9.7602 4.14561C10.831 3.90282 11.9307 3.87537 13.0286 4.06056C14.1265 4.24575 15.1564 4.63245 16.0883 5.21303C16.9896 5.77326 17.7628 6.48932 18.3877 7.34012C19.0126 8.19091 19.4575 9.13303 19.7082 10.1413C19.9684 11.1866 20.0076 12.2555 19.828 13.3205C19.6483 14.3854 19.2606 15.3823 18.6724 16.282C18.1048 17.1522 17.3755 17.8963 16.5061 18.495C15.6366 19.0938 14.6714 19.5166 13.6362 19.7502C12.5654 19.993 11.4657 20.0204 10.3678 19.8352C9.26987 19.65 8.23995 19.2633 7.30808 18.6827C6.40854 18.1237 5.62762 17.4013 5.00872 16.5557C4.8493 16.3386 4.70383 16.1163 4.56724 15.8879C4.54048 15.8423 4.49636 15.8085 4.44446 15.7941C4.39256 15.7796 4.3371 15.7856 4.29013 15.8108L2.84288 16.5656C2.74229 16.6196 2.70583 16.7427 2.76244 16.841C4.25318 19.3768 6.85284 21.2731 10.0347 21.8098C15.6538 22.7576 20.9514 19.1029 21.8636 13.6486Z") });
728
- var IconSkipStart = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
729
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M4 6h2v12H4z" }),
730
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M9 12L17 6.5V17.5L9 12Z" })
731
- ] }) });
732
- var IconSkipEnd = createIconBase({ paths: /* @__PURE__ */ jsxs4(Fragment3, { children: [
733
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M18 6h2v12h-2z" }),
734
- /* @__PURE__ */ jsx6("path", { fill: "currentColor", d: "M15 12L7 6.5V17.5L15 12Z" })
735
- ] }) });
736
- var IconDragHandle = createIconBase({ paths: p("m11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z") });
737
- var IconAdsClick = createIconBase({ paths: p("M11.71,17.99C8.53,17.84,6,15.22,6,12c0-3.31,2.69-6,6-6c3.22,0,5.84,2.53,5.99,5.71l-2.1-0.63C15.48,9.31,13.89,8,12,8 c-2.21,0-4,1.79-4,4c0,1.89,1.31,3.48,3.08,3.89L11.71,17.99z M22,12c0,0.3-0.01,0.6-0.04,0.9l-1.97-0.59C20,12.21,20,12.1,20,12 c0-4.42-3.58-8-8-8s-8,3.58-8,8s3.58,8,8,8c0.1,0,0.21,0,0.31-0.01l0.59,1.97C12.6,21.99,12.3,22,12,22C6.48,22,2,17.52,2,12 C2,6.48,6.48,2,12,2S22,6.48,22,12z M18.23,16.26L22,15l-10-3l3,10l1.26-3.77l4.27,4.27l1.98-1.98L18.23,16.26z") });
738
- var IconFingerprint = createIconBase({ viewBox: "1 1 23 23", paths: /* @__PURE__ */ jsx6("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M13.1427 20.9999C10.8077 19.5438 9.25254 16.9522 9.25254 13.9968C9.25254 12.4783 10.4833 11.2476 12.0008 11.2476C13.5184 11.2476 14.7491 12.4783 14.7491 13.9968C14.7491 15.5153 15.9798 16.746 17.4974 16.746C19.0149 16.746 20.2457 15.5153 20.2457 13.9968C20.2457 9.44139 16.5544 5.74922 12.0017 5.74922C7.44907 5.74922 3.75781 9.44139 3.75781 13.9968C3.75781 15.0122 3.87145 16.001 4.08038 16.954M8.49027 20.2989C7.23938 18.5138 6.50351 16.3419 6.50351 13.9968C6.50351 10.9599 8.96405 8.49844 11.9992 8.49844C15.0343 8.49844 17.4948 10.9599 17.4948 13.9968M17.7927 19.4806C17.6937 19.4861 17.5966 19.4953 17.4967 19.4953C14.4616 19.4953 12.0011 17.0338 12.0011 13.9969M19.6734 6.47682C17.7993 4.34802 15.0593 3 12.0004 3C8.94141 3 6.20138 4.34802 4.32734 6.47682" }) });
739
- var IconVerticalAlignCenter = createIconBase({ paths: p("M11.8214 24V17.0667L8.97143 19.8667L8.01091 18.923L12.5 14.5127L16.9891 18.923L16.0286 19.8667L13.1786 17.0667V24H11.8214ZM3 12.6667V11.3333H22V12.6667H3ZM12.5 9.48733L8.01091 5.077L8.97143 4.13333L11.8214 6.93333V0H13.1786V6.93333L16.0286 4.13333L16.9891 5.077L12.5 9.48733Z") });
740
- var IconGhost = createIconBase({ viewBox: "0 0 24 24", paths: p("M12 2C15.5 2 18 5 19 8C22 9 23 11.73 23 14L20.2253 14.7928C19.796 14.9154 19.5 15.3078 19.5 15.7543V17.25C19.5 18.2165 18.7165 19 17.75 19H17.1536C16.4825 19 15.8562 19.3366 15.4858 19.8962C14.5576 21.2987 13.3957 22 12 22C10.6043 22 9.44238 21.2987 8.5142 19.8962C8.14383 19.3366 7.51746 19 6.84636 19H6.25C5.2835 19 4.5 18.2165 4.5 17.25V15.7543C4.5 15.3078 4.20402 14.9154 3.77472 14.7928L1 14C1 11.7337 2 9 5 8C6 5 8.5 2 12 2ZM12 4C9.8906 4 7.93534 5.78788 6.98864 8.37148L6.89737 8.63246L6.58114 9.58114L5.63246 9.89737C4.37721 10.3158 3.56485 11.238 3.20834 12.4564L3.185 12.543L4.32416 12.8697C5.55353 13.221 6.41845 14.3095 6.49454 15.5727L6.5 15.7543V17H6.84636C8.1096 17 9.29359 17.5963 10.0461 18.5996L10.182 18.7925C10.7584 19.6634 11.3162 20 12 20C12.6382 20 13.1667 19.7068 13.7029 18.9596L13.818 18.7925C14.5151 17.739 15.6658 17.0807 16.9178 17.0069L17.1536 17H17.5V15.7543C17.5 14.4757 18.309 13.3451 19.5027 12.9249L19.6758 12.8697L20.815 12.543L20.7918 12.4555C20.4554 11.3047 19.7124 10.4193 18.5728 9.97176L18.3675 9.89737L17.4189 9.58114L17.1026 8.63246C16.1948 5.90906 14.1797 4 12 4ZM12 12C12.8284 12 13.5 13.1193 13.5 14.5C13.5 15.8807 12.8284 17 12 17C11.1716 17 10.5 15.8807 10.5 14.5C10.5 13.1193 11.1716 12 12 12ZM9.5 8C10.3284 8 11 8.67157 11 9.5C11 10.3284 10.3284 11 9.5 11C8.67157 11 8 10.3284 8 9.5C8 8.67157 8.67157 8 9.5 8ZM14.5 8C15.3284 8 16 8.67157 16 9.5C16 10.3284 15.3284 11 14.5 11C13.6716 11 13 10.3284 13 9.5C13 8.67157 13.6716 8 14.5 8Z") });
741
-
742
- // src/components/icons/lemon-brand-icons.tsx
743
- import { Fragment as Fragment4, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
744
- var p2 = (d) => /* @__PURE__ */ jsx7("path", { d, fill: "currentColor" });
745
- var IconGitlab = createIconBase({ paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
746
- /* @__PURE__ */ jsx7("path", { fill: "#E24329", d: "M23.4841 9.51355L23.4507 9.42452L20.2169 0.621934C20.1511 0.449408 20.0346 0.303054 19.8841 0.20387C19.7336 0.106371 19.5579 0.0594128 19.3809 0.0693348C19.204 0.0792569 19.0342 0.145582 18.8945 0.259354C18.7563 0.376393 18.6561 0.534985 18.6074 0.713547L16.4239 7.68129H7.58229L5.39878 0.713547C5.35143 0.534012 5.251 0.374625 5.11178 0.258063C4.97208 0.144291 4.80228 0.0779663 4.62529 0.0680442C4.44831 0.0581222 4.27267 0.105081 4.12208 0.20258C3.97193 0.302164 3.85553 0.44839 3.7893 0.620644L0.5493 9.41935L0.517135 9.50839C0.0516127 10.777 -0.00584844 12.1692 0.353415 13.4748C0.712679 14.7805 1.46919 15.929 2.50889 16.7471L2.52002 16.7561L2.54971 16.7781L7.4759 20.6258L9.91301 22.5497L11.3975 23.7187C11.5712 23.8562 11.7832 23.9307 12.0013 23.9307C12.2193 23.9307 12.4313 23.8562 12.605 23.7187L14.0895 22.5497L16.5266 20.6258L21.4825 16.7548L21.4949 16.7445C22.5322 15.9263 23.287 14.779 23.6457 13.4751C24.0044 12.1711 23.9477 10.781 23.4841 9.51355V9.51355Z" }),
747
- /* @__PURE__ */ jsx7("path", { fill: "#FC6D26", d: "M23.4841 9.51355L23.4507 9.42451C21.875 9.76186 20.3902 10.458 19.1023 11.4632L12 17.0645C14.4186 18.9729 16.5241 20.631 16.5241 20.631L21.48 16.76L21.4924 16.7497C22.5312 15.9315 23.2871 14.7834 23.6464 13.4784C24.0056 12.1734 23.9486 10.7819 23.4841 9.51355Z" }),
748
- /* @__PURE__ */ jsx7("path", { fill: "#FCA326", d: "M7.47589 20.631L9.91301 22.5548L11.3975 23.7239C11.5712 23.8614 11.7832 23.9358 12.0013 23.9358C12.2193 23.9358 12.4313 23.8614 12.605 23.7239L14.0895 22.5548L16.5266 20.631C16.5266 20.631 14.4186 18.9677 12 17.0645C9.58146 18.9677 7.47589 20.631 7.47589 20.631Z" }),
749
- /* @__PURE__ */ jsx7("path", { fill: "#FC6D26", d: "M4.89652 11.4632C3.60966 10.4559 2.12514 9.75798 0.5493 9.41936L0.517135 9.50839C0.0516127 10.777 -0.00584844 12.1692 0.353415 13.4748C0.712679 14.7805 1.46919 15.929 2.50889 16.7471L2.52002 16.7561L2.54971 16.7781L7.4759 20.6258C7.4759 20.6258 9.57899 18.9677 12 17.0594L4.89652 11.4632Z" })
750
- ] }) });
751
- var IconGoogle = createIconBase({ paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
752
- /* @__PURE__ */ jsx7("path", { fill: "#4285F4", d: "M23.52 12.2727C23.52 11.4218 23.4436 10.6036 23.3018 9.81818H12V14.4654H18.4582C18.1745 15.96 17.3236 17.2254 16.0473 18.0764V21.0982H19.9418C22.2109 19.0036 23.52 15.9273 23.52 12.2727V12.2727Z" }),
753
- /* @__PURE__ */ jsx7("path", { fill: "#34A853", d: "M12 24C15.24 24 17.9564 22.9309 19.9418 21.0982L16.0473 18.0764C14.9782 18.7964 13.6145 19.2327 12 19.2327C8.87999 19.2327 6.22908 17.1273 5.27999 14.2909H1.28726V17.3891C3.26181 21.3055 7.30908 24 12 24Z" }),
754
- /* @__PURE__ */ jsx7("path", { fill: "#FBBC05", d: "M5.28 14.28C5.04 13.56 4.89818 12.7964 4.89818 12C4.89818 11.2036 5.04 10.44 5.28 9.72001V6.62183H1.28727C0.469091 8.23637 0 10.0582 0 12C0 13.9418 0.469091 15.7636 1.28727 17.3782L4.39636 14.9564L5.28 14.28Z" }),
755
- /* @__PURE__ */ jsx7("path", { fill: "#EA4335", d: "M12 4.77818C13.7673 4.77818 15.3382 5.38909 16.5927 6.56727L20.0291 3.13091C17.9454 1.18909 15.24 0 12 0C7.30908 0 3.26181 2.69455 1.28726 6.62182L5.27999 9.72C6.22908 6.88364 8.87999 4.77818 12 4.77818Z" })
756
- ] }) });
757
- var IconSlack = createIconBase({ viewBox: "0 0 2447.6 2452.5", paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
758
- /* @__PURE__ */ jsx7("path", { fill: "#36c5f0", fillRule: "evenodd", clipRule: "evenodd", d: "m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z" }),
759
- /* @__PURE__ */ jsx7("path", { fill: "#2eb67d", fillRule: "evenodd", clipRule: "evenodd", d: "m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z" }),
760
- /* @__PURE__ */ jsx7("path", { fill: "#ecb22e", fillRule: "evenodd", clipRule: "evenodd", d: "m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z" }),
761
- /* @__PURE__ */ jsx7("path", { fill: "#e01e5a", fillRule: "evenodd", clipRule: "evenodd", d: "m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0" })
762
- ] }) });
763
- var IconSlackExternal = createIconBase({ viewBox: "-2 -2 24 24", paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
764
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: 1.5, d: "M13 4.75 18.25 10 13 15.25 7.75 10 13 4.75Z" }),
765
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: 1.5, d: "M8.01 5.76 7 4.75 1.75 10 7 15.25l1.01-1.01-2.872-3.037a1.75 1.75 0 0 1 0-2.406L8.01 5.76Z" })
766
- ] }) });
767
- var IconMicrosoftTeams = createIconBase({ paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
768
- /* @__PURE__ */ jsx7("path", { fill: "#5059C9", d: "M19.5 4.5h-3V3a1.5 1.5 0 0 0-1.5-1.5H9A1.5 1.5 0 0 0 7.5 3v1.5h-3A1.5 1.5 0 0 0 3 6v12a1.5 1.5 0 0 0 1.5 1.5h15A1.5 1.5 0 0 0 21 18V6a1.5 1.5 0 0 0-1.5-1.5zM9 3h6v1.5H9V3zm3 15a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z" }),
769
- /* @__PURE__ */ jsx7("circle", { cx: "12", cy: "13.5", r: "3", fill: "#7B83EB" })
770
- ] }) });
771
- var IconChrome = createIconBase({ paths: p2("M12,20L15.46,14H15.45C15.79,13.4 16,12.73 16,12C16,10.8 15.46,9.73 14.62,9H19.41C19.79,9.93 20,10.94 20,12A8,8 0 0,1 12,20M4,12C4,10.54 4.39,9.18 5.07,8L8.54,14H8.55C9.24,15.19 10.5,16 12,16C12.45,16 12.88,15.91 13.29,15.77L10.89,19.91C7,19.37 4,16.04 4,12M15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12M12,4C14.96,4 17.54,5.61 18.92,8H12C10.06,8 8.45,9.38 8.08,11.21L5.7,7.08C7.16,5.21 9.44,4 12,4M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z") });
772
- var IconFirefox = createIconBase({ paths: p2("M9.27 7.94C9.27 7.94 9.27 7.94 9.27 7.94M6.85 6.74C6.86 6.74 6.86 6.74 6.85 6.74M21.28 8.6C20.85 7.55 19.96 6.42 19.27 6.06C19.83 7.17 20.16 8.28 20.29 9.1L20.29 9.12C19.16 6.3 17.24 5.16 15.67 2.68C15.59 2.56 15.5 2.43 15.43 2.3C15.39 2.23 15.36 2.16 15.32 2.09C15.26 1.96 15.2 1.83 15.17 1.69C15.17 1.68 15.16 1.67 15.15 1.67H15.13L15.12 1.67L15.12 1.67L15.12 1.67C12.9 2.97 11.97 5.26 11.74 6.71C11.05 6.75 10.37 6.92 9.75 7.22C9.63 7.27 9.58 7.41 9.62 7.53C9.67 7.67 9.83 7.74 9.96 7.68C10.5 7.42 11.1 7.27 11.7 7.23L11.75 7.23C11.83 7.22 11.92 7.22 12 7.22C12.5 7.21 12.97 7.28 13.44 7.42L13.5 7.44C13.6 7.46 13.67 7.5 13.75 7.5C13.8 7.54 13.86 7.56 13.91 7.58L14.05 7.64C14.12 7.67 14.19 7.7 14.25 7.73C14.28 7.75 14.31 7.76 14.34 7.78C14.41 7.82 14.5 7.85 14.54 7.89C14.58 7.91 14.62 7.94 14.66 7.96C15.39 8.41 16 9.03 16.41 9.77C15.88 9.4 14.92 9.03 14 9.19C17.6 11 16.63 17.19 11.64 16.95C11.2 16.94 10.76 16.85 10.34 16.7C10.24 16.67 10.14 16.63 10.05 16.58C10 16.56 9.93 16.53 9.88 16.5C8.65 15.87 7.64 14.68 7.5 13.23C7.5 13.23 8 11.5 10.83 11.5C11.14 11.5 12 10.64 12.03 10.4C12.03 10.31 10.29 9.62 9.61 8.95C9.24 8.59 9.07 8.42 8.92 8.29C8.84 8.22 8.75 8.16 8.66 8.1C8.43 7.3 8.42 6.45 8.63 5.65C7.6 6.12 6.8 6.86 6.22 7.5H6.22C5.82 7 5.85 5.35 5.87 5C5.86 5 5.57 5.16 5.54 5.18C5.19 5.43 4.86 5.71 4.56 6C4.21 6.37 3.9 6.74 3.62 7.14C3 8.05 2.5 9.09 2.28 10.18C2.28 10.19 2.18 10.59 2.11 11.1L2.08 11.33C2.06 11.5 2.04 11.65 2 11.91L2 11.94L2 12.27L2 12.32C2 17.85 6.5 22.33 12 22.33C16.97 22.33 21.08 18.74 21.88 14C21.9 13.89 21.91 13.76 21.93 13.63C22.13 11.91 21.91 10.11 21.28 8.6Z") });
773
- var IconSafari = createIconBase({ paths: p2("M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.09 4.8,16 6.11,17.41L9.88,9.88L17.41,6.11C16,4.8 14.09,4 12,4M12,20A8,8 0 0,0 20,12C20,9.91 19.2,8 17.89,6.59L14.12,14.12L6.59,17.89C8,19.2 9.91,20 12,20M12,12L11.23,11.23L9.7,14.3L12.77,12.77L12,12M12,17.5H13V19H12V17.5M15.88,15.89L16.59,15.18L17.65,16.24L16.94,16.95L15.88,15.89M17.5,12V11H19V12H17.5M12,6.5H11V5H12V6.5M8.12,8.11L7.41,8.82L6.35,7.76L7.06,7.05L8.12,8.11M6.5,12V13H5V12H6.5Z") });
774
- var IconFacebook = createIconBase({ viewBox: "0 0 24 24", paths: p2("M17 3.5a.5.5 0 00-.5-.5H14a4.77 4.77 0 00-5 4.5v2.7H6.5a.5.5 0 00-.5.5v2.6a.5.5 0 00.5.5H9v6.7a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-6.7h2.62a.5.5 0 00.49-.37l.72-2.6a.5.5 0 00-.48-.63H13V7.5a1 1 0 011-.9h2.5a.5.5 0 00.5-.5V3.5z") });
775
- var Icon123 = createIconBase({ paths: p2("M7,15H5.5v-4.5H4V9h3V15z M13.5,13.5h-3v-1h2c0.55,0,1-0.45,1-1V10c0-0.55-0.45-1-1-1H9v1.5h3v1h-2c-0.55,0-1,0.45-1,1V15 h4.5V13.5z M19.5,14v-4c0-0.55-0.45-1-1-1H15v1.5h3v1h-2v1h2v1h-3V15h3.5C19.05,15,19.5,14.55,19.5,14z") });
776
- var IconNodeJS = createIconBase({ viewBox: "0 0 256 282", paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
777
- /* @__PURE__ */ jsx7("path", { fill: "currentColor", d: "M116.504 3.58c6.962-3.985 16.03-4.003 22.986 0 34.995 19.774 70.001 39.517 104.99 59.303 6.581 3.707 10.983 11.031 10.916 18.614v118.968c.049 7.897-4.788 15.396-11.731 19.019-34.88 19.665-69.742 39.354-104.616 59.019-7.106 4.063-16.356 3.75-23.24-.646-10.457-6.062-20.932-12.094-31.39-18.15-2.137-1.274-4.546-2.288-6.055-4.36 1.334-1.798 3.719-2.022 5.657-2.807 4.365-1.388 8.374-3.616 12.384-5.778 1.014-.694 2.252-.428 3.224.193 8.942 5.127 17.805 10.403 26.777 15.481 1.914 1.105 3.852-.362 5.488-1.274 34.228-19.345 68.498-38.617 102.72-57.968 1.268-.61 1.969-1.956 1.866-3.345.024-39.245.006-78.497.012-117.742.145-1.576-.767-3.025-2.192-3.67-34.759-19.575-69.5-39.18-104.253-58.76a3.621 3.621 0 0 0-4.094-.006C91.2 39.257 56.465 58.88 21.712 78.454c-1.42.646-2.373 2.071-2.204 3.653.006 39.245 0 78.497 0 117.748a3.329 3.329 0 0 0 1.89 3.303c9.274 5.259 18.56 10.481 27.84 15.722 5.228 2.814 11.647 4.486 17.407 2.33 5.083-1.823 8.646-7.01 8.549-12.407.048-39.016-.024-78.038.036-117.048-.127-1.732 1.516-3.163 3.2-3 4.456-.03 8.918-.06 13.374.012 1.86-.042 3.14 1.823 2.91 3.568-.018 39.263.048 78.527-.03 117.79.012 10.464-4.287 21.85-13.966 26.97-11.924 6.177-26.662 4.867-38.442-1.056-10.198-5.09-19.93-11.097-29.947-16.55C5.368 215.886.555 208.357.604 200.466V81.497c-.073-7.74 4.504-15.197 11.29-18.85C46.768 42.966 81.636 23.27 116.504 3.58z" }),
778
- /* @__PURE__ */ jsx7("path", { fill: "currentColor", d: "M146.928 85.99c15.21-.979 31.493-.58 45.18 6.913 10.597 5.742 16.472 17.793 16.659 29.566-.296 1.588-1.956 2.464-3.472 2.355-4.413-.006-8.827.06-13.24-.03-1.872.072-2.96-1.654-3.195-3.309-1.268-5.633-4.34-11.212-9.642-13.929-8.139-4.075-17.576-3.87-26.451-3.785-6.479.344-13.446.905-18.935 4.715-4.214 2.886-5.494 8.712-3.99 13.404 1.418 3.369 5.307 4.456 8.489 5.458 18.33 4.794 37.754 4.317 55.734 10.626 7.444 2.572 14.726 7.572 17.274 15.366 3.333 10.446 1.872 22.932-5.56 31.318-6.027 6.901-14.805 10.657-23.56 12.697-11.647 2.597-23.734 2.663-35.562 1.51-11.122-1.268-22.696-4.19-31.282-11.768-7.342-6.375-10.928-16.308-10.572-25.895.085-1.619 1.697-2.748 3.248-2.615 4.444-.036 8.888-.048 13.332.006 1.775-.127 3.091 1.407 3.182 3.08.82 5.367 2.837 11 7.517 14.182 9.032 5.827 20.365 5.428 30.707 5.591 8.568-.38 18.186-.495 25.178-6.158 3.689-3.23 4.782-8.634 3.785-13.283-1.08-3.925-5.186-5.754-8.712-6.95-18.095-5.724-37.736-3.647-55.656-10.12-7.275-2.571-14.31-7.432-17.105-14.906-3.9-10.578-2.113-23.662 6.098-31.765 8.006-8.06 19.563-11.164 30.551-12.275z" })
779
- ] }) });
780
- var IconStamphog = createIconBase({ paths: /* @__PURE__ */ jsxs5(Fragment4, { children: [
781
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M13.5 7.7 V7.5 A2.5 2.5 0 0 0 11 5 H5.5 A2.5 2.5 0 0 0 3 7.5 V11.5 A2.5 2.5 0 0 0 5.5 14 H8.39" }),
782
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 5V3.6" }),
783
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M6.1 8.4v1.5" }),
784
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M9.9 8.4v1.5" }),
785
- /* @__PURE__ */ jsx7("circle", { cx: "8.25", cy: "2.55", r: "1.05", fill: "currentColor" }),
786
- /* @__PURE__ */ jsx7("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M13 14.9l1.9 1.9 3.6-4.2" })
787
- ] }) });
788
-
789
- // src/components/icons/lemon-category-icons.tsx
790
- import { jsx as jsx8 } from "react/jsx-runtime";
791
- var p3 = (d) => /* @__PURE__ */ jsx8("path", { d, fill: "currentColor" });
792
- var IconPalette = createIconBase({ paths: p3("M12,2C6.49,2,2,6.49,2,12s4.49,10,10,10c1.38,0,2.5-1.12,2.5-2.5c0-0.61-0.23-1.2-0.64-1.67c-0.08-0.1-0.13-0.21-0.13-0.33c0-0.28,0.22-0.5,0.5-0.5H16c3.31,0,6-2.69,6-6C22,6.04,17.51,2,12,2z M17.5,9.5c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5S19,7.17,19,8S18.33,9.5,17.5,9.5z M14.5,7.5C13.67,7.5,13,6.83,13,6s0.67-1.5,1.5-1.5S16,5.17,16,6S15.33,7.5,14.5,7.5z M9.5,7.5C8.67,7.5,8,6.83,8,6s0.67-1.5,1.5-1.5S11,5.17,11,6S10.33,7.5,9.5,7.5z M6.5,9.5C5.67,9.5,5,8.83,5,8s0.67-1.5,1.5-1.5S8,7.17,8,8S7.33,9.5,6.5,9.5z") });
793
- var IconMegaphone = createIconBase({ paths: p3("M20,2V4L4,8V6H2V18H4V16L6.56,16.44C6.19,16.83,6,17.38,6,18C6,19.66,7.34,21,9,21C10.28,21,11.37,20.21,11.8,19H13V16H11.8C11.37,14.79,10.28,14,9,14C8.39,14,7.84,14.19,7.44,14.56L4,13.47V11.18L20,6.18V2M9,16C9.55,16,10,16.45,10,17C10,17.55,9.55,18,9,18C8.45,18,8,17.55,8,17C8,16.45,8.45,16,9,16M20,4.18L4,9.18V11.18L20,6.18V4.18Z") });
794
- var IconMap = createIconBase({ paths: p3("M15,19L9,16.89L5,18.05V5.38L10.12,4.12L15,7.44L20.12,6.12V17.45L15,19M10.12,5.38V15.12L15,17.46V7.44L10.12,5.38Z") });
795
- var IconMapPin = createIconBase({ paths: p3("M12,2C8.13,2,5,5.13,5,9c0,5.25,7,13,7,13s7-7.75,7-13C19,5.13,15.87,2,12,2z M12,11.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,11.5,12,11.5z") });
796
- var IconCoffee = createIconBase({ paths: p3("M2,21V19H20V21H2M20,8V5H18V8H20M20,3C21.1,3,22,3.9,22,5V8C22,9.1,21.1,10,20,10H18V13C18,15.21,16.21,17,14,17H8C5.79,17,4,15.21,4,13V3H20M16,5H6V8H16V5Z") });
797
- var IconBook = createIconBase({ paths: p3("M18,2H6C4.9,2,4,2.9,4,4V20c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M6,4h5v8l-2.5-1.5L6,12V4z") });
798
- var IconCalendar = createIconBase({ paths: p3("M9,10H7v2h2V10z M13,10h-2v2h2V10z M17,10h-2v2h2V10z M19,3h-1V1h-2v2H8V1H6v2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V8h14V19z") });
799
- var IconClock = createIconBase({ paths: p3("M11.99,2C6.47,2,2,6.48,2,12s4.47,10,9.99,10C17.52,22,22,17.52,22,12S17.52,2,11.99,2z M12,20c-4.42,0-8-3.58-8-8s3.58-8,8-8s8,3.58,8,8S16.42,20,12,20z M12.5,7H11v6l5.25,3.15l0.75-1.23l-4.5-2.67V7z") });
800
- var IconGlobe = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M11,19.93c-3.95-0.49-7-3.85-7-7.93c0-0.62,0.08-1.21,0.21-1.79L9,15v1c0,1.1,0.9,2,2,2V19.93z M17.9,17.39c-0.26-0.81-1-1.39-1.9-1.39h-1v-3c0-0.55-0.45-1-1-1H8v-2h2c0.55,0,1-0.45,1-1V7h2c1.1,0,2-0.9,2-2v-0.41C17.92,5.77,20,8.65,20,12C20,14.08,19.2,15.97,17.9,17.39z") });
801
- var IconCloud = createIconBase({ paths: p3("M19.35,10.04C18.67,6.59,15.64,4,12,4C9.11,4,6.6,5.64,5.35,8.04C2.34,8.36,0,10.91,0,14c0,3.31,2.69,6,6,6h13c2.76,0,5-2.24,5-5C24,12.36,21.95,10.29,19.35,10.04z") });
802
- var IconBug = createIconBase({ paths: p3("M20,8h-2.81c-0.45-0.78-1.07-1.45-1.82-1.96L17,4.41L15.59,3l-2.17,2.17C12.96,5.06,12.49,5,12,5S11.04,5.06,10.59,5.17L8.41,3L7,4.41l1.62,1.63C7.88,6.55,7.26,7.22,6.81,8H4v2h2.09c-0.05,0.33-0.09,0.66-0.09,1v1H4v2h2v1c0,0.34,0.04,0.67,0.09,1H4v2h2.81C7.85,19.79,9.78,21,12,21s4.15-1.21,5.19-3H20v-2h-2.09c0.05-0.33,0.09-0.66,0.09-1v-1h2v-2h-2v-1c0-0.34-0.04-0.67-0.09-1H20V8z M14,16h-4v-2h4V16z M14,12h-4v-2h4V12z") });
803
- var IconCrown = createIconBase({ paths: p3("M12,2L15,7H9L12,2z M17,7L14,2l3,5z M7,7L10,2L7,7z M5,20l2-8h10l2,8H5z") });
804
- var IconConfetti = createIconBase({ paths: p3("M14.5,2C13.67,2,13,2.67,13,3.5S13.67,5,14.5,5S16,4.33,16,3.5S15.33,2,14.5,2z M6.5,5C5.67,5,5,5.67,5,6.5S5.67,8,6.5,8S8,7.33,8,6.5S7.33,5,6.5,5z M3,12c0-0.83,0.67-1.5,1.5-1.5S6,11.17,6,12c0,0.83-0.67,1.5-1.5,1.5S3,12.83,3,12z M9.5,8C8.67,8,8,8.67,8,9.5S8.67,11,9.5,11S11,10.33,11,9.5S10.33,8,9.5,8z M7,15c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S8.66,15,7,15z M18,13c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S19.66,13,18,13z M15,7c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S16.66,7,15,7z") });
805
- var IconLightBulb = createIconBase({ paths: p3("M9,21c0,0.55,0.45,1,1,1h4c0.55,0,1-0.45,1-1v-1H9V21z M12,2C8.14,2,5,5.14,5,9c0,2.38,1.19,4.47,3,5.74V17c0,0.55,0.45,1,1,1h6c0.55,0,1-0.45,1-1v-2.26c1.81-1.27,3-3.36,3-5.74C19,5.14,15.86,2,12,2z M14,14h-4v-2h4V14z") });
806
- var IconHourglass = createIconBase({ paths: p3("M6,2H18V6H6V2z M6,18H18v4H6V18z M16.5,12c0-1.47-0.91-2.84-2.3-3.5L14,8.5V6h-4v2.5l-0.2,0.1C7.91,9.16,7,10.53,7,12s0.91,2.84,2.3,3.5L10,15.5V18h4v-2.5l0.2-0.1C15.59,14.84,16.5,13.47,16.5,12z") });
807
- var IconStore = createIconBase({ paths: p3("M20,4H4V2H20V4z M21,9H3l-1,4h0.44l1.22,5H19.34l1.22-5H22L21,9z M6,16c-1.1,0-2-0.9-2-2h4C8,15.1,7.1,16,6,16z M18,16c-1.1,0-2-0.9-2-2h4C20,15.1,19.1,16,18,16z") });
808
- var IconCart = createIconBase({ paths: p3("M7,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S8.1,18,7,18z M1,2v2h2l3.6,7.59L5.25,14H19v-2H7.42l0.94-2H17l3-6H5.21L4.27,2H1z M17,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S18.1,18,17,18z") });
809
- var IconEye = createIconBase({ paths: p3("M12,4.5C7,4.5,2.73,7.61,1,12c1.73,4.39,6,7.5,11,7.5s9.27-3.11,11-7.5C21.27,7.61,17,4.5,12,4.5z M12,17c-2.76,0-5-2.24-5-5s2.24-5,5-5s5,2.24,5,5S14.76,17,12,17z M12,9c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S13.66,9,12,9z") });
810
- var IconPeople = createIconBase({ paths: p3("M16,11c1.66,0,2.99-1.34,2.99-3S17.66,5,16,5c-1.66,0-3,1.34-3,3S14.34,11,16,11z M8,11c1.66,0,2.99-1.34,2.99-3S9.66,5,8,5C6.34,5,5,6.34,5,8S6.34,11,8,11z M8,13c-2.33,0-7,1.17-7,3.5V19h14v-2.5C15,14.17,10.33,13,8,13z M16,13c-0.29,0-0.62,0.02-0.97,0.05c1.16,0.84,1.97,1.97,1.97,3.45V19h6v-2.5C23,14.17,18.33,13,16,13z") });
811
- var IconGroups = createIconBase({ paths: p3("M12,12.75c1.63,0,3.07,0.39,4.24,0.9c1.08,0.48,1.76,1.56,1.76,2.73V18H6v-1.61c0-1.18,0.68-2.26,1.76-2.73C8.93,13.14,10.37,12.75,12,12.75z M4,13c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S2.9,13,4,13z M5.13,14.1C4.76,14.04,4.39,14,4,14c-0.99,0-1.93,0.21-2.78,0.58C0.48,14.9,0,15.62,0,16.43V18h4.5v-1.61C4.5,15.56,4.73,14.78,5.13,14.1z M20,13c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S18.9,13,20,13z M24,16.43c0-0.81-0.48-1.53-1.22-1.85C21.93,14.21,20.99,14,20,14c-0.39,0-0.76,0.04-1.13,0.1c0.4,0.68,0.63,1.46,0.63,2.29V18H24V16.43z M12,6c1.66,0,3,1.34,3,3s-1.34,3-3,3s-3-1.34-3-3S10.34,6,12,6z") });
812
- var IconDocument = createIconBase({ paths: p3("M14,2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8L14,2z M6,20V4h7v5h5v11H6z") });
813
- var IconAI = createIconBase({ paths: p3("M21 11c0 4.97-4.03 9-9 9s-9-4.03-9-9s4.03-9 9-9s9 4.03 9 9z M12 7v4l3 2M9 13h6M9 16h6M12 4v2M12 18v2M6.5 6.5l1 1M16.5 16.5l1 1M4 12h2M18 12h2M6.5 17.5l1-1M16.5 7.5l1-1") });
814
- var IconArchive = createIconBase({ paths: p3("M21,3H3v6h1.73L5,20h14l1.27-11H21V3z M19,4v2H5V4H19z M17.17,10l-0.91,8H7.74l-0.91-8H17.17z M10,12h4v2h-4V12z") });
815
- var IconAtSign = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10h5v-2h-5c-4.34,0-8-3.66-8-8s3.66-8,8-8s8,3.66,8,8v1.43c0,0.79-0.71,1.57-1.5,1.57s-1.5-0.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5,2.24-5,5s2.24,5,5,5c1.38,0,2.64-0.56,3.54-1.47c0.65,0.89,1.77,1.47,2.96,1.47c1.97,0,3.5-1.6,3.5-3.57V12C22,6.48,17.52,2,12,2z M12,15c-1.66,0-3-1.34-3-3s1.34-3,3-3s3,1.34,3,3S13.66,15,12,15z") });
816
- var IconBadge = createIconBase({ paths: p3("M12,2L15,7H9L12,2z M17,7L14,2l3,5z M7,7L10,2L7,7z M5,20l2-8h10l2,8H5z") });
817
- var IconBinary = createIconBase({ paths: p3("M8,4h4v16H8V4z M12,4h1v16h-1V4z M3,8h1v12H3V8z M20,8h1v12h-1V8z M6,4h2v2H6V4z M16,4h2v2h-2V4z M4,4h2v2H4V4z M18,4h2v2h-2V4z") });
818
- var IconGear = createIconBase({ paths: p3("M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z") });
819
- var IconCalendarDay = createIconBase({ paths: p3("M19,3h-1V1h-2v2H8V1H6v2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V8h14V19z M7,10h5v5H7V10z") });
820
- var IconChat = createIconBase({ paths: p3("M20,2H4C2.9,2,2,2.9,2,4v18l4-4h14c1.1,0,2-0.9,2-2V4C22,2.9,21.1,2,20,2z M6,9h12v2H6V9z M10,13h8v2h-8V13z M6,5h12v2H6V5z") });
821
- var IconCheckboxChecked = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z M17.99,9l-1.41-1.42L10,14.17l-2.59-2.58L6,13l4,4L17.99,9z") });
822
- var IconDownloadCloud = createIconBase({ paths: p3("M19.35,10.04C18.67,6.59,15.64,4,12,4C9.11,4,6.6,5.64,5.35,8.04C2.34,8.36,0,10.91,0,14c0,3.31,2.69,6,6,6h13c2.76,0,5-2.24,5-5C24,12.36,21.95,10.29,19.35,10.04z M17,13l-5,5l-5-5h3V9h4v4H17z") });
823
- var IconExternalLink = createIconBase({ paths: p3("M19,19H5V5h7V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2v-7h-2V19z M14,3v2h3.59l-9.83,9.83l1.41,1.41L19,6.41V10h2V3H14z") });
824
- var IconFile = createIconBase({ paths: p3("M14,2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8L14,2z M6,20V4h7v5h5v11H6z") });
825
- var IconFilter = createIconBase({ paths: p3("M10,18h4v-2h-4V18z M3,6v2h18V6H3z M6,13h12v-2H6V13z") });
826
- var IconFolder = createIconBase({ paths: p3("M10,4H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8c0-1.1-0.9-2-2-2h-8L10,4z") });
827
- var IconForward = createIconBase({ paths: p3("M12,8V4l8,8l-8,8v-4H4V8H12z") });
828
- var IconHash = createIconBase({ paths: p3("M19.21,12.26l-0.45,1.74h-4.47l-0.89,3.74H11.9l0.89-3.74H8.21L7.32,17.74H5.42l0.89-3.74H2v-1.74h4.76L7.65,10.5H3.5V8.76h4.59l0.89-3.74h1.91L10,8.76h4.47l0.89-3.74h1.91L16.38,8.76H20v1.74h-4.06l-0.45,1.76H20v1.74H19.21z M15.09,10.5l-0.45,1.74h-4.47l0.45-1.74H15.09z") });
829
- var IconHeadphones = createIconBase({ paths: p3("M12,2C7.03,2,3,6.03,3,11v4c0,1.1,0.9,2,2,2h2v-6H5v-1c0-3.87,3.13-7,7-7s7,3.13,7,7v1h-2v6h2c1.1,0,2-0.9,2-2v-4C21,6.03,16.97,2,12,2z") });
830
- var IconHeart = createIconBase({ paths: p3("M12,21.35l-1.45-1.32C5.4,15.36,2,12.28,2,8.5C2,5.42,4.42,3,7.5,3c1.74,0,3.41,0.81,4.5,2.09C13.09,3.81,14.76,3,16.5,3C19.58,3,22,5.42,22,8.5c0,3.78-3.4,6.86-8.55,11.54L12,21.35z") });
831
- var IconHomeFilled = createIconBase({ paths: p3("M10,20v-6h4v6h5v-8h3L12,3L2,12h3v8H10z") });
832
- var IconImage = createIconBase({ paths: p3("M21,19V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14C20.1,21,21,20.1,21,19z M8.5,13.5l2.5,3.01L14.5,12l4.5,6H5L8.5,13.5z") });
833
- var IconInbox = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,15h-4c0,1.66-1.34,3-3,3s-3-1.34-3-3H5V5h14V15z") });
834
- var IconInfoFilled = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M13,17h-2v-6h2V17z M13,9h-2V7h2V9z") });
835
- var IconKeyFilled = createIconBase({ paths: p3("M12.65,10C11.83,7.67,9.61,6,7,6c-3.31,0-6,2.69-6,6s2.69,6,6,6c2.61,0,4.83-1.67,5.65-4H17v4h4v-4h2v-4H12.65z M7,14c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S8.1,14,7,14z") });
836
- var IconLaptop = createIconBase({ paths: p3("M20,18c1.1,0,2-0.9,2-2V6c0-1.1-0.9-2-2-2H4C2.9,4,2,4.9,2,6v10c0,1.1,0.9,2,2,2H0v2h24v-2H20z M4,6h16v10H4V6z") });
837
- var IconLayout = createIconBase({ paths: p3("M21,3H3C1.9,3,1,3.9,1,5v14c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V5C23,3.9,22.1,3,21,3z M8,5v14H3V5H8z M10,5h11v14H10V5z") });
838
- var IconLifeBuoy = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,15c-1.66,0-3-1.34-3-3s1.34-3,3-3s3,1.34,3,3S13.66,15,12,15z M19.93,11h-2.14c-0.16-1.06-0.6-2.02-1.24-2.82l1.52-1.52C18.69,7.94,19.65,9.38,19.93,11z M7.45,8.18l1.52,1.52C8.34,10.49,7.9,11.45,7.74,12.5H5.57C5.86,10.84,6.5,9.41,7.45,8.18z M5.07,13h2.14c0.16,1.06,0.6,2.02,1.24,2.82l-1.52,1.52C5.31,16.06,4.35,14.62,4.07,13z M16.55,17.82l-1.52-1.52c0.64-0.8,1.08-1.76,1.24-2.82h2.14C18.14,15.16,17.5,16.59,16.55,17.82z") });
839
- var IconLinkBreak = createIconBase({ paths: p3("M17,7h-4v2h4c1.65,0,3,1.35,3,3s-1.35,3-3,3h-4v2h4c2.76,0,5-2.24,5-5S19.76,7,17,7z M11,15H7c-1.65,0-3-1.35-3-3s1.35-3,3-3h4V7H7c-2.76,0-5,2.24-5,5s2.24,5,5,5h4V15z M14,11H6v2h8V11z") });
840
- var IconLocation = createIconBase({ paths: p3("M12,2C8.13,2,5,5.13,5,9c0,5.25,7,13,7,13s7-7.75,7-13C19,5.13,15.87,2,12,2z M12,11.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,11.5,12,11.5z") });
841
- var IconLock = createIconBase({ paths: p3("M18,8h-1V6c0-2.76-2.24-5-5-5S7,3.24,7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.71,1.39-3.1,3.1-3.1s3.1,1.39,3.1,3.1V8z") });
842
- var IconMaximize = createIconBase({ paths: p3("M3,3h8v2H5v6H3V3z M13,3h8v8h-2V5h-6V3z M3,13h2v6h6v2H3V13z M19,13v6h-6v2h8v-8H19z") });
843
- var IconMic = createIconBase({ paths: p3("M12,14c1.66,0,3-1.34,3-3V5c0-1.66-1.34-3-3-3S9,3.34,9,5v6C9,12.66,10.34,14,12,14z M17,11c0,2.76-2.24,5-5,5s-5-2.24-5-5H5c0,3.53,2.61,6.43,6,6.92V21h2v-3.08c3.39-0.49,6-3.39,6-6.92H17z") });
844
- var IconMinimize = createIconBase({ paths: p3("M6,19h5v-2H7v-4H5v5C5,18.1,5.9,19,6,19z M19,5h-5v2h4v4h2V6C20,5.9,19.1,5,19,5z M5,10h2v4h4v2H5V10z M13,13h2v-4h4V7h-6V13z") });
845
- var IconMinus = createIconBase({ paths: p3("M19,13H5v-2h14V13z") });
846
- var IconMoonFilled = createIconBase({ paths: p3("M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3z") });
847
- var IconMoreHorizontal = createIconBase({ paths: p3("M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S7.1,10,6,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.1,10,18,10z") });
848
- var IconMoreVertical = createIconBase({ paths: p3("M12,8c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S10.9,8,12,8z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M12,16c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,16,12,16z") });
849
- var IconMusic = createIconBase({ paths: p3("M12,3v10.55c-0.59-0.34-1.27-0.55-2-0.55C7.79,13,6,14.79,6,17s1.79,4,4,4s4-1.79,4-4V7h4V3H12z") });
850
- var IconNavigation = createIconBase({ paths: p3("M12,2L4.5,20.29l0.71,0.71L12,18l6.79,3l0.71-0.71L12,2z") });
851
- var IconPaperclip = createIconBase({ paths: p3("M16.5,6v11.5c0,2.21-1.79,4-4,4s-4-1.79-4-4V5c0-1.38,1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5v10.5c0,0.55-0.45,1-1,1s-1-0.45-1-1V6H10v9.5c0,1.38,1.12,2.5,2.5,2.5s2.5-1.12,2.5-2.5V5c0-2.21-1.79-4-4-4S7,2.79,7,5v12.5c0,3.04,2.46,5.5,5.5,5.5s5.5-2.46,5.5-5.5V6H16.5z") });
852
- var IconPercent = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M7.5,9C6.67,9,6,8.33,6,7.5S6.67,6,7.5,6S9,6.67,9,7.5S8.33,9,7.5,9z M6,16.5l9-9l1.5,1.5l-9,9L6,16.5z M16.5,18c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S17.33,18,16.5,18z") });
853
- var IconPhone = createIconBase({ paths: p3("M6.62,10.79c1.44,2.83,3.76,5.14,6.59,6.59l2.2-2.2c0.27-0.27,0.67-0.36,1.02-0.24c1.12,0.37,2.33,0.57,3.57,0.57c0.55,0,1,0.45,1,1V20c0,0.55-0.45,1-1,1c-9.39,0-17-7.61-17-17c0-0.55,0.45-1,1-1h3.5c0.55,0,1,0.45,1,1c0,1.25,0.2,2.45,0.57,3.57C5.1,9.04,5.01,9.44,4.74,9.71L6.62,10.79z") });
854
- var IconPin = createIconBase({ paths: p3("M16,9V4l1-1V2H7v1l1,1v5c-2.21,1.58-3,4.06-3,7h5v7l1,1l1-1v-7h5C16,13.06,15.21,11.58,14,9z") });
855
- var IconPrinter = createIconBase({ paths: p3("M19,8H5c-1.66,0-3,1.34-3,3v6h4v4h12v-4h4v-6C22,9.34,20.66,8,19,8z M16,19H8v-5h8V19z M19,12c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S19.55,12,19,12z M18,3H6v4h12V3z") });
856
- var IconRedo = createIconBase({ paths: p3("M18.4,10.6C16.55,8.99,14.15,8,11.5,8c-4.65,0-8.58,3.03-9.96,7.22L3.9,16c1.05-3.19,4.05-5.5,7.6-5.5c1.95,0,3.73,0.72,5.12,1.88L13,16h9V7L18.4,10.6z") });
857
- var IconRefresh = createIconBase({ paths: p3("M17.65,6.35C16.2,4.9,14.21,4,12,4c-4.42,0-7.99,3.58-7.99,8s3.57,8,7.99,8c3.73,0,6.84-2.55,7.73-6h-2.08C16.92,17.28,14.67,19,12,19c-3.86,0-7-3.14-7-7s3.14-7,7-7c1.93,0,3.68,0.79,4.95,2.05L14,10h7V3L17.65,6.35z") });
858
- var IconReply = createIconBase({ paths: p3("M10,9V5l-7,7l7,7v-4.1c5,0,8.5,1.6,11,5.1c-1-5-4-10-11-11z") });
859
- var IconReport = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9,17H7v-7h2V17z M13,17h-2V7h2V17z M17,17h-2v-4h2V17z") });
860
-
861
657
  // src/components/ui/Alert.tsx
862
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
658
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
863
659
  var statusConfig = {
864
660
  info: { icon: IconInfo },
865
661
  success: { icon: IconCheckCircle },
@@ -898,7 +694,7 @@ var Alert = forwardRef5(function Alert2(_a, ref) {
898
694
  ]);
899
695
  const config = statusConfig[status];
900
696
  const Icon = config.icon;
901
- return /* @__PURE__ */ jsxs6(
697
+ return /* @__PURE__ */ jsxs4(
902
698
  "div",
903
699
  __spreadProps(__spreadValues({
904
700
  ref,
@@ -907,20 +703,20 @@ var Alert = forwardRef5(function Alert2(_a, ref) {
907
703
  className: cn("ph-alert", statusClassMap[status], className)
908
704
  }, props), {
909
705
  children: [
910
- icon != null ? icon : /* @__PURE__ */ jsx9(Icon, { className: "ph-alert-icon mt-0.5 h-5 w-5 shrink-0", "aria-hidden": true }),
911
- /* @__PURE__ */ jsxs6("div", { className: "min-w-0 flex-1", children: [
912
- title && /* @__PURE__ */ jsx9("p", { className: "font-semibold", children: title }),
913
- description && /* @__PURE__ */ jsx9("p", { className: "mt-1 text-sm text-ph-subtle", children: description }),
706
+ icon != null ? icon : /* @__PURE__ */ jsx6(Icon, { className: "ph-alert-icon mt-0.5 h-5 w-5 shrink-0", "aria-hidden": true }),
707
+ /* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
708
+ title && /* @__PURE__ */ jsx6("p", { className: "font-semibold", children: title }),
709
+ description && /* @__PURE__ */ jsx6("p", { className: "mt-1 text-sm text-ph-subtle", children: description }),
914
710
  children
915
711
  ] }),
916
- onDismiss && /* @__PURE__ */ jsx9(
712
+ onDismiss && /* @__PURE__ */ jsx6(
917
713
  "button",
918
714
  {
919
715
  type: "button",
920
716
  onClick: onDismiss,
921
717
  className: "ph-alert-dismiss",
922
718
  "aria-label": dismissLabel,
923
- children: /* @__PURE__ */ jsx9(IconClose, { className: "h-4 w-4", "aria-hidden": true })
719
+ children: /* @__PURE__ */ jsx6(IconClose, { className: "h-4 w-4", "aria-hidden": true })
924
720
  }
925
721
  )
926
722
  ]
@@ -931,7 +727,7 @@ Alert.displayName = "Alert";
931
727
 
932
728
  // src/components/ui/Badge.tsx
933
729
  import { forwardRef as forwardRef6 } from "react";
934
- import { jsx as jsx10 } from "react/jsx-runtime";
730
+ import { jsx as jsx7 } from "react/jsx-runtime";
935
731
  var variantMap = {
936
732
  brand: "ph-badge-brand",
937
733
  neutral: "ph-badge-neutral",
@@ -957,7 +753,7 @@ var Badge = forwardRef6(function Badge2(_a, ref) {
957
753
  "children",
958
754
  "className"
959
755
  ]);
960
- return /* @__PURE__ */ jsx10(
756
+ return /* @__PURE__ */ jsx7(
961
757
  "span",
962
758
  __spreadProps(__spreadValues({
963
759
  ref,
@@ -976,7 +772,7 @@ Badge.displayName = "Badge";
976
772
 
977
773
  // src/components/ui/Card.tsx
978
774
  import { forwardRef as forwardRef7 } from "react";
979
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
775
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
980
776
  var variantMap2 = {
981
777
  default: "",
982
778
  outlined: "border-2 border-ph-border",
@@ -1009,7 +805,7 @@ var Card = forwardRef7(function Card2(_a, ref) {
1009
805
  "interactive",
1010
806
  "titleAs"
1011
807
  ]);
1012
- return /* @__PURE__ */ jsxs7(
808
+ return /* @__PURE__ */ jsxs5(
1013
809
  "div",
1014
810
  __spreadProps(__spreadValues({
1015
811
  ref,
@@ -1021,14 +817,14 @@ var Card = forwardRef7(function Card2(_a, ref) {
1021
817
  )
1022
818
  }, props), {
1023
819
  children: [
1024
- media && /* @__PURE__ */ jsx11("div", { className: "ph-card-media", children: media }),
1025
- /* @__PURE__ */ jsxs7("div", { className: cn("ph-card-body", bodyClassName), children: [
1026
- title && /* @__PURE__ */ jsx11(Title2, { className: "ph-card-title", children: title }),
1027
- description && /* @__PURE__ */ jsx11("p", { className: "text-sm text-ph-subtle", children: description }),
820
+ media && /* @__PURE__ */ jsx8("div", { className: "ph-card-media", children: media }),
821
+ /* @__PURE__ */ jsxs5("div", { className: cn("ph-card-body", bodyClassName), children: [
822
+ title && /* @__PURE__ */ jsx8(Title2, { className: "ph-card-title", children: title }),
823
+ description && /* @__PURE__ */ jsx8("p", { className: "text-sm text-ph-subtle", children: description }),
1028
824
  children,
1029
- actions && /* @__PURE__ */ jsx11("div", { className: "ph-card-actions", children: actions })
825
+ actions && /* @__PURE__ */ jsx8("div", { className: "ph-card-actions", children: actions })
1030
826
  ] }),
1031
- footer && /* @__PURE__ */ jsx11("div", { className: "border-t border-ph-border px-6 py-4 text-xs text-ph-subtle", children: footer })
827
+ footer && /* @__PURE__ */ jsx8("div", { className: "border-t border-ph-border px-6 py-4 text-xs text-ph-subtle", children: footer })
1032
828
  ]
1033
829
  })
1034
830
  );
@@ -1036,7 +832,7 @@ var Card = forwardRef7(function Card2(_a, ref) {
1036
832
  Card.displayName = "Card";
1037
833
 
1038
834
  // src/components/ui/Drawer.tsx
1039
- import { Fragment as Fragment5, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
835
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
1040
836
  var sideMap = {
1041
837
  left: "left-0 border-r",
1042
838
  right: "right-0 border-l"
@@ -1058,9 +854,9 @@ function Drawer({
1058
854
  showCloseButton = true
1059
855
  }) {
1060
856
  if (!open) return null;
1061
- return /* @__PURE__ */ jsxs8(Fragment5, { children: [
1062
- /* @__PURE__ */ jsx12("div", { className: "fixed inset-0 z-[120] bg-black/45 backdrop-blur-[2px]", role: "presentation", onClick: onClose }),
1063
- /* @__PURE__ */ jsxs8(
857
+ return /* @__PURE__ */ jsxs6(Fragment3, { children: [
858
+ /* @__PURE__ */ jsx9("div", { className: "fixed inset-0 z-[120] bg-black/45 backdrop-blur-[2px]", role: "presentation", onClick: onClose }),
859
+ /* @__PURE__ */ jsxs6(
1064
860
  "aside",
1065
861
  {
1066
862
  className: cn(
@@ -1070,12 +866,12 @@ function Drawer({
1070
866
  className
1071
867
  ),
1072
868
  children: [
1073
- (title || showCloseButton) && /* @__PURE__ */ jsxs8("header", { className: "flex items-center justify-between border-b border-ph-border px-4 py-3", children: [
1074
- /* @__PURE__ */ jsx12("span", { className: "text-sm font-bold text-ph-ink", children: title }),
1075
- showCloseButton && onClose && /* @__PURE__ */ jsx12(Button, { variant: "ghost", className: "ph-btn-circle", onClick: onClose, "aria-label": "Close drawer", children: /* @__PURE__ */ jsx12(IconClose, { className: "h-5 w-5" }) })
869
+ (title || showCloseButton) && /* @__PURE__ */ jsxs6("header", { className: "flex items-center justify-between border-b border-ph-border px-4 py-3", children: [
870
+ /* @__PURE__ */ jsx9("span", { className: "text-sm font-bold text-ph-ink", children: title }),
871
+ showCloseButton && onClose && /* @__PURE__ */ jsx9(Button, { variant: "ghost", className: "ph-btn-circle", onClick: onClose, "aria-label": "Close drawer", children: /* @__PURE__ */ jsx9(IconClose, { className: "h-5 w-5" }) })
1076
872
  ] }),
1077
- /* @__PURE__ */ jsx12("div", { className: "flex-1", children }),
1078
- footer && /* @__PURE__ */ jsx12("footer", { className: "border-t border-ph-border px-4 py-3", children: footer })
873
+ /* @__PURE__ */ jsx9("div", { className: "flex-1", children }),
874
+ footer && /* @__PURE__ */ jsx9("footer", { className: "border-t border-ph-border px-4 py-3", children: footer })
1079
875
  ]
1080
876
  }
1081
877
  )
@@ -1083,7 +879,7 @@ function Drawer({
1083
879
  }
1084
880
 
1085
881
  // src/components/ui/Kbd.tsx
1086
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
882
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
1087
883
  var platformLabels = {
1088
884
  text: {
1089
885
  command: "Command",
@@ -1142,17 +938,17 @@ function Kbd(_a) {
1142
938
  "aria-label"
1143
939
  ]);
1144
940
  if (variant === "token") {
1145
- return /* @__PURE__ */ jsx13("code", __spreadProps(__spreadValues({ className: cn("ph-code-token ph-kbd", className), "aria-label": ariaLabel }, props), { children }));
941
+ return /* @__PURE__ */ jsx10("code", __spreadProps(__spreadValues({ className: cn("ph-code-token ph-kbd", className), "aria-label": ariaLabel }, props), { children }));
1146
942
  }
1147
943
  const sourceKeys = (keys == null ? void 0 : keys.length) ? keys : children != null ? [children] : [];
1148
944
  const displayKeys = sourceKeys.map((key) => formatKey(key, platform));
1149
945
  const accessibleLabel = ariaLabel != null ? ariaLabel : getShortcutLabel(displayKeys);
1150
946
  if (variant === "key") {
1151
- return /* @__PURE__ */ jsx13("kbd", __spreadProps(__spreadValues({ className: cn("ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys[0] }));
947
+ return /* @__PURE__ */ jsx10("kbd", __spreadProps(__spreadValues({ className: cn("ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys[0] }));
1152
948
  }
1153
- return /* @__PURE__ */ jsx13("kbd", __spreadProps(__spreadValues({ className: cn("ph-shortcut-group ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys.map((key, index) => /* @__PURE__ */ jsxs9("span", { className: "contents", children: [
1154
- index > 0 && separator != null ? /* @__PURE__ */ jsx13("span", { className: "ph-shortcut-separator", "aria-hidden": "true", children: separator }) : null,
1155
- /* @__PURE__ */ jsx13("span", { className: "ph-shortcut-key", "aria-hidden": accessibleLabel ? true : void 0, children: key })
949
+ return /* @__PURE__ */ jsx10("kbd", __spreadProps(__spreadValues({ className: cn("ph-shortcut-group ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys.map((key, index) => /* @__PURE__ */ jsxs7("span", { className: "contents", children: [
950
+ index > 0 && separator != null ? /* @__PURE__ */ jsx10("span", { className: "ph-shortcut-separator", "aria-hidden": "true", children: separator }) : null,
951
+ /* @__PURE__ */ jsx10("span", { className: "ph-shortcut-key", "aria-hidden": accessibleLabel ? true : void 0, children: key })
1156
952
  ] }, index)) }));
1157
953
  }
1158
954
  function formatKey(key, platform) {
@@ -1171,7 +967,7 @@ function getShortcutLabel(keys) {
1171
967
  }
1172
968
 
1173
969
  // src/components/ui/Loader.tsx
1174
- import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
970
+ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
1175
971
  var loaderSizeClass = {
1176
972
  sm: "ph-loader-sm",
1177
973
  md: "ph-loader-md",
@@ -1197,7 +993,7 @@ function Loader(_a) {
1197
993
  "label",
1198
994
  "className"
1199
995
  ]);
1200
- return /* @__PURE__ */ jsxs10(
996
+ return /* @__PURE__ */ jsxs8(
1201
997
  "span",
1202
998
  __spreadProps(__spreadValues({
1203
999
  role: "status",
@@ -1205,20 +1001,20 @@ function Loader(_a) {
1205
1001
  className: cn("ph-loader", loaderSizeClass[size], className)
1206
1002
  }, props), {
1207
1003
  children: [
1208
- variant === "spinner" ? /* @__PURE__ */ jsx14("span", { className: "ph-loading", "aria-hidden": true }) : null,
1209
- variant === "dots" ? /* @__PURE__ */ jsxs10("span", { className: "ph-loading-dots", "aria-hidden": true, children: [
1210
- /* @__PURE__ */ jsx14("span", {}),
1211
- /* @__PURE__ */ jsx14("span", {}),
1212
- /* @__PURE__ */ jsx14("span", {})
1004
+ variant === "spinner" ? /* @__PURE__ */ jsx11("span", { className: "ph-loading", "aria-hidden": true }) : null,
1005
+ variant === "dots" ? /* @__PURE__ */ jsxs8("span", { className: "ph-loading-dots", "aria-hidden": true, children: [
1006
+ /* @__PURE__ */ jsx11("span", {}),
1007
+ /* @__PURE__ */ jsx11("span", {}),
1008
+ /* @__PURE__ */ jsx11("span", {})
1213
1009
  ] }) : null,
1214
- variant === "pulse" ? /* @__PURE__ */ jsx14("span", { className: "ph-loading-pulse", "aria-hidden": true }) : null
1010
+ variant === "pulse" ? /* @__PURE__ */ jsx11("span", { className: "ph-loading-pulse", "aria-hidden": true }) : null
1215
1011
  ]
1216
1012
  })
1217
1013
  );
1218
1014
  }
1219
1015
  function Skeleton(_a) {
1220
1016
  var _b = _a, { shape = "text", className } = _b, props = __objRest(_b, ["shape", "className"]);
1221
- return /* @__PURE__ */ jsx14(
1017
+ return /* @__PURE__ */ jsx11(
1222
1018
  "span",
1223
1019
  __spreadValues({
1224
1020
  className: cn("ph-skeleton", skeletonShapeClass[shape], className),
@@ -1242,62 +1038,62 @@ function LoadingState(_a) {
1242
1038
  "size",
1243
1039
  "className"
1244
1040
  ]);
1245
- return /* @__PURE__ */ jsxs10("div", __spreadProps(__spreadValues({ className: cn("ph-loading-state", className), role: "status", "aria-label": label }, props), { children: [
1246
- /* @__PURE__ */ jsx14(Loader, { variant, size, label, "aria-hidden": "true" }),
1247
- /* @__PURE__ */ jsxs10("div", { className: "ph-loading-state__copy", children: [
1248
- /* @__PURE__ */ jsx14("strong", { children: title }),
1249
- description ? /* @__PURE__ */ jsx14("span", { children: description }) : null
1041
+ return /* @__PURE__ */ jsxs8("div", __spreadProps(__spreadValues({ className: cn("ph-loading-state", className), role: "status", "aria-label": label }, props), { children: [
1042
+ /* @__PURE__ */ jsx11(Loader, { variant, size, label, "aria-hidden": "true" }),
1043
+ /* @__PURE__ */ jsxs8("div", { className: "ph-loading-state__copy", children: [
1044
+ /* @__PURE__ */ jsx11("strong", { children: title }),
1045
+ description ? /* @__PURE__ */ jsx11("span", { children: description }) : null
1250
1046
  ] })
1251
1047
  ] }));
1252
1048
  }
1253
1049
 
1254
1050
  // src/components/ui/AuthLayout.tsx
1255
1051
  import { useId } from "react";
1256
- import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
1052
+ import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
1257
1053
  function AuthLayout(_a) {
1258
1054
  var _b = _a, { brand, footer, aside, children, className } = _b, props = __objRest(_b, ["brand", "footer", "aside", "children", "className"]);
1259
- return /* @__PURE__ */ jsxs11("div", __spreadProps(__spreadValues({ className: cn("ph-auth-layout", aside != null && "ph-auth-layout--split", className) }, props), { children: [
1260
- aside ? /* @__PURE__ */ jsx15("aside", { className: "ph-auth-layout__aside", children: aside }) : null,
1261
- /* @__PURE__ */ jsx15("div", { className: "ph-auth-layout__main", children: /* @__PURE__ */ jsxs11("div", { className: "ph-auth-layout__column", children: [
1262
- brand ? /* @__PURE__ */ jsx15("div", { className: "ph-auth-layout__brand", children: brand }) : null,
1055
+ return /* @__PURE__ */ jsxs9("div", __spreadProps(__spreadValues({ className: cn("ph-auth-layout", aside != null && "ph-auth-layout--split", className) }, props), { children: [
1056
+ aside ? /* @__PURE__ */ jsx12("aside", { className: "ph-auth-layout__aside", children: aside }) : null,
1057
+ /* @__PURE__ */ jsx12("div", { className: "ph-auth-layout__main", children: /* @__PURE__ */ jsxs9("div", { className: "ph-auth-layout__column", children: [
1058
+ brand ? /* @__PURE__ */ jsx12("div", { className: "ph-auth-layout__brand", children: brand }) : null,
1263
1059
  children,
1264
- footer ? /* @__PURE__ */ jsx15("footer", { className: "ph-auth-layout__footer", children: footer }) : null
1060
+ footer ? /* @__PURE__ */ jsx12("footer", { className: "ph-auth-layout__footer", children: footer }) : null
1265
1061
  ] }) })
1266
1062
  ] }));
1267
1063
  }
1268
1064
  function AuthCard(_a) {
1269
1065
  var _b = _a, { title, description, footer, children, className } = _b, props = __objRest(_b, ["title", "description", "footer", "children", "className"]);
1270
1066
  const titleId = useId();
1271
- return /* @__PURE__ */ jsxs11("section", __spreadProps(__spreadValues({ className: cn("ph-auth-card", className), "aria-labelledby": titleId }, props), { children: [
1272
- /* @__PURE__ */ jsxs11("header", { className: "ph-auth-card__header", children: [
1273
- /* @__PURE__ */ jsx15("h1", { id: titleId, children: title }),
1274
- description ? /* @__PURE__ */ jsx15("p", { children: description }) : null
1067
+ return /* @__PURE__ */ jsxs9("section", __spreadProps(__spreadValues({ className: cn("ph-auth-card", className), "aria-labelledby": titleId }, props), { children: [
1068
+ /* @__PURE__ */ jsxs9("header", { className: "ph-auth-card__header", children: [
1069
+ /* @__PURE__ */ jsx12("h1", { id: titleId, children: title }),
1070
+ description ? /* @__PURE__ */ jsx12("p", { children: description }) : null
1275
1071
  ] }),
1276
- /* @__PURE__ */ jsx15("div", { className: "ph-auth-card__body", children }),
1277
- footer ? /* @__PURE__ */ jsx15("footer", { className: "ph-auth-card__footer", children: footer }) : null
1072
+ /* @__PURE__ */ jsx12("div", { className: "ph-auth-card__body", children }),
1073
+ footer ? /* @__PURE__ */ jsx12("footer", { className: "ph-auth-card__footer", children: footer }) : null
1278
1074
  ] }));
1279
1075
  }
1280
1076
  function AuthDivider(_a) {
1281
1077
  var _b = _a, { children = "or continue with", className } = _b, props = __objRest(_b, ["children", "className"]);
1282
- return /* @__PURE__ */ jsx15("div", __spreadProps(__spreadValues({ className: cn("ph-auth-divider", className) }, props), { children: /* @__PURE__ */ jsx15("span", { children }) }));
1078
+ return /* @__PURE__ */ jsx12("div", __spreadProps(__spreadValues({ className: cn("ph-auth-divider", className) }, props), { children: /* @__PURE__ */ jsx12("span", { children }) }));
1283
1079
  }
1284
1080
 
1285
1081
  // src/components/ui/SettingsLayout.tsx
1286
- import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
1082
+ import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
1287
1083
  function SettingsNav(_a) {
1288
1084
  var _b = _a, { groups, className } = _b, props = __objRest(_b, ["groups", "className"]);
1289
- return /* @__PURE__ */ jsx16("div", __spreadProps(__spreadValues({ className: cn("ph-settings-nav", className) }, props), { children: groups.map((group, index) => /* @__PURE__ */ jsxs12("div", { className: "ph-settings-nav__group", children: [
1290
- /* @__PURE__ */ jsx16("h3", { children: group.label }),
1291
- /* @__PURE__ */ jsx16("div", { className: "ph-settings-nav__items", children: group.items.map((item) => /* @__PURE__ */ jsxs12(
1085
+ return /* @__PURE__ */ jsx13("div", __spreadProps(__spreadValues({ className: cn("ph-settings-nav", className) }, props), { children: groups.map((group, index) => /* @__PURE__ */ jsxs10("div", { className: "ph-settings-nav__group", children: [
1086
+ /* @__PURE__ */ jsx13("h3", { children: group.label }),
1087
+ /* @__PURE__ */ jsx13("div", { className: "ph-settings-nav__items", children: group.items.map((item) => /* @__PURE__ */ jsxs10(
1292
1088
  "a",
1293
1089
  {
1294
1090
  href: item.href,
1295
1091
  className: cn("ph-settings-nav__item", item.active && "ph-settings-nav__item--active"),
1296
1092
  "aria-current": item.active ? "page" : void 0,
1297
1093
  children: [
1298
- item.icon ? /* @__PURE__ */ jsx16("span", { className: "ph-settings-nav__icon", children: item.icon }) : null,
1299
- /* @__PURE__ */ jsx16("span", { children: item.label }),
1300
- item.badge ? /* @__PURE__ */ jsx16("span", { className: "ph-settings-nav__badge", children: item.badge }) : null
1094
+ item.icon ? /* @__PURE__ */ jsx13("span", { className: "ph-settings-nav__icon", children: item.icon }) : null,
1095
+ /* @__PURE__ */ jsx13("span", { children: item.label }),
1096
+ item.badge ? /* @__PURE__ */ jsx13("span", { className: "ph-settings-nav__badge", children: item.badge }) : null
1301
1097
  ]
1302
1098
  },
1303
1099
  item.id
@@ -1322,31 +1118,31 @@ function SettingsLayout(_a) {
1322
1118
  "children",
1323
1119
  "className"
1324
1120
  ]);
1325
- return /* @__PURE__ */ jsxs12("section", __spreadProps(__spreadValues({ className: cn("ph-settings-layout", className) }, props), { children: [
1326
- /* @__PURE__ */ jsxs12("header", { className: "ph-settings-layout__header", children: [
1327
- /* @__PURE__ */ jsxs12("div", { children: [
1328
- /* @__PURE__ */ jsx16("h2", { children: title }),
1329
- description ? /* @__PURE__ */ jsx16("p", { children: description }) : null
1121
+ return /* @__PURE__ */ jsxs10("section", __spreadProps(__spreadValues({ className: cn("ph-settings-layout", className) }, props), { children: [
1122
+ /* @__PURE__ */ jsxs10("header", { className: "ph-settings-layout__header", children: [
1123
+ /* @__PURE__ */ jsxs10("div", { children: [
1124
+ /* @__PURE__ */ jsx13("h2", { children: title }),
1125
+ description ? /* @__PURE__ */ jsx13("p", { children: description }) : null
1330
1126
  ] }),
1331
- actions ? /* @__PURE__ */ jsx16("div", { className: "ph-settings-layout__actions", children: actions }) : null
1127
+ actions ? /* @__PURE__ */ jsx13("div", { className: "ph-settings-layout__actions", children: actions }) : null
1332
1128
  ] }),
1333
- /* @__PURE__ */ jsxs12("details", { className: "ph-settings-layout__mobile-nav", children: [
1334
- /* @__PURE__ */ jsxs12("summary", { children: [
1335
- /* @__PURE__ */ jsx16(IconTuning, { className: "h-4 w-4", "aria-hidden": true }),
1129
+ /* @__PURE__ */ jsxs10("details", { className: "ph-settings-layout__mobile-nav", children: [
1130
+ /* @__PURE__ */ jsxs10("summary", { children: [
1131
+ /* @__PURE__ */ jsx13(IconTuning, { className: "h-4 w-4", "aria-hidden": true }),
1336
1132
  "Settings menu"
1337
1133
  ] }),
1338
- /* @__PURE__ */ jsx16("nav", { "aria-label": navigationLabel, children: navigation })
1134
+ /* @__PURE__ */ jsx13("nav", { "aria-label": navigationLabel, children: navigation })
1339
1135
  ] }),
1340
- /* @__PURE__ */ jsxs12("div", { className: "ph-settings-layout__grid", children: [
1341
- /* @__PURE__ */ jsx16("aside", { className: "ph-settings-layout__sidebar", children: /* @__PURE__ */ jsx16("nav", { "aria-label": navigationLabel, children: navigation }) }),
1342
- /* @__PURE__ */ jsx16("div", { className: "ph-settings-layout__content", children })
1136
+ /* @__PURE__ */ jsxs10("div", { className: "ph-settings-layout__grid", children: [
1137
+ /* @__PURE__ */ jsx13("aside", { className: "ph-settings-layout__sidebar", children: /* @__PURE__ */ jsx13("nav", { "aria-label": navigationLabel, children: navigation }) }),
1138
+ /* @__PURE__ */ jsx13("div", { className: "ph-settings-layout__content", children })
1343
1139
  ] })
1344
1140
  ] }));
1345
1141
  }
1346
1142
 
1347
1143
  // src/components/ui/DropdownMenu.tsx
1348
1144
  import * as DropdownPrimitive from "@radix-ui/react-dropdown-menu";
1349
- import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
1145
+ import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
1350
1146
  var sizeClass2 = {
1351
1147
  xs: "ph-btn-xs",
1352
1148
  sm: "ph-btn-sm",
@@ -1368,7 +1164,7 @@ function DropdownContent({
1368
1164
  avoidCollisions = true,
1369
1165
  panelClassName
1370
1166
  }) {
1371
- return /* @__PURE__ */ jsx17(DropdownPrimitive.Portal, { children: /* @__PURE__ */ jsxs13(
1167
+ return /* @__PURE__ */ jsx14(DropdownPrimitive.Portal, { children: /* @__PURE__ */ jsxs11(
1372
1168
  DropdownPrimitive.Content,
1373
1169
  {
1374
1170
  className: cn("ph-dropdown-panel", panelClassName),
@@ -1381,7 +1177,7 @@ function DropdownContent({
1381
1177
  sticky: "partial",
1382
1178
  children: [
1383
1179
  children,
1384
- /* @__PURE__ */ jsx17(DropdownPrimitive.Arrow, { className: "ph-dropdown-arrow", width: 12, height: 6 })
1180
+ /* @__PURE__ */ jsx14(DropdownPrimitive.Arrow, { className: "ph-dropdown-arrow", width: 12, height: 6 })
1385
1181
  ]
1386
1182
  }
1387
1183
  ) });
@@ -1422,7 +1218,7 @@ function DropdownMenu(_a) {
1422
1218
  "modal",
1423
1219
  "disabled"
1424
1220
  ]);
1425
- return /* @__PURE__ */ jsx17("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs13(
1221
+ return /* @__PURE__ */ jsx14("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs11(
1426
1222
  DropdownPrimitive.Root,
1427
1223
  {
1428
1224
  open,
@@ -1430,8 +1226,8 @@ function DropdownMenu(_a) {
1430
1226
  onOpenChange,
1431
1227
  modal,
1432
1228
  children: [
1433
- /* @__PURE__ */ jsx17(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx17("button", { type: "button", className: "ph-dropdown-trigger", "aria-label": ariaLabel, children: trigger }) }),
1434
- /* @__PURE__ */ jsx17(
1229
+ /* @__PURE__ */ jsx14(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx14("button", { type: "button", className: "ph-dropdown-trigger", "aria-label": ariaLabel, children: trigger }) }),
1230
+ /* @__PURE__ */ jsx14(
1435
1231
  DropdownContent,
1436
1232
  {
1437
1233
  align,
@@ -1496,8 +1292,8 @@ function DropdownButton(_a) {
1496
1292
  "modal",
1497
1293
  "disabled"
1498
1294
  ]);
1499
- const trailing = sideIcon != null ? sideIcon : /* @__PURE__ */ jsx17(IconChevronDown, { className: "h-4 w-4", "aria-hidden": true });
1500
- return /* @__PURE__ */ jsx17("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs13(
1295
+ const trailing = sideIcon != null ? sideIcon : /* @__PURE__ */ jsx14(IconChevronDown, { className: "h-4 w-4", "aria-hidden": true });
1296
+ return /* @__PURE__ */ jsx14("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs11(
1501
1297
  DropdownPrimitive.Root,
1502
1298
  {
1503
1299
  open,
@@ -1505,7 +1301,7 @@ function DropdownButton(_a) {
1505
1301
  onOpenChange,
1506
1302
  modal,
1507
1303
  children: [
1508
- /* @__PURE__ */ jsx17(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx17(
1304
+ /* @__PURE__ */ jsx14(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx14(
1509
1305
  "button",
1510
1306
  {
1511
1307
  type: "button",
@@ -1518,10 +1314,10 @@ function DropdownButton(_a) {
1518
1314
  split && "ph-btn-split"
1519
1315
  ),
1520
1316
  "aria-label": ariaLabel,
1521
- children: /* @__PURE__ */ jsx17(ButtonChrome, { label, icon, sideIcon: trailing, split })
1317
+ children: /* @__PURE__ */ jsx14(ButtonChrome, { label, icon, sideIcon: trailing, split })
1522
1318
  }
1523
1319
  ) }),
1524
- /* @__PURE__ */ jsx17(
1320
+ /* @__PURE__ */ jsx14(
1525
1321
  DropdownContent,
1526
1322
  {
1527
1323
  align,
@@ -1540,7 +1336,7 @@ function DropdownButton(_a) {
1540
1336
  }
1541
1337
  function DropdownItem(_a) {
1542
1338
  var _b = _a, { className, children, disabled } = _b, props = __objRest(_b, ["className", "children", "disabled"]);
1543
- return /* @__PURE__ */ jsx17(DropdownPrimitive.Item, { asChild: true, disabled, children: /* @__PURE__ */ jsx17(
1339
+ return /* @__PURE__ */ jsx14(DropdownPrimitive.Item, { asChild: true, disabled, children: /* @__PURE__ */ jsx14(
1544
1340
  "button",
1545
1341
  __spreadProps(__spreadValues({
1546
1342
  type: "button",
@@ -1552,13 +1348,13 @@ function DropdownItem(_a) {
1552
1348
  ) });
1553
1349
  }
1554
1350
  function DropdownRadioGroup(props) {
1555
- return /* @__PURE__ */ jsx17(DropdownPrimitive.RadioGroup, __spreadValues({}, props));
1351
+ return /* @__PURE__ */ jsx14(DropdownPrimitive.RadioGroup, __spreadValues({}, props));
1556
1352
  }
1557
1353
  function DropdownRadioItem(_a) {
1558
1354
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1559
- return /* @__PURE__ */ jsxs13(DropdownPrimitive.RadioItem, __spreadProps(__spreadValues({ className: cn("ph-dropdown-item ph-dropdown-radio-item", className) }, props), { children: [
1560
- /* @__PURE__ */ jsx17("span", { className: "ph-dropdown-item-indicator", "aria-hidden": true, children: /* @__PURE__ */ jsx17(DropdownPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(IconCheck, { className: "h-3.5 w-3.5" }) }) }),
1561
- /* @__PURE__ */ jsx17("span", { children })
1355
+ return /* @__PURE__ */ jsxs11(DropdownPrimitive.RadioItem, __spreadProps(__spreadValues({ className: cn("ph-dropdown-item ph-dropdown-radio-item", className) }, props), { children: [
1356
+ /* @__PURE__ */ jsx14("span", { className: "ph-dropdown-item-indicator", "aria-hidden": true, children: /* @__PURE__ */ jsx14(DropdownPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(IconCheck, { className: "h-3.5 w-3.5" }) }) }),
1357
+ /* @__PURE__ */ jsx14("span", { children })
1562
1358
  ] }));
1563
1359
  }
1564
1360
 
@@ -1567,7 +1363,7 @@ import { forwardRef as forwardRef8, useId as useId3 } from "react";
1567
1363
 
1568
1364
  // src/components/ui/FormField.tsx
1569
1365
  import { useId as useId2 } from "react";
1570
- import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
1366
+ import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1571
1367
  function FormField(_a) {
1572
1368
  var _b = _a, {
1573
1369
  controlId,
@@ -1600,26 +1396,26 @@ function FormField(_a) {
1600
1396
  "aria-errormessage": errorId,
1601
1397
  "aria-invalid": error ? true : void 0
1602
1398
  };
1603
- return /* @__PURE__ */ jsxs14("div", __spreadProps(__spreadValues({ className: cn("ph-field", className) }, props), { children: [
1604
- label ? /* @__PURE__ */ jsxs14(
1399
+ return /* @__PURE__ */ jsxs12("div", __spreadProps(__spreadValues({ className: cn("ph-field", className) }, props), { children: [
1400
+ label ? /* @__PURE__ */ jsxs12(
1605
1401
  "label",
1606
1402
  {
1607
1403
  htmlFor: id,
1608
1404
  className: cn("ph-label", hideLabel && "sr-only", disabled && "opacity-50"),
1609
1405
  children: [
1610
1406
  label,
1611
- required ? /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", children: " *" }) : null
1407
+ required ? /* @__PURE__ */ jsx15("span", { "aria-hidden": "true", children: " *" }) : null
1612
1408
  ]
1613
1409
  }
1614
1410
  ) : null,
1615
1411
  typeof children === "function" ? children(controlProps) : children,
1616
- descriptionId ? /* @__PURE__ */ jsx18("p", { id: descriptionId, className: "mt-1 text-xs text-ph-subtle", children: helperText }) : null,
1617
- errorId ? /* @__PURE__ */ jsx18("p", { id: errorId, className: "mt-1 text-xs font-medium text-ph-danger", children: error }) : null
1412
+ descriptionId ? /* @__PURE__ */ jsx15("p", { id: descriptionId, className: "mt-1 text-xs text-ph-subtle", children: helperText }) : null,
1413
+ errorId ? /* @__PURE__ */ jsx15("p", { id: errorId, className: "mt-1 text-xs font-medium text-ph-danger", children: error }) : null
1618
1414
  ] }));
1619
1415
  }
1620
1416
 
1621
1417
  // src/components/ui/Input.tsx
1622
- import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
1418
+ import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
1623
1419
  var sizeMap3 = {
1624
1420
  sm: "ph-input-sm",
1625
1421
  md: "",
@@ -1660,7 +1456,7 @@ var Input = forwardRef8(function Input2(_a, ref) {
1660
1456
  const autoId = useId3();
1661
1457
  const id = idProp != null ? idProp : autoId;
1662
1458
  const hasError = Boolean(error);
1663
- return /* @__PURE__ */ jsx19(
1459
+ return /* @__PURE__ */ jsx16(
1664
1460
  FormField,
1665
1461
  {
1666
1462
  controlId: id,
@@ -1671,7 +1467,7 @@ var Input = forwardRef8(function Input2(_a, ref) {
1671
1467
  required,
1672
1468
  disabled,
1673
1469
  className: wrapperClassName,
1674
- children: (fieldProps) => /* @__PURE__ */ jsx19(
1470
+ children: (fieldProps) => /* @__PURE__ */ jsx16(
1675
1471
  "input",
1676
1472
  __spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
1677
1473
  ref,
@@ -1723,7 +1519,7 @@ var Select = forwardRef8(function Select2(_a, ref) {
1723
1519
  const autoId = useId3();
1724
1520
  const id = idProp != null ? idProp : autoId;
1725
1521
  const hasError = Boolean(error);
1726
- return /* @__PURE__ */ jsx19(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx19(
1522
+ return /* @__PURE__ */ jsx16(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx16(
1727
1523
  "select",
1728
1524
  __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
1729
1525
  ref,
@@ -1772,7 +1568,7 @@ var Textarea = forwardRef8(function Textarea2(_a, ref) {
1772
1568
  const autoId = useId3();
1773
1569
  const id = idProp != null ? idProp : autoId;
1774
1570
  const hasError = Boolean(error);
1775
- return /* @__PURE__ */ jsx19(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx19(
1571
+ return /* @__PURE__ */ jsx16(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx16(
1776
1572
  "textarea",
1777
1573
  __spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
1778
1574
  ref,
@@ -1815,9 +1611,9 @@ var Checkbox = forwardRef8(function Checkbox2(_a, ref) {
1815
1611
  const hasError = Boolean(error);
1816
1612
  const descriptionId = helperText && !hasError ? `${id}-description` : void 0;
1817
1613
  const errorId = error ? `${id}-error` : void 0;
1818
- return /* @__PURE__ */ jsxs15("div", { className: cn("ph-control-row", wrapperClassName), children: [
1819
- /* @__PURE__ */ jsxs15("span", { className: "ph-checkbox-wrap", children: [
1820
- /* @__PURE__ */ jsx19(
1614
+ return /* @__PURE__ */ jsxs13("div", { className: cn("ph-control-row", wrapperClassName), children: [
1615
+ /* @__PURE__ */ jsxs13("span", { className: "ph-checkbox-wrap", children: [
1616
+ /* @__PURE__ */ jsx16(
1821
1617
  "input",
1822
1618
  __spreadValues({
1823
1619
  ref,
@@ -1835,12 +1631,12 @@ var Checkbox = forwardRef8(function Checkbox2(_a, ref) {
1835
1631
  )
1836
1632
  }, props)
1837
1633
  ),
1838
- /* @__PURE__ */ jsx19(IconCheck, { className: "ph-checkbox-icon", "aria-hidden": true })
1634
+ /* @__PURE__ */ jsx16(IconCheck, { className: "ph-checkbox-icon", "aria-hidden": true })
1839
1635
  ] }),
1840
- /* @__PURE__ */ jsxs15("div", { className: "ph-control-copy", children: [
1841
- /* @__PURE__ */ jsx19("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label }),
1842
- descriptionId ? /* @__PURE__ */ jsx19("p", { id: descriptionId, className: "text-xs text-ph-subtle", children: helperText }) : null,
1843
- errorId ? /* @__PURE__ */ jsx19("p", { id: errorId, className: "text-xs font-medium text-ph-danger", children: error }) : null
1636
+ /* @__PURE__ */ jsxs13("div", { className: "ph-control-copy", children: [
1637
+ /* @__PURE__ */ jsx16("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label }),
1638
+ descriptionId ? /* @__PURE__ */ jsx16("p", { id: descriptionId, className: "text-xs text-ph-subtle", children: helperText }) : null,
1639
+ errorId ? /* @__PURE__ */ jsx16("p", { id: errorId, className: "text-xs font-medium text-ph-danger", children: error }) : null
1844
1640
  ] })
1845
1641
  ] });
1846
1642
  });
@@ -1861,8 +1657,8 @@ var Radio = forwardRef8(function Radio2(_a, ref) {
1861
1657
  ]);
1862
1658
  const autoId = useId3();
1863
1659
  const id = idProp != null ? idProp : autoId;
1864
- return /* @__PURE__ */ jsxs15("div", { className: cn("ph-control-row", wrapperClassName, disabled && "opacity-60"), children: [
1865
- /* @__PURE__ */ jsx19(
1660
+ return /* @__PURE__ */ jsxs13("div", { className: cn("ph-control-row", wrapperClassName, disabled && "opacity-60"), children: [
1661
+ /* @__PURE__ */ jsx16(
1866
1662
  "input",
1867
1663
  __spreadValues({
1868
1664
  ref,
@@ -1872,7 +1668,7 @@ var Radio = forwardRef8(function Radio2(_a, ref) {
1872
1668
  className: cn("ph-radio", disabled && "cursor-not-allowed", className)
1873
1669
  }, props)
1874
1670
  ),
1875
- /* @__PURE__ */ jsx19("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label })
1671
+ /* @__PURE__ */ jsx16("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label })
1876
1672
  ] });
1877
1673
  });
1878
1674
  Radio.displayName = "Radio";
@@ -1892,9 +1688,9 @@ var Toggle = forwardRef8(function Toggle2(_a, ref) {
1892
1688
  ]);
1893
1689
  const autoId = useId3();
1894
1690
  const id = idProp != null ? idProp : autoId;
1895
- return /* @__PURE__ */ jsxs15("label", { className: cn("ph-control-row-between", wrapperClassName, disabled && "opacity-60"), children: [
1896
- /* @__PURE__ */ jsx19("span", { className: disabled ? "opacity-60" : void 0, children: label }),
1897
- /* @__PURE__ */ jsx19(
1691
+ return /* @__PURE__ */ jsxs13("label", { className: cn("ph-control-row-between", wrapperClassName, disabled && "opacity-60"), children: [
1692
+ /* @__PURE__ */ jsx16("span", { className: disabled ? "opacity-60" : void 0, children: label }),
1693
+ /* @__PURE__ */ jsx16(
1898
1694
  "input",
1899
1695
  __spreadValues({
1900
1696
  ref,
@@ -1928,13 +1724,13 @@ var Range = forwardRef8(function Range2(_a, ref) {
1928
1724
  ]);
1929
1725
  const autoId = useId3();
1930
1726
  const id = idProp != null ? idProp : autoId;
1931
- return /* @__PURE__ */ jsxs15("div", { className: cn("ph-field", wrapperClassName), children: [
1932
- label && /* @__PURE__ */ jsx19("label", { htmlFor: id, className: "ph-label", children: label }),
1933
- /* @__PURE__ */ jsx19("input", __spreadValues({ ref, id, type: "range", className: cn("ph-range", className) }, props)),
1934
- (minLabel || valueLabel || maxLabel) && /* @__PURE__ */ jsxs15("div", { className: "flex justify-between text-xs text-ph-mutedtext", children: [
1935
- /* @__PURE__ */ jsx19("span", { children: minLabel }),
1936
- /* @__PURE__ */ jsx19("span", { children: valueLabel }),
1937
- /* @__PURE__ */ jsx19("span", { children: maxLabel })
1727
+ return /* @__PURE__ */ jsxs13("div", { className: cn("ph-field", wrapperClassName), children: [
1728
+ label && /* @__PURE__ */ jsx16("label", { htmlFor: id, className: "ph-label", children: label }),
1729
+ /* @__PURE__ */ jsx16("input", __spreadValues({ ref, id, type: "range", className: cn("ph-range", className) }, props)),
1730
+ (minLabel || valueLabel || maxLabel) && /* @__PURE__ */ jsxs13("div", { className: "flex justify-between text-xs text-ph-mutedtext", children: [
1731
+ /* @__PURE__ */ jsx16("span", { children: minLabel }),
1732
+ /* @__PURE__ */ jsx16("span", { children: valueLabel }),
1733
+ /* @__PURE__ */ jsx16("span", { children: maxLabel })
1938
1734
  ] })
1939
1735
  ] });
1940
1736
  });
@@ -1955,10 +1751,10 @@ var FileUpload = forwardRef8(function FileUpload2(_a, ref) {
1955
1751
  ]);
1956
1752
  const autoId = useId3();
1957
1753
  const id = idProp != null ? idProp : autoId;
1958
- return /* @__PURE__ */ jsxs15("div", { className: cn("ph-field", wrapperClassName), children: [
1959
- label && /* @__PURE__ */ jsx19("label", { htmlFor: id, className: "ph-label", children: label }),
1960
- /* @__PURE__ */ jsxs15("label", { htmlFor: id, className: "ph-file-upload", children: [
1961
- /* @__PURE__ */ jsx19("input", __spreadValues({ ref, id, type: "file", className: cn("sr-only", className) }, props)),
1754
+ return /* @__PURE__ */ jsxs13("div", { className: cn("ph-field", wrapperClassName), children: [
1755
+ label && /* @__PURE__ */ jsx16("label", { htmlFor: id, className: "ph-label", children: label }),
1756
+ /* @__PURE__ */ jsxs13("label", { htmlFor: id, className: "ph-file-upload", children: [
1757
+ /* @__PURE__ */ jsx16("input", __spreadValues({ ref, id, type: "file", className: cn("sr-only", className) }, props)),
1962
1758
  prompt
1963
1759
  ] })
1964
1760
  ] });
@@ -1968,7 +1764,7 @@ FileUpload.displayName = "FileUpload";
1968
1764
  // src/components/ui/Modal.tsx
1969
1765
  import * as Dialog from "@radix-ui/react-dialog";
1970
1766
  import { useRef } from "react";
1971
- import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
1767
+ import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
1972
1768
  var sizeMap4 = {
1973
1769
  sm: "max-w-sm",
1974
1770
  md: "max-w-lg",
@@ -1992,16 +1788,16 @@ function Modal({
1992
1788
  }) {
1993
1789
  const canDismiss = Boolean(onClose);
1994
1790
  const restoreFocusRef = useRef(null);
1995
- return /* @__PURE__ */ jsx20(
1791
+ return /* @__PURE__ */ jsx17(
1996
1792
  Dialog.Root,
1997
1793
  {
1998
1794
  open,
1999
1795
  onOpenChange: (nextOpen) => {
2000
1796
  if (!nextOpen) onClose == null ? void 0 : onClose();
2001
1797
  },
2002
- children: /* @__PURE__ */ jsxs16(Dialog.Portal, { children: [
2003
- /* @__PURE__ */ jsx20(Dialog.Overlay, { className: "ph-modal-overlay" }),
2004
- /* @__PURE__ */ jsxs16(
1798
+ children: /* @__PURE__ */ jsxs14(Dialog.Portal, { children: [
1799
+ /* @__PURE__ */ jsx17(Dialog.Overlay, { className: "ph-modal-overlay" }),
1800
+ /* @__PURE__ */ jsxs14(
2005
1801
  Dialog.Content,
2006
1802
  __spreadProps(__spreadValues({
2007
1803
  className: cn("ph-modal-panel", sizeMap4[size], className),
@@ -2022,16 +1818,16 @@ function Modal({
2022
1818
  if (!canDismiss || !closeOnOutsideClick) event.preventDefault();
2023
1819
  },
2024
1820
  children: [
2025
- title ? null : /* @__PURE__ */ jsx20(Dialog.Title, { className: "sr-only", children: ariaLabel != null ? ariaLabel : "Dialog" }),
2026
- title || description || showCloseButton && canDismiss ? /* @__PURE__ */ jsxs16("header", { className: "ph-modal-header", children: [
2027
- /* @__PURE__ */ jsxs16("div", { className: "min-w-0", children: [
2028
- title ? /* @__PURE__ */ jsx20(Dialog.Title, { className: "text-lg font-bold text-ph-ink", children: title }) : null,
2029
- description ? /* @__PURE__ */ jsx20(Dialog.Description, { className: "mt-1 text-sm text-ph-subtle", children: description }) : null
1821
+ title ? null : /* @__PURE__ */ jsx17(Dialog.Title, { className: "sr-only", children: ariaLabel != null ? ariaLabel : "Dialog" }),
1822
+ title || description || showCloseButton && canDismiss ? /* @__PURE__ */ jsxs14("header", { className: "ph-modal-header", children: [
1823
+ /* @__PURE__ */ jsxs14("div", { className: "min-w-0", children: [
1824
+ title ? /* @__PURE__ */ jsx17(Dialog.Title, { className: "text-lg font-bold text-ph-ink", children: title }) : null,
1825
+ description ? /* @__PURE__ */ jsx17(Dialog.Description, { className: "mt-1 text-sm text-ph-subtle", children: description }) : null
2030
1826
  ] }),
2031
- showCloseButton && canDismiss ? /* @__PURE__ */ jsx20(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx20("button", { type: "button", className: "ph-modal-close", "aria-label": "Close dialog", children: /* @__PURE__ */ jsx20(IconClose, { className: "h-5 w-5", "aria-hidden": true }) }) }) : null
1827
+ showCloseButton && canDismiss ? /* @__PURE__ */ jsx17(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx17("button", { type: "button", className: "ph-modal-close", "aria-label": "Close dialog", children: /* @__PURE__ */ jsx17(IconClose, { className: "h-5 w-5", "aria-hidden": true }) }) }) : null
2032
1828
  ] }) : null,
2033
- /* @__PURE__ */ jsx20("div", { className: "ph-modal-body", children }),
2034
- footer ? /* @__PURE__ */ jsx20("div", { className: "ph-modal-footer", children: footer }) : null
1829
+ /* @__PURE__ */ jsx17("div", { className: "ph-modal-body", children }),
1830
+ footer ? /* @__PURE__ */ jsx17("div", { className: "ph-modal-footer", children: footer }) : null
2035
1831
  ]
2036
1832
  })
2037
1833
  )
@@ -2041,11 +1837,11 @@ function Modal({
2041
1837
  }
2042
1838
 
2043
1839
  // src/components/ui/Navigation.tsx
2044
- import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
1840
+ import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
2045
1841
  function Breadcrumbs({ items, label = "Breadcrumb", className }) {
2046
- return /* @__PURE__ */ jsx21("nav", { "aria-label": label, className: cn("ph-breadcrumbs", className), children: items.map((item, index) => /* @__PURE__ */ jsxs17("span", { className: "contents", children: [
2047
- index > 0 ? /* @__PURE__ */ jsx21("span", { className: "ph-breadcrumb-sep", "aria-hidden": "true", children: "/" }) : null,
2048
- item.current || !item.href ? /* @__PURE__ */ jsx21("span", { className: "ph-breadcrumb-current", "aria-current": item.current ? "page" : void 0, children: item.label }) : /* @__PURE__ */ jsx21("a", { href: item.href, className: "ph-breadcrumb-link", children: item.label })
1842
+ return /* @__PURE__ */ jsx18("nav", { "aria-label": label, className: cn("ph-breadcrumbs", className), children: items.map((item, index) => /* @__PURE__ */ jsxs15("span", { className: "contents", children: [
1843
+ index > 0 ? /* @__PURE__ */ jsx18("span", { className: "ph-breadcrumb-sep", "aria-hidden": "true", children: "/" }) : null,
1844
+ item.current || !item.href ? /* @__PURE__ */ jsx18("span", { className: "ph-breadcrumb-current", "aria-current": item.current ? "page" : void 0, children: item.label }) : /* @__PURE__ */ jsx18("a", { href: item.href, className: "ph-breadcrumb-link", children: item.label })
2049
1845
  ] }, `${item.label}-${index}`)) });
2050
1846
  }
2051
1847
  function Pagination({
@@ -2058,8 +1854,8 @@ function Pagination({
2058
1854
  }) {
2059
1855
  const pages = compact ? [Math.max(1, page - 1), page, Math.min(totalPages, page + 1)] : [1, 2, 3, totalPages];
2060
1856
  const uniquePages = Array.from(new Set(pages)).filter((n) => n >= 1 && n <= totalPages);
2061
- return /* @__PURE__ */ jsxs17("nav", { "aria-label": label, className: cn("ph-pagination", className), children: [
2062
- /* @__PURE__ */ jsx21(
1857
+ return /* @__PURE__ */ jsxs15("nav", { "aria-label": label, className: cn("ph-pagination", className), children: [
1858
+ /* @__PURE__ */ jsx18(
2063
1859
  "button",
2064
1860
  {
2065
1861
  type: "button",
@@ -2067,12 +1863,12 @@ function Pagination({
2067
1863
  disabled: page <= 1,
2068
1864
  "aria-label": "Previous page",
2069
1865
  onClick: () => onPageChange == null ? void 0 : onPageChange(page - 1),
2070
- children: /* @__PURE__ */ jsx21(IconChevronLeft, { className: "mx-auto h-4 w-4", "aria-hidden": true })
1866
+ children: /* @__PURE__ */ jsx18(IconChevronLeft, { className: "mx-auto h-4 w-4", "aria-hidden": true })
2071
1867
  }
2072
1868
  ),
2073
- uniquePages.map((pageNumber, index) => /* @__PURE__ */ jsxs17("span", { className: "contents", children: [
2074
- !compact && index === uniquePages.length - 1 && pageNumber > 4 ? /* @__PURE__ */ jsx21("span", { className: "ph-pagination-ellipsis", "aria-hidden": "true", children: "..." }) : null,
2075
- /* @__PURE__ */ jsx21(
1869
+ uniquePages.map((pageNumber, index) => /* @__PURE__ */ jsxs15("span", { className: "contents", children: [
1870
+ !compact && index === uniquePages.length - 1 && pageNumber > 4 ? /* @__PURE__ */ jsx18("span", { className: "ph-pagination-ellipsis", "aria-hidden": "true", children: "..." }) : null,
1871
+ /* @__PURE__ */ jsx18(
2076
1872
  "button",
2077
1873
  {
2078
1874
  type: "button",
@@ -2083,7 +1879,7 @@ function Pagination({
2083
1879
  }
2084
1880
  )
2085
1881
  ] }, pageNumber)),
2086
- /* @__PURE__ */ jsx21(
1882
+ /* @__PURE__ */ jsx18(
2087
1883
  "button",
2088
1884
  {
2089
1885
  type: "button",
@@ -2091,25 +1887,25 @@ function Pagination({
2091
1887
  disabled: page >= totalPages,
2092
1888
  "aria-label": "Next page",
2093
1889
  onClick: () => onPageChange == null ? void 0 : onPageChange(page + 1),
2094
- children: /* @__PURE__ */ jsx21(IconChevronRight, { className: "mx-auto h-4 w-4", "aria-hidden": true })
1890
+ children: /* @__PURE__ */ jsx18(IconChevronRight, { className: "mx-auto h-4 w-4", "aria-hidden": true })
2095
1891
  }
2096
1892
  )
2097
1893
  ] });
2098
1894
  }
2099
1895
 
2100
1896
  // src/components/ui/Panel.tsx
2101
- import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
1897
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
2102
1898
  function Panel(_a) {
2103
1899
  var _b = _a, { title, description, children, className } = _b, props = __objRest(_b, ["title", "description", "children", "className"]);
2104
- return /* @__PURE__ */ jsxs18("div", __spreadProps(__spreadValues({ className: cn("ph-panel", className) }, props), { children: [
2105
- title && /* @__PURE__ */ jsx22("h3", { className: "text-sm font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
2106
- description && /* @__PURE__ */ jsx22("p", { className: "text-sm text-ph-subtle", children: description }),
1900
+ return /* @__PURE__ */ jsxs16("div", __spreadProps(__spreadValues({ className: cn("ph-panel", className) }, props), { children: [
1901
+ title && /* @__PURE__ */ jsx19("h3", { className: "text-sm font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
1902
+ description && /* @__PURE__ */ jsx19("p", { className: "text-sm text-ph-subtle", children: description }),
2107
1903
  children
2108
1904
  ] }));
2109
1905
  }
2110
1906
 
2111
1907
  // src/components/ui/Rating.tsx
2112
- import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
1908
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
2113
1909
  function Rating(_a) {
2114
1910
  var _b = _a, {
2115
1911
  label,
@@ -2129,9 +1925,9 @@ function Rating(_a) {
2129
1925
  "wrapperClassName"
2130
1926
  ]);
2131
1927
  const stars = Array.from({ length: max }, (_, index) => index + 1);
2132
- return /* @__PURE__ */ jsxs19("div", { className: cn("ph-field", wrapperClassName), children: [
2133
- label && /* @__PURE__ */ jsx23("span", { className: "ph-label", children: label }),
2134
- /* @__PURE__ */ jsx23(
1928
+ return /* @__PURE__ */ jsxs17("div", { className: cn("ph-field", wrapperClassName), children: [
1929
+ label && /* @__PURE__ */ jsx20("span", { className: "ph-label", children: label }),
1930
+ /* @__PURE__ */ jsx20(
2135
1931
  "div",
2136
1932
  __spreadProps(__spreadValues({
2137
1933
  className: cn("ph-rating flex", className),
@@ -2141,7 +1937,7 @@ function Rating(_a) {
2141
1937
  children: stars.map((star) => {
2142
1938
  const active = star <= value;
2143
1939
  if (readOnly) {
2144
- return /* @__PURE__ */ jsx23(
1940
+ return /* @__PURE__ */ jsx20(
2145
1941
  IconStar,
2146
1942
  {
2147
1943
  className: cn("h-6 w-6", active ? "text-amber-500" : "text-ph-border"),
@@ -2150,7 +1946,7 @@ function Rating(_a) {
2150
1946
  star
2151
1947
  );
2152
1948
  }
2153
- return /* @__PURE__ */ jsx23(
1949
+ return /* @__PURE__ */ jsx20(
2154
1950
  "button",
2155
1951
  {
2156
1952
  type: "button",
@@ -2159,7 +1955,7 @@ function Rating(_a) {
2159
1955
  "aria-checked": active,
2160
1956
  "aria-label": `${star} out of ${max}`,
2161
1957
  onClick: () => onChange == null ? void 0 : onChange(star),
2162
- children: /* @__PURE__ */ jsx23(IconStar, { className: cn("h-6 w-6", active ? "text-amber-500" : "text-ph-border") })
1958
+ children: /* @__PURE__ */ jsx20(IconStar, { className: cn("h-6 w-6", active ? "text-amber-500" : "text-ph-border") })
2163
1959
  },
2164
1960
  star
2165
1961
  );
@@ -2171,7 +1967,7 @@ function Rating(_a) {
2171
1967
 
2172
1968
  // src/components/ui/SearchInput.tsx
2173
1969
  import { useId as useId4 } from "react";
2174
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
1970
+ import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
2175
1971
  function SearchInput(_a) {
2176
1972
  var _b = _a, {
2177
1973
  id: idProp,
@@ -2194,10 +1990,10 @@ function SearchInput(_a) {
2194
1990
  ]);
2195
1991
  const autoId = useId4();
2196
1992
  const id = idProp != null ? idProp : autoId;
2197
- return /* @__PURE__ */ jsxs20("div", { className: cn("relative", wrapperClassName), children: [
2198
- /* @__PURE__ */ jsx24("label", { htmlFor: id, className: hideLabel ? "sr-only" : "ph-label mb-1.5 block", children: label }),
2199
- /* @__PURE__ */ jsxs20("div", { className: "relative", children: [
2200
- shortcut != null ? /* @__PURE__ */ jsx24(
1993
+ return /* @__PURE__ */ jsxs18("div", { className: cn("relative", wrapperClassName), children: [
1994
+ /* @__PURE__ */ jsx21("label", { htmlFor: id, className: hideLabel ? "sr-only" : "ph-label mb-1.5 block", children: label }),
1995
+ /* @__PURE__ */ jsxs18("div", { className: "relative", children: [
1996
+ shortcut != null ? /* @__PURE__ */ jsx21(
2201
1997
  "span",
2202
1998
  {
2203
1999
  className: "ph-shortcut pointer-events-none absolute left-3 top-1/2 z-10 -translate-y-1/2 text-xs",
@@ -2205,7 +2001,7 @@ function SearchInput(_a) {
2205
2001
  children: shortcut
2206
2002
  }
2207
2003
  ) : null,
2208
- /* @__PURE__ */ jsx24(
2004
+ /* @__PURE__ */ jsx21(
2209
2005
  "input",
2210
2006
  __spreadValues({
2211
2007
  id,
@@ -2241,10 +2037,10 @@ function SearchGroup(_a) {
2241
2037
  ]);
2242
2038
  const autoId = useId4();
2243
2039
  const id = idProp != null ? idProp : autoId;
2244
- return /* @__PURE__ */ jsxs20("div", { className: cn("ph-field", wrapperClassName), children: [
2245
- /* @__PURE__ */ jsx24("label", { htmlFor: id, className: "ph-label", children: label }),
2246
- /* @__PURE__ */ jsxs20("div", { className: "ph-search-group flex w-full max-w-lg min-h-[2.3125rem] items-stretch divide-x divide-ph-border", children: [
2247
- /* @__PURE__ */ jsx24(
2040
+ return /* @__PURE__ */ jsxs18("div", { className: cn("ph-field", wrapperClassName), children: [
2041
+ /* @__PURE__ */ jsx21("label", { htmlFor: id, className: "ph-label", children: label }),
2042
+ /* @__PURE__ */ jsxs18("div", { className: "ph-search-group flex w-full max-w-lg min-h-[2.3125rem] items-stretch divide-x divide-ph-border", children: [
2043
+ /* @__PURE__ */ jsx21(
2248
2044
  "input",
2249
2045
  __spreadValues({
2250
2046
  id,
@@ -2253,12 +2049,12 @@ function SearchGroup(_a) {
2253
2049
  className: cn("ph-input ph-input-group-field min-w-0 flex-1", className)
2254
2050
  }, props)
2255
2051
  ),
2256
- /* @__PURE__ */ jsx24(
2052
+ /* @__PURE__ */ jsx21(
2257
2053
  Button,
2258
2054
  {
2259
2055
  type: "submit",
2260
2056
  variant: "primary",
2261
- icon: /* @__PURE__ */ jsx24(IconSearch, { className: "h-4 w-4", "aria-hidden": true }),
2057
+ icon: /* @__PURE__ */ jsx21(IconSearch, { className: "h-4 w-4", "aria-hidden": true }),
2262
2058
  className: "ph-search-group__submit",
2263
2059
  "aria-label": submitLabel
2264
2060
  }
@@ -2268,7 +2064,7 @@ function SearchGroup(_a) {
2268
2064
  }
2269
2065
 
2270
2066
  // src/components/ui/Table.tsx
2271
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
2067
+ import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
2272
2068
  function Table({
2273
2069
  data,
2274
2070
  columns,
@@ -2279,15 +2075,15 @@ function Table({
2279
2075
  className,
2280
2076
  caption
2281
2077
  }) {
2282
- return /* @__PURE__ */ jsx25("div", { className: cn("ph-table-wrap", compact && "ph-table-compact", className), children: /* @__PURE__ */ jsxs21("table", { className: cn("ph-table", zebra && "ph-table-zebra", ribbon && "ph-table--ribbon"), children: [
2283
- caption && /* @__PURE__ */ jsx25("caption", { className: "sr-only", children: caption }),
2284
- /* @__PURE__ */ jsx25("thead", { children: /* @__PURE__ */ jsx25("tr", { children: columns.map((col) => /* @__PURE__ */ jsx25("th", { className: col.className, children: col.header }, col.key)) }) }),
2285
- /* @__PURE__ */ jsx25("tbody", { children: data.map((row, i) => /* @__PURE__ */ jsx25("tr", { style: getRowStyle == null ? void 0 : getRowStyle(row), children: columns.map((col) => /* @__PURE__ */ jsx25("td", { className: col.className, children: col.cell(row) }, col.key)) }, i)) })
2078
+ return /* @__PURE__ */ jsx22("div", { className: cn("ph-table-wrap", compact && "ph-table-compact", className), children: /* @__PURE__ */ jsxs19("table", { className: cn("ph-table", zebra && "ph-table-zebra", ribbon && "ph-table--ribbon"), children: [
2079
+ caption && /* @__PURE__ */ jsx22("caption", { className: "sr-only", children: caption }),
2080
+ /* @__PURE__ */ jsx22("thead", { children: /* @__PURE__ */ jsx22("tr", { children: columns.map((col) => /* @__PURE__ */ jsx22("th", { className: col.className, children: col.header }, col.key)) }) }),
2081
+ /* @__PURE__ */ jsx22("tbody", { children: data.map((row, i) => /* @__PURE__ */ jsx22("tr", { style: getRowStyle == null ? void 0 : getRowStyle(row), children: columns.map((col) => /* @__PURE__ */ jsx22("td", { className: col.className, children: col.cell(row) }, col.key)) }, i)) })
2286
2082
  ] }) });
2287
2083
  }
2288
2084
 
2289
2085
  // src/components/ui/Stat.tsx
2290
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
2086
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
2291
2087
  var toneMap = {
2292
2088
  default: "text-ph-ink",
2293
2089
  brand: "text-ph-brand",
@@ -2304,16 +2100,16 @@ var statMap = {
2304
2100
  };
2305
2101
  function Stat(_a) {
2306
2102
  var _b = _a, { icon, label, value, footer, tone = "default", className } = _b, props = __objRest(_b, ["icon", "label", "value", "footer", "tone", "className"]);
2307
- return /* @__PURE__ */ jsxs22("article", __spreadProps(__spreadValues({ className: cn("ph-stat", statMap[tone], className) }, props), { children: [
2308
- icon && /* @__PURE__ */ jsx26("div", { className: cn("mb-2 h-7 w-7", toneMap[tone]), children: icon }),
2309
- /* @__PURE__ */ jsx26("div", { className: cn("ph-stat-label", tone === "warning" && toneMap[tone]), children: label }),
2310
- /* @__PURE__ */ jsx26("div", { className: cn("ph-stat-val", toneMap[tone]), children: value }),
2311
- footer && /* @__PURE__ */ jsx26("p", { className: "text-xs text-ph-subtle", children: footer })
2103
+ return /* @__PURE__ */ jsxs20("article", __spreadProps(__spreadValues({ className: cn("ph-stat", statMap[tone], className) }, props), { children: [
2104
+ icon && /* @__PURE__ */ jsx23("div", { className: cn("mb-2 h-7 w-7", toneMap[tone]), children: icon }),
2105
+ /* @__PURE__ */ jsx23("div", { className: cn("ph-stat-label", tone === "warning" && toneMap[tone]), children: label }),
2106
+ /* @__PURE__ */ jsx23("div", { className: cn("ph-stat-val", toneMap[tone]), children: value }),
2107
+ footer && /* @__PURE__ */ jsx23("p", { className: "text-xs text-ph-subtle", children: footer })
2312
2108
  ] }));
2313
2109
  }
2314
2110
 
2315
2111
  // src/components/ui/Toast.tsx
2316
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
2112
+ import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
2317
2113
  var statusConfig2 = {
2318
2114
  info: { icon: IconErrorOutline, color: "text-ph-info", bg: "ph-toast-info" },
2319
2115
  success: { icon: IconCheckCircle, color: "text-ph-success", bg: "ph-toast-success" },
@@ -2329,33 +2125,33 @@ function Toast({
2329
2125
  }) {
2330
2126
  const config = statusConfig2[status];
2331
2127
  const Icon = config.icon;
2332
- return /* @__PURE__ */ jsxs23("div", { className: cn("ph-toast", config.bg, className), children: [
2333
- /* @__PURE__ */ jsx27(Icon, { className: cn("mt-0.5 h-5 w-5 shrink-0", config.color), "aria-hidden": true }),
2334
- /* @__PURE__ */ jsxs23("div", { className: "pr-8", children: [
2335
- /* @__PURE__ */ jsx27("div", { className: "font-semibold", children: title }),
2336
- description && /* @__PURE__ */ jsx27("p", { className: "mt-1 text-xs text-ph-subtle", children: description })
2128
+ return /* @__PURE__ */ jsxs21("div", { className: cn("ph-toast", config.bg, className), children: [
2129
+ /* @__PURE__ */ jsx24(Icon, { className: cn("mt-0.5 h-5 w-5 shrink-0", config.color), "aria-hidden": true }),
2130
+ /* @__PURE__ */ jsxs21("div", { className: "pr-8", children: [
2131
+ /* @__PURE__ */ jsx24("div", { className: "font-semibold", children: title }),
2132
+ description && /* @__PURE__ */ jsx24("p", { className: "mt-1 text-xs text-ph-subtle", children: description })
2337
2133
  ] }),
2338
- onDismiss && /* @__PURE__ */ jsx27(
2134
+ onDismiss && /* @__PURE__ */ jsx24(
2339
2135
  "button",
2340
2136
  {
2341
2137
  type: "button",
2342
2138
  "aria-label": `Dismiss ${title}`,
2343
2139
  className: "absolute right-2 top-2 ph-btn ph-btn-ghost ph-btn-xs ph-btn-circle",
2344
2140
  onClick: onDismiss,
2345
- children: /* @__PURE__ */ jsx27(IconClose, { className: "h-4 w-4" })
2141
+ children: /* @__PURE__ */ jsx24(IconClose, { className: "h-4 w-4" })
2346
2142
  }
2347
2143
  )
2348
2144
  ] });
2349
2145
  }
2350
2146
  function ToastStack({ children, className }) {
2351
- return /* @__PURE__ */ jsx27("div", { className: cn("ph-toast-stack", className), children });
2147
+ return /* @__PURE__ */ jsx24("div", { className: cn("ph-toast-stack", className), children });
2352
2148
  }
2353
2149
 
2354
2150
  // src/components/ui/Tabs.tsx
2355
- import { jsx as jsx28 } from "react/jsx-runtime";
2151
+ import { jsx as jsx25 } from "react/jsx-runtime";
2356
2152
  function Tabs({ items, value, onChange, variant = "pill", className }) {
2357
2153
  if (variant === "underline") {
2358
- return /* @__PURE__ */ jsx28("div", { className: cn("flex gap-6 border-b border-ph-border", className), children: items.map((item) => /* @__PURE__ */ jsx28(
2154
+ return /* @__PURE__ */ jsx25("div", { className: cn("flex gap-6 border-b border-ph-border", className), children: items.map((item) => /* @__PURE__ */ jsx25(
2359
2155
  "button",
2360
2156
  {
2361
2157
  type: "button",
@@ -2369,7 +2165,7 @@ function Tabs({ items, value, onChange, variant = "pill", className }) {
2369
2165
  item.value
2370
2166
  )) });
2371
2167
  }
2372
- return /* @__PURE__ */ jsx28("div", { className: cn("ph-tabs-row inline-flex", className), children: items.map((item) => /* @__PURE__ */ jsx28(
2168
+ return /* @__PURE__ */ jsx25("div", { className: cn("ph-tabs-row inline-flex", className), children: items.map((item) => /* @__PURE__ */ jsx25(
2373
2169
  "button",
2374
2170
  {
2375
2171
  type: "button",
@@ -2641,17 +2437,17 @@ function ThemeDomSync() {
2641
2437
 
2642
2438
  // src/components/ui/ThemeManager.tsx
2643
2439
  import { useLayoutEffect as useLayoutEffect2 } from "react";
2644
- import { Fragment as Fragment6, jsx as jsx29 } from "react/jsx-runtime";
2440
+ import { Fragment as Fragment4, jsx as jsx26 } from "react/jsx-runtime";
2645
2441
  function ThemeManager({ children }) {
2646
2442
  useLayoutEffect2(() => {
2647
2443
  persistTheme(readStoredTheme());
2648
2444
  }, []);
2649
- return /* @__PURE__ */ jsx29(Fragment6, { children });
2445
+ return /* @__PURE__ */ jsx26(Fragment4, { children });
2650
2446
  }
2651
2447
 
2652
2448
  // src/components/ui/ThemeSwitcher.tsx
2653
2449
  import { useEffect, useState } from "react";
2654
- import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
2450
+ import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
2655
2451
  function ThemeSwitcher({ className }) {
2656
2452
  const [themeId, setThemeId] = useState("hedgehog-light");
2657
2453
  useEffect(() => {
@@ -2659,9 +2455,9 @@ function ThemeSwitcher({ className }) {
2659
2455
  persistTheme(id);
2660
2456
  setThemeId(id);
2661
2457
  }, []);
2662
- return /* @__PURE__ */ jsxs24("label", { className: cn("flex min-w-0 items-center gap-2", className), children: [
2663
- /* @__PURE__ */ jsx30("span", { className: "shrink-0 text-xs font-medium text-ph-mutedtext sm:text-sm", children: "Theme" }),
2664
- /* @__PURE__ */ jsx30(
2458
+ return /* @__PURE__ */ jsxs22("label", { className: cn("flex min-w-0 items-center gap-2", className), children: [
2459
+ /* @__PURE__ */ jsx27("span", { className: "shrink-0 text-xs font-medium text-ph-mutedtext sm:text-sm", children: "Theme" }),
2460
+ /* @__PURE__ */ jsx27(
2665
2461
  "select",
2666
2462
  {
2667
2463
  className: "ph-select max-w-[11rem] !min-h-[2rem] py-1 pl-2.5 pr-8 text-xs sm:max-w-[14rem] sm:text-sm",
@@ -2672,7 +2468,7 @@ function ThemeSwitcher({ className }) {
2672
2468
  persistTheme(next);
2673
2469
  setThemeId(next);
2674
2470
  },
2675
- children: THEME_GROUPS.map((group) => /* @__PURE__ */ jsx30("optgroup", { label: group, children: THEMES.filter((theme) => theme.group === group).map((theme) => /* @__PURE__ */ jsx30("option", { value: theme.id, children: theme.name }, theme.id)) }, group))
2471
+ children: THEME_GROUPS.map((group) => /* @__PURE__ */ jsx27("optgroup", { label: group, children: THEMES.filter((theme) => theme.group === group).map((theme) => /* @__PURE__ */ jsx27("option", { value: theme.id, children: theme.name }, theme.id)) }, group))
2676
2472
  }
2677
2473
  )
2678
2474
  ] });
@@ -2680,7 +2476,7 @@ function ThemeSwitcher({ className }) {
2680
2476
 
2681
2477
  // src/components/ui/Accordion.tsx
2682
2478
  import { useState as useState2 } from "react";
2683
- import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
2479
+ import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
2684
2480
  function Accordion({
2685
2481
  items,
2686
2482
  allowMultiple = false,
@@ -2702,18 +2498,18 @@ function Accordion({
2702
2498
  return next;
2703
2499
  });
2704
2500
  };
2705
- return /* @__PURE__ */ jsx31("div", { className: cn("divide-y divide-ph-border rounded-xl border border-ph-border bg-ph-surface", className), children: items.map((item) => {
2501
+ return /* @__PURE__ */ jsx28("div", { className: cn("divide-y divide-ph-border rounded-xl border border-ph-border bg-ph-surface", className), children: items.map((item) => {
2706
2502
  const isOpen = openItems.has(item.id);
2707
- return /* @__PURE__ */ jsxs25("div", { className: "first:rounded-t-xl last:rounded-b-xl", children: [
2708
- /* @__PURE__ */ jsxs25(
2503
+ return /* @__PURE__ */ jsxs23("div", { className: "first:rounded-t-xl last:rounded-b-xl", children: [
2504
+ /* @__PURE__ */ jsxs23(
2709
2505
  "button",
2710
2506
  {
2711
2507
  type: "button",
2712
2508
  onClick: () => toggleItem(item.id),
2713
2509
  className: "flex w-full items-center justify-between px-5 py-4 text-left transition hover:bg-ph-muted",
2714
2510
  children: [
2715
- /* @__PURE__ */ jsx31("span", { className: "font-semibold text-ph-ink", children: item.title }),
2716
- /* @__PURE__ */ jsx31(
2511
+ /* @__PURE__ */ jsx28("span", { className: "font-semibold text-ph-ink", children: item.title }),
2512
+ /* @__PURE__ */ jsx28(
2717
2513
  IconChevronDown,
2718
2514
  {
2719
2515
  className: cn(
@@ -2725,14 +2521,14 @@ function Accordion({
2725
2521
  ]
2726
2522
  }
2727
2523
  ),
2728
- /* @__PURE__ */ jsx31(
2524
+ /* @__PURE__ */ jsx28(
2729
2525
  "div",
2730
2526
  {
2731
2527
  className: cn(
2732
2528
  "grid transition-all duration-200",
2733
2529
  isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
2734
2530
  ),
2735
- children: /* @__PURE__ */ jsx31("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx31("div", { className: "px-5 pb-4 text-ph-subtle", children: item.content }) })
2531
+ children: /* @__PURE__ */ jsx28("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx28("div", { className: "px-5 pb-4 text-ph-subtle", children: item.content }) })
2736
2532
  }
2737
2533
  )
2738
2534
  ] }, item.id);
@@ -2740,16 +2536,16 @@ function Accordion({
2740
2536
  }
2741
2537
 
2742
2538
  // src/components/ui/Stepper.tsx
2743
- import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
2539
+ import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
2744
2540
  function Stepper({ steps, currentStep, className }) {
2745
- return /* @__PURE__ */ jsx32("div", { className: cn("flex items-start gap-2", className), children: steps.map((step, index) => {
2541
+ return /* @__PURE__ */ jsx29("div", { className: cn("flex items-start gap-2", className), children: steps.map((step, index) => {
2746
2542
  const isCompleted = index < currentStep;
2747
2543
  const isCurrent = index === currentStep;
2748
2544
  const isPending = index > currentStep;
2749
2545
  const isError = step.status === "error";
2750
- return /* @__PURE__ */ jsxs26("div", { className: "flex flex-1 items-start gap-2", children: [
2751
- /* @__PURE__ */ jsxs26("div", { className: "flex flex-1 flex-col items-center", children: [
2752
- /* @__PURE__ */ jsx32(
2546
+ return /* @__PURE__ */ jsxs24("div", { className: "flex flex-1 items-start gap-2", children: [
2547
+ /* @__PURE__ */ jsxs24("div", { className: "flex flex-1 flex-col items-center", children: [
2548
+ /* @__PURE__ */ jsx29(
2753
2549
  "div",
2754
2550
  {
2755
2551
  className: cn(
@@ -2759,11 +2555,11 @@ function Stepper({ steps, currentStep, className }) {
2759
2555
  isCurrent && isError && "bg-ph-danger text-[var(--ph-on-danger)]",
2760
2556
  isPending && "bg-ph-muted text-ph-mutedtext"
2761
2557
  ),
2762
- children: isCompleted ? /* @__PURE__ */ jsx32(IconCheck, { className: "h-5 w-5", "aria-hidden": true }) : index + 1
2558
+ children: isCompleted ? /* @__PURE__ */ jsx29(IconCheck, { className: "h-5 w-5", "aria-hidden": true }) : index + 1
2763
2559
  }
2764
2560
  ),
2765
- /* @__PURE__ */ jsxs26("div", { className: "mt-2 text-center", children: [
2766
- /* @__PURE__ */ jsx32(
2561
+ /* @__PURE__ */ jsxs24("div", { className: "mt-2 text-center", children: [
2562
+ /* @__PURE__ */ jsx29(
2767
2563
  "p",
2768
2564
  {
2769
2565
  className: cn(
@@ -2774,10 +2570,10 @@ function Stepper({ steps, currentStep, className }) {
2774
2570
  children: step.label
2775
2571
  }
2776
2572
  ),
2777
- step.description && /* @__PURE__ */ jsx32("p", { className: "mt-0.5 text-xs text-ph-mutedtext", children: step.description })
2573
+ step.description && /* @__PURE__ */ jsx29("p", { className: "mt-0.5 text-xs text-ph-mutedtext", children: step.description })
2778
2574
  ] })
2779
2575
  ] }),
2780
- index < steps.length - 1 && /* @__PURE__ */ jsx32(
2576
+ index < steps.length - 1 && /* @__PURE__ */ jsx29(
2781
2577
  "div",
2782
2578
  {
2783
2579
  className: cn(
@@ -2791,16 +2587,16 @@ function Stepper({ steps, currentStep, className }) {
2791
2587
  }
2792
2588
 
2793
2589
  // src/components/ui/SegmentedControl.tsx
2794
- import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
2590
+ import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
2795
2591
  function SegmentedControl({ options, value, onChange, className }) {
2796
- return /* @__PURE__ */ jsx33(
2592
+ return /* @__PURE__ */ jsx30(
2797
2593
  "div",
2798
2594
  {
2799
2595
  className: cn(
2800
2596
  "inline-flex rounded-lg bg-ph-muted p-1",
2801
2597
  className
2802
2598
  ),
2803
- children: options.map((option) => /* @__PURE__ */ jsxs27(
2599
+ children: options.map((option) => /* @__PURE__ */ jsxs25(
2804
2600
  "button",
2805
2601
  {
2806
2602
  type: "button",
@@ -2810,7 +2606,7 @@ function SegmentedControl({ options, value, onChange, className }) {
2810
2606
  value === option.value ? "bg-ph-surface text-ph-ink shadow-ph" : "text-ph-subtle hover:text-ph-ink"
2811
2607
  ),
2812
2608
  children: [
2813
- option.icon && /* @__PURE__ */ jsx33("span", { className: "h-4 w-4", children: option.icon }),
2609
+ option.icon && /* @__PURE__ */ jsx30("span", { className: "h-4 w-4", children: option.icon }),
2814
2610
  option.label
2815
2611
  ]
2816
2612
  },
@@ -2822,7 +2618,7 @@ function SegmentedControl({ options, value, onChange, className }) {
2822
2618
 
2823
2619
  // src/components/ui/CommandPalette.tsx
2824
2620
  import { useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
2825
- import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
2621
+ import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
2826
2622
  function CommandPalette({
2827
2623
  items,
2828
2624
  isOpen,
@@ -2871,7 +2667,7 @@ function CommandPalette({
2871
2667
  return () => window.removeEventListener("keydown", handleKeyDown);
2872
2668
  }, [isOpen, filtered, selectedIndex, onClose]);
2873
2669
  if (!isOpen) return null;
2874
- return /* @__PURE__ */ jsx34("div", { className: "fixed inset-0 z-50 flex items-start justify-center bg-black/40 pt-[20vh] backdrop-blur-sm", children: /* @__PURE__ */ jsxs28(
2670
+ return /* @__PURE__ */ jsx31("div", { className: "fixed inset-0 z-50 flex items-start justify-center bg-black/40 pt-[20vh] backdrop-blur-sm", children: /* @__PURE__ */ jsxs26(
2875
2671
  "div",
2876
2672
  {
2877
2673
  className: cn(
@@ -2879,9 +2675,9 @@ function CommandPalette({
2879
2675
  className
2880
2676
  ),
2881
2677
  children: [
2882
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3 border-b border-ph-border px-4 py-3", children: [
2883
- /* @__PURE__ */ jsx34(IconSearch, { className: "h-5 w-5 text-ph-mutedtext" }),
2884
- /* @__PURE__ */ jsx34(
2678
+ /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3 border-b border-ph-border px-4 py-3", children: [
2679
+ /* @__PURE__ */ jsx31(IconSearch, { className: "h-5 w-5 text-ph-mutedtext" }),
2680
+ /* @__PURE__ */ jsx31(
2885
2681
  "input",
2886
2682
  {
2887
2683
  ref: inputRef,
@@ -2895,9 +2691,9 @@ function CommandPalette({
2895
2691
  className: "flex-1 bg-transparent text-ph-ink outline-none placeholder:text-ph-mutedtext"
2896
2692
  }
2897
2693
  ),
2898
- /* @__PURE__ */ jsx34("kbd", { className: "rounded border border-ph-border bg-ph-muted px-1.5 py-0.5 text-xs text-ph-mutedtext", children: "ESC" })
2694
+ /* @__PURE__ */ jsx31("kbd", { className: "rounded border border-ph-border bg-ph-muted px-1.5 py-0.5 text-xs text-ph-mutedtext", children: "ESC" })
2899
2695
  ] }),
2900
- /* @__PURE__ */ jsx34("div", { className: "max-h-[50vh] overflow-y-auto py-2", children: filtered.length === 0 ? /* @__PURE__ */ jsx34("div", { className: "px-4 py-8 text-center text-sm text-ph-mutedtext", children: "No results found." }) : filtered.map((item, index) => /* @__PURE__ */ jsxs28(
2696
+ /* @__PURE__ */ jsx31("div", { className: "max-h-[50vh] overflow-y-auto py-2", children: filtered.length === 0 ? /* @__PURE__ */ jsx31("div", { className: "px-4 py-8 text-center text-sm text-ph-mutedtext", children: "No results found." }) : filtered.map((item, index) => /* @__PURE__ */ jsxs26(
2901
2697
  "button",
2902
2698
  {
2903
2699
  type: "button",
@@ -2911,9 +2707,9 @@ function CommandPalette({
2911
2707
  index === selectedIndex ? "bg-ph-muted text-ph-ink" : "text-ph-subtle"
2912
2708
  ),
2913
2709
  children: [
2914
- item.icon && /* @__PURE__ */ jsx34("span", { className: "h-5 w-5", children: item.icon }),
2915
- /* @__PURE__ */ jsx34("span", { className: "flex-1", children: item.label }),
2916
- item.shortcut && /* @__PURE__ */ jsx34("kbd", { className: "rounded border border-ph-border bg-ph-surface px-1.5 py-0.5 text-xs text-ph-mutedtext", children: item.shortcut })
2710
+ item.icon && /* @__PURE__ */ jsx31("span", { className: "h-5 w-5", children: item.icon }),
2711
+ /* @__PURE__ */ jsx31("span", { className: "flex-1", children: item.label }),
2712
+ item.shortcut && /* @__PURE__ */ jsx31("kbd", { className: "rounded border border-ph-border bg-ph-surface px-1.5 py-0.5 text-xs text-ph-mutedtext", children: item.shortcut })
2917
2713
  ]
2918
2714
  },
2919
2715
  item.id
@@ -2925,7 +2721,7 @@ function CommandPalette({
2925
2721
 
2926
2722
  // src/components/ui/Calendar.tsx
2927
2723
  import { useState as useState4 } from "react";
2928
- import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
2724
+ import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
2929
2725
  function Calendar({ value, onChange, className }) {
2930
2726
  const [currentMonth, setCurrentMonth] = useState4(value || /* @__PURE__ */ new Date());
2931
2727
  const today = /* @__PURE__ */ new Date();
@@ -2967,37 +2763,37 @@ function Calendar({ value, onChange, className }) {
2967
2763
  for (let i = 1; i <= daysInMonth; i++) {
2968
2764
  days.push(i);
2969
2765
  }
2970
- return /* @__PURE__ */ jsxs29("div", { className: cn("w-[280px] rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", className), children: [
2971
- /* @__PURE__ */ jsxs29("div", { className: "mb-4 flex items-center justify-between", children: [
2972
- /* @__PURE__ */ jsx35(
2766
+ return /* @__PURE__ */ jsxs27("div", { className: cn("w-[280px] rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", className), children: [
2767
+ /* @__PURE__ */ jsxs27("div", { className: "mb-4 flex items-center justify-between", children: [
2768
+ /* @__PURE__ */ jsx32(
2973
2769
  "button",
2974
2770
  {
2975
2771
  type: "button",
2976
2772
  onClick: prevMonth,
2977
2773
  "aria-label": "Previous month",
2978
2774
  className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
2979
- children: /* @__PURE__ */ jsx35(IconChevronLeft, { className: "h-5 w-5", "aria-hidden": true })
2775
+ children: /* @__PURE__ */ jsx32(IconChevronLeft, { className: "h-5 w-5", "aria-hidden": true })
2980
2776
  }
2981
2777
  ),
2982
- /* @__PURE__ */ jsxs29("span", { className: "text-sm font-semibold text-ph-ink", children: [
2778
+ /* @__PURE__ */ jsxs27("span", { className: "text-sm font-semibold text-ph-ink", children: [
2983
2779
  monthNames[month],
2984
2780
  " ",
2985
2781
  year
2986
2782
  ] }),
2987
- /* @__PURE__ */ jsx35(
2783
+ /* @__PURE__ */ jsx32(
2988
2784
  "button",
2989
2785
  {
2990
2786
  type: "button",
2991
2787
  onClick: nextMonth,
2992
2788
  "aria-label": "Next month",
2993
2789
  className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
2994
- children: /* @__PURE__ */ jsx35(IconChevronRight, { className: "h-5 w-5", "aria-hidden": true })
2790
+ children: /* @__PURE__ */ jsx32(IconChevronRight, { className: "h-5 w-5", "aria-hidden": true })
2995
2791
  }
2996
2792
  )
2997
2793
  ] }),
2998
- /* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-7 gap-1", children: [
2999
- weekDays.map((day) => /* @__PURE__ */ jsx35("div", { className: "py-1 text-center text-xs font-medium text-ph-mutedtext", children: day }, day)),
3000
- days.map((day, index) => /* @__PURE__ */ jsx35("div", { className: "aspect-square", children: day && /* @__PURE__ */ jsx35(
2794
+ /* @__PURE__ */ jsxs27("div", { className: "grid grid-cols-7 gap-1", children: [
2795
+ weekDays.map((day) => /* @__PURE__ */ jsx32("div", { className: "py-1 text-center text-xs font-medium text-ph-mutedtext", children: day }, day)),
2796
+ days.map((day, index) => /* @__PURE__ */ jsx32("div", { className: "aspect-square", children: day && /* @__PURE__ */ jsx32(
3001
2797
  "button",
3002
2798
  {
3003
2799
  type: "button",
@@ -3015,10 +2811,10 @@ function Calendar({ value, onChange, className }) {
3015
2811
 
3016
2812
  // src/components/ui/HoverCard.tsx
3017
2813
  import { useState as useState5 } from "react";
3018
- import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
2814
+ import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
3019
2815
  function HoverCard({ trigger, children, className }) {
3020
2816
  const [isVisible, setIsVisible] = useState5(false);
3021
- return /* @__PURE__ */ jsxs30(
2817
+ return /* @__PURE__ */ jsxs28(
3022
2818
  "div",
3023
2819
  {
3024
2820
  className: "relative inline-block",
@@ -3026,7 +2822,7 @@ function HoverCard({ trigger, children, className }) {
3026
2822
  onMouseLeave: () => setIsVisible(false),
3027
2823
  children: [
3028
2824
  trigger,
3029
- /* @__PURE__ */ jsxs30(
2825
+ /* @__PURE__ */ jsxs28(
3030
2826
  "div",
3031
2827
  {
3032
2828
  className: cn(
@@ -3035,8 +2831,8 @@ function HoverCard({ trigger, children, className }) {
3035
2831
  className
3036
2832
  ),
3037
2833
  children: [
3038
- /* @__PURE__ */ jsx36("div", { className: "absolute -top-1.5 left-1/2 h-3 w-3 -translate-x-1/2 rotate-45 border-l border-t border-ph-border bg-ph-surface" }),
3039
- /* @__PURE__ */ jsx36("div", { className: "relative", children })
2834
+ /* @__PURE__ */ jsx33("div", { className: "absolute -top-1.5 left-1/2 h-3 w-3 -translate-x-1/2 rotate-45 border-l border-t border-ph-border bg-ph-surface" }),
2835
+ /* @__PURE__ */ jsx33("div", { className: "relative", children })
3040
2836
  ]
3041
2837
  }
3042
2838
  )
@@ -3056,13 +2852,13 @@ import {
3056
2852
  useState as useState6
3057
2853
  } from "react";
3058
2854
  import { createPortal } from "react-dom";
3059
- import { Fragment as Fragment7, jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
2855
+ import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
3060
2856
  var TooltipDelayContext = createContext(0);
3061
2857
  function TooltipProvider({
3062
2858
  children,
3063
2859
  delayDuration = 0
3064
2860
  }) {
3065
- return /* @__PURE__ */ jsx37(TooltipDelayContext.Provider, { value: delayDuration, children });
2861
+ return /* @__PURE__ */ jsx34(TooltipDelayContext.Provider, { value: delayDuration, children });
3066
2862
  }
3067
2863
  function tooltipPosition(trigger, side, align, offset) {
3068
2864
  const horizontal = align === "start" ? trigger.left : align === "end" ? trigger.right : trigger.left + trigger.width / 2;
@@ -3155,8 +2951,8 @@ function Tooltip({
3155
2951
  useEffect3(() => () => clearTimer(), []);
3156
2952
  const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
3157
2953
  const trigger = cloneElement(children, { "aria-describedby": describedBy });
3158
- return /* @__PURE__ */ jsxs31(Fragment7, { children: [
3159
- /* @__PURE__ */ jsx37(
2954
+ return /* @__PURE__ */ jsxs29(Fragment5, { children: [
2955
+ /* @__PURE__ */ jsx34(
3160
2956
  "span",
3161
2957
  {
3162
2958
  ref: triggerRef,
@@ -3172,12 +2968,12 @@ function Tooltip({
3172
2968
  }
3173
2969
  ),
3174
2970
  isOpen && position && typeof document !== "undefined" ? createPortal(
3175
- /* @__PURE__ */ jsx37(
2971
+ /* @__PURE__ */ jsx34(
3176
2972
  "span",
3177
2973
  {
3178
2974
  style: __spreadValues({ position: "fixed" }, position),
3179
2975
  className: "pointer-events-none z-[200]",
3180
- children: /* @__PURE__ */ jsx37(
2976
+ children: /* @__PURE__ */ jsx34(
3181
2977
  "span",
3182
2978
  {
3183
2979
  id: tooltipId,
@@ -3195,9 +2991,9 @@ function Tooltip({
3195
2991
  }
3196
2992
 
3197
2993
  // src/components/ui/EmptyState.tsx
3198
- import { jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
2994
+ import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
3199
2995
  function EmptyState({ icon, title, description, action, className }) {
3200
- return /* @__PURE__ */ jsxs32(
2996
+ return /* @__PURE__ */ jsxs30(
3201
2997
  "div",
3202
2998
  {
3203
2999
  className: cn(
@@ -3205,17 +3001,17 @@ function EmptyState({ icon, title, description, action, className }) {
3205
3001
  className
3206
3002
  ),
3207
3003
  children: [
3208
- icon && /* @__PURE__ */ jsx38("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-ph-muted text-ph-mutedtext", children: icon }),
3209
- /* @__PURE__ */ jsx38("h3", { className: "text-base font-semibold text-ph-ink", children: title }),
3210
- description && /* @__PURE__ */ jsx38("p", { className: "mt-1 max-w-sm text-sm text-ph-subtle", children: description }),
3211
- action && /* @__PURE__ */ jsx38("div", { className: "mt-4", children: action })
3004
+ icon && /* @__PURE__ */ jsx35("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-ph-muted text-ph-mutedtext", children: icon }),
3005
+ /* @__PURE__ */ jsx35("h3", { className: "text-base font-semibold text-ph-ink", children: title }),
3006
+ description && /* @__PURE__ */ jsx35("p", { className: "mt-1 max-w-sm text-sm text-ph-subtle", children: description }),
3007
+ action && /* @__PURE__ */ jsx35("div", { className: "mt-4", children: action })
3212
3008
  ]
3213
3009
  }
3214
3010
  );
3215
3011
  }
3216
3012
 
3217
3013
  // src/components/ui/FilterChips.tsx
3218
- import { Fragment as Fragment8, jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
3014
+ import { Fragment as Fragment6, jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
3219
3015
  function FilterChips({
3220
3016
  chips,
3221
3017
  onToggle,
@@ -3223,20 +3019,20 @@ function FilterChips({
3223
3019
  className,
3224
3020
  "aria-label": ariaLabel = "Applied filters"
3225
3021
  }) {
3226
- return /* @__PURE__ */ jsx39("div", { className: cn("ph-filter-chips", className), role: "group", "aria-label": ariaLabel, children: chips.map((chip) => {
3022
+ return /* @__PURE__ */ jsx36("div", { className: cn("ph-filter-chips", className), role: "group", "aria-label": ariaLabel, children: chips.map((chip) => {
3227
3023
  var _a;
3228
3024
  const label = (_a = chip.removeLabel) != null ? _a : getChipText(chip);
3229
- const content = /* @__PURE__ */ jsxs33(Fragment8, { children: [
3230
- /* @__PURE__ */ jsx39("span", { className: "ph-filter-chip__label", children: chip.label }),
3231
- chip.value != null ? /* @__PURE__ */ jsx39("span", { className: "ph-filter-chip__value", children: chip.value }) : null
3025
+ const content = /* @__PURE__ */ jsxs31(Fragment6, { children: [
3026
+ /* @__PURE__ */ jsx36("span", { className: "ph-filter-chip__label", children: chip.label }),
3027
+ chip.value != null ? /* @__PURE__ */ jsx36("span", { className: "ph-filter-chip__value", children: chip.value }) : null
3232
3028
  ] });
3233
- return /* @__PURE__ */ jsxs33(
3029
+ return /* @__PURE__ */ jsxs31(
3234
3030
  "span",
3235
3031
  {
3236
3032
  className: cn("ph-filter-chip", chip.active && "ph-filter-chip--active"),
3237
3033
  "data-state": chip.active ? "on" : "off",
3238
3034
  children: [
3239
- onToggle ? /* @__PURE__ */ jsx39(
3035
+ onToggle ? /* @__PURE__ */ jsx36(
3240
3036
  "button",
3241
3037
  {
3242
3038
  type: "button",
@@ -3245,15 +3041,15 @@ function FilterChips({
3245
3041
  onClick: () => onToggle(chip.id),
3246
3042
  children: content
3247
3043
  }
3248
- ) : /* @__PURE__ */ jsx39("span", { className: "ph-filter-chip__main", children: content }),
3249
- chip.active && onRemove ? /* @__PURE__ */ jsx39(
3044
+ ) : /* @__PURE__ */ jsx36("span", { className: "ph-filter-chip__main", children: content }),
3045
+ chip.active && onRemove ? /* @__PURE__ */ jsx36(
3250
3046
  "button",
3251
3047
  {
3252
3048
  type: "button",
3253
3049
  className: "ph-filter-chip__remove",
3254
3050
  "aria-label": `Remove ${label} filter`,
3255
3051
  onClick: () => onRemove(chip.id),
3256
- children: /* @__PURE__ */ jsx39(IconClose, { className: "h-3 w-3", "aria-hidden": true })
3052
+ children: /* @__PURE__ */ jsx36(IconClose, { className: "h-3 w-3", "aria-hidden": true })
3257
3053
  }
3258
3054
  ) : null
3259
3055
  ]
@@ -3269,7 +3065,7 @@ function getChipText(chip) {
3269
3065
  }
3270
3066
 
3271
3067
  // src/components/ui/FilterBar.tsx
3272
- import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
3068
+ import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
3273
3069
  function FilterBar(_a) {
3274
3070
  var _b = _a, {
3275
3071
  children,
@@ -3286,12 +3082,12 @@ function FilterBar(_a) {
3286
3082
  "resultCount",
3287
3083
  "className"
3288
3084
  ]);
3289
- return /* @__PURE__ */ jsxs34("div", __spreadProps(__spreadValues({ className: cn("ph-filter-bar", className) }, props), { children: [
3290
- /* @__PURE__ */ jsxs34("div", { className: "ph-filter-bar__controls", role: "group", "aria-label": label, children: [
3085
+ return /* @__PURE__ */ jsxs32("div", __spreadProps(__spreadValues({ className: cn("ph-filter-bar", className) }, props), { children: [
3086
+ /* @__PURE__ */ jsxs32("div", { className: "ph-filter-bar__controls", role: "group", "aria-label": label, children: [
3291
3087
  children,
3292
- onClear ? /* @__PURE__ */ jsx40("button", { type: "button", className: "ph-filter-bar__clear", onClick: onClear, children: clearLabel }) : null
3088
+ onClear ? /* @__PURE__ */ jsx37("button", { type: "button", className: "ph-filter-bar__clear", onClick: onClear, children: clearLabel }) : null
3293
3089
  ] }),
3294
- resultCount != null ? /* @__PURE__ */ jsx40("output", { className: "ph-filter-bar__results", "aria-live": "polite", children: resultCount }) : null
3090
+ resultCount != null ? /* @__PURE__ */ jsx37("output", { className: "ph-filter-bar__results", "aria-live": "polite", children: resultCount }) : null
3295
3091
  ] }));
3296
3092
  }
3297
3093
  function FilterMenu({
@@ -3308,19 +3104,19 @@ function FilterMenu({
3308
3104
  const selected = options.find((option) => option.value === value);
3309
3105
  const displayValue = (_a = selected == null ? void 0 : selected.label) != null ? _a : placeholder;
3310
3106
  const accessibleValue = selected ? getOptionText(selected) : String(placeholder);
3311
- return /* @__PURE__ */ jsx40(
3107
+ return /* @__PURE__ */ jsx37(
3312
3108
  DropdownMenu,
3313
3109
  {
3314
3110
  "aria-label": `${label}: ${accessibleValue}`,
3315
3111
  align,
3316
3112
  disabled,
3317
3113
  className,
3318
- trigger: /* @__PURE__ */ jsxs34("span", { className: cn("ph-filter-menu-trigger", selected && "ph-filter-menu-trigger--active"), children: [
3319
- /* @__PURE__ */ jsx40(IconTuning, { className: "h-3.5 w-3.5", "aria-hidden": true }),
3320
- /* @__PURE__ */ jsx40("span", { className: "ph-filter-menu-trigger__label", children: label }),
3321
- /* @__PURE__ */ jsx40("span", { className: "ph-filter-menu-trigger__value", children: displayValue })
3114
+ trigger: /* @__PURE__ */ jsxs32("span", { className: cn("ph-filter-menu-trigger", selected && "ph-filter-menu-trigger--active"), children: [
3115
+ /* @__PURE__ */ jsx37(IconTuning, { className: "h-3.5 w-3.5", "aria-hidden": true }),
3116
+ /* @__PURE__ */ jsx37("span", { className: "ph-filter-menu-trigger__label", children: label }),
3117
+ /* @__PURE__ */ jsx37("span", { className: "ph-filter-menu-trigger__value", children: displayValue })
3322
3118
  ] }),
3323
- children: /* @__PURE__ */ jsx40(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx40(
3119
+ children: /* @__PURE__ */ jsx37(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx37(
3324
3120
  DropdownRadioItem,
3325
3121
  {
3326
3122
  value: option.value,
@@ -3344,25 +3140,25 @@ function SortMenu({
3344
3140
  className
3345
3141
  }) {
3346
3142
  const selected = options.find((option) => option.value === value);
3347
- return /* @__PURE__ */ jsx40(
3143
+ return /* @__PURE__ */ jsx37(
3348
3144
  DropdownMenu,
3349
3145
  {
3350
3146
  "aria-label": `${label}: ${selected ? getOptionText(selected) : "Choose sort order"}`,
3351
3147
  align,
3352
3148
  disabled,
3353
3149
  className,
3354
- trigger: /* @__PURE__ */ jsxs34("span", { className: "ph-filter-menu-trigger ph-sort-menu-trigger", children: [
3355
- /* @__PURE__ */ jsx40(
3150
+ trigger: /* @__PURE__ */ jsxs32("span", { className: "ph-filter-menu-trigger ph-sort-menu-trigger", children: [
3151
+ /* @__PURE__ */ jsx37(
3356
3152
  IconArrowDown,
3357
3153
  {
3358
3154
  className: cn("h-3.5 w-3.5", direction === "ascending" && "rotate-180"),
3359
3155
  "aria-hidden": true
3360
3156
  }
3361
3157
  ),
3362
- /* @__PURE__ */ jsx40("span", { className: "ph-filter-menu-trigger__label", children: label }),
3363
- selected ? /* @__PURE__ */ jsx40("span", { className: "ph-filter-menu-trigger__value", children: selected.label }) : null
3158
+ /* @__PURE__ */ jsx37("span", { className: "ph-filter-menu-trigger__label", children: label }),
3159
+ selected ? /* @__PURE__ */ jsx37("span", { className: "ph-filter-menu-trigger__value", children: selected.label }) : null
3364
3160
  ] }),
3365
- children: /* @__PURE__ */ jsx40(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx40(
3161
+ children: /* @__PURE__ */ jsx37(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx37(
3366
3162
  DropdownRadioItem,
3367
3163
  {
3368
3164
  value: option.value,
@@ -3382,7 +3178,7 @@ function getOptionText(option) {
3382
3178
  }
3383
3179
 
3384
3180
  // src/components/ui/FilterControls.tsx
3385
- import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
3181
+ import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
3386
3182
  function FilterControls(_a) {
3387
3183
  var _b = _a, {
3388
3184
  children,
@@ -3398,15 +3194,15 @@ function FilterControls(_a) {
3398
3194
  "className"
3399
3195
  ]);
3400
3196
  const hasChips = Boolean(chipsProps == null ? void 0 : chipsProps.chips.length);
3401
- return /* @__PURE__ */ jsxs35("div", __spreadProps(__spreadValues({ className: cn("ph-filter-controls", className) }, props), { children: [
3402
- /* @__PURE__ */ jsx41(FilterBar, __spreadProps(__spreadValues({}, barProps), { children })),
3403
- hasChips && chipsProps ? /* @__PURE__ */ jsx41(FilterChips, __spreadValues({}, chipsProps)) : emptyState != null ? emptyState : null
3197
+ return /* @__PURE__ */ jsxs33("div", __spreadProps(__spreadValues({ className: cn("ph-filter-controls", className) }, props), { children: [
3198
+ /* @__PURE__ */ jsx38(FilterBar, __spreadProps(__spreadValues({}, barProps), { children })),
3199
+ hasChips && chipsProps ? /* @__PURE__ */ jsx38(FilterChips, __spreadValues({}, chipsProps)) : emptyState != null ? emptyState : null
3404
3200
  ] }));
3405
3201
  }
3406
3202
 
3407
3203
  // src/components/ui/CodeBlock.tsx
3408
3204
  import { useState as useState7 } from "react";
3409
- import { jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
3205
+ import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
3410
3206
  function CodeBlock({ code, language = "tsx", filename, className }) {
3411
3207
  const [copied, setCopied] = useState7(false);
3412
3208
  const handleCopy = async () => {
@@ -3414,17 +3210,17 @@ function CodeBlock({ code, language = "tsx", filename, className }) {
3414
3210
  setCopied(true);
3415
3211
  setTimeout(() => setCopied(false), 2e3);
3416
3212
  };
3417
- return /* @__PURE__ */ jsxs36("div", { className: cn("overflow-hidden rounded-lg border border-ph-border bg-[#1a1a2e]", className), children: [
3418
- (filename || language) && /* @__PURE__ */ jsxs36("div", { className: "flex items-center justify-between border-b border-white/10 px-4 py-2", children: [
3419
- /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-2", children: [
3420
- /* @__PURE__ */ jsxs36("div", { className: "flex gap-1.5", children: [
3421
- /* @__PURE__ */ jsx42("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
3422
- /* @__PURE__ */ jsx42("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
3423
- /* @__PURE__ */ jsx42("div", { className: "h-3 w-3 rounded-full bg-emerald-400" })
3213
+ return /* @__PURE__ */ jsxs34("div", { className: cn("overflow-hidden rounded-lg border border-ph-border bg-[#1a1a2e]", className), children: [
3214
+ (filename || language) && /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between border-b border-white/10 px-4 py-2", children: [
3215
+ /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2", children: [
3216
+ /* @__PURE__ */ jsxs34("div", { className: "flex gap-1.5", children: [
3217
+ /* @__PURE__ */ jsx39("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
3218
+ /* @__PURE__ */ jsx39("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
3219
+ /* @__PURE__ */ jsx39("div", { className: "h-3 w-3 rounded-full bg-emerald-400" })
3424
3220
  ] }),
3425
- filename && /* @__PURE__ */ jsx42("span", { className: "ml-2 text-xs text-white/60", children: filename })
3221
+ filename && /* @__PURE__ */ jsx39("span", { className: "ml-2 text-xs text-white/60", children: filename })
3426
3222
  ] }),
3427
- /* @__PURE__ */ jsx42(
3223
+ /* @__PURE__ */ jsx39(
3428
3224
  "button",
3429
3225
  {
3430
3226
  type: "button",
@@ -3434,35 +3230,35 @@ function CodeBlock({ code, language = "tsx", filename, className }) {
3434
3230
  }
3435
3231
  )
3436
3232
  ] }),
3437
- /* @__PURE__ */ jsx42("pre", { className: "overflow-x-auto p-4 text-sm leading-relaxed", children: /* @__PURE__ */ jsx42("code", { className: "font-mono text-[#e4e4e7]", children: code }) })
3233
+ /* @__PURE__ */ jsx39("pre", { className: "overflow-x-auto p-4 text-sm leading-relaxed", children: /* @__PURE__ */ jsx39("code", { className: "font-mono text-[#e4e4e7]", children: code }) })
3438
3234
  ] });
3439
3235
  }
3440
3236
 
3441
3237
  // src/components/ui/ComponentDocs.tsx
3442
- import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
3238
+ import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
3443
3239
  function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false, className }) {
3444
- return /* @__PURE__ */ jsxs37("details", { className: cn("ph-panel group overflow-hidden p-0", className), open: defaultOpen, children: [
3445
- /* @__PURE__ */ jsxs37("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 border-b border-ph-border px-4 py-3 transition hover:bg-ph-muted/60 [&::-webkit-details-marker]:hidden", children: [
3446
- /* @__PURE__ */ jsx43("h3", { className: "text-xs font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
3447
- /* @__PURE__ */ jsxs37("span", { className: "rounded-full border border-ph-border bg-ph-surface px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext transition group-open:bg-ph-brand group-open:text-white", children: [
3448
- /* @__PURE__ */ jsx43("span", { className: "group-open:hidden", children: "Show" }),
3449
- /* @__PURE__ */ jsx43("span", { className: "hidden group-open:inline", children: "Hide" })
3240
+ return /* @__PURE__ */ jsxs35("details", { className: cn("ph-panel group overflow-hidden p-0", className), open: defaultOpen, children: [
3241
+ /* @__PURE__ */ jsxs35("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 border-b border-ph-border px-4 py-3 transition hover:bg-ph-muted/60 [&::-webkit-details-marker]:hidden", children: [
3242
+ /* @__PURE__ */ jsx40("h3", { className: "text-xs font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
3243
+ /* @__PURE__ */ jsxs35("span", { className: "rounded-full border border-ph-border bg-ph-surface px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext transition group-open:bg-ph-brand group-open:text-white", children: [
3244
+ /* @__PURE__ */ jsx40("span", { className: "group-open:hidden", children: "Show" }),
3245
+ /* @__PURE__ */ jsx40("span", { className: "hidden group-open:inline", children: "Hide" })
3450
3246
  ] })
3451
3247
  ] }),
3452
- /* @__PURE__ */ jsx43("div", { className: "overflow-x-auto border-t border-ph-border", children: /* @__PURE__ */ jsxs37("table", { className: "w-full text-left text-sm", children: [
3453
- /* @__PURE__ */ jsx43("thead", { className: "bg-ph-muted text-xs uppercase tracking-wider text-ph-mutedtext", children: /* @__PURE__ */ jsxs37("tr", { children: [
3454
- /* @__PURE__ */ jsx43("th", { className: "px-4 py-2 font-semibold", children: "Prop" }),
3455
- /* @__PURE__ */ jsx43("th", { className: "px-4 py-2 font-semibold", children: "Type" }),
3456
- /* @__PURE__ */ jsx43("th", { className: "px-4 py-2 font-semibold", children: "Default" }),
3457
- /* @__PURE__ */ jsx43("th", { className: "px-4 py-2 font-semibold", children: "Use" })
3248
+ /* @__PURE__ */ jsx40("div", { className: "overflow-x-auto border-t border-ph-border", children: /* @__PURE__ */ jsxs35("table", { className: "w-full text-left text-sm", children: [
3249
+ /* @__PURE__ */ jsx40("thead", { className: "bg-ph-muted text-xs uppercase tracking-wider text-ph-mutedtext", children: /* @__PURE__ */ jsxs35("tr", { children: [
3250
+ /* @__PURE__ */ jsx40("th", { className: "px-4 py-2 font-semibold", children: "Prop" }),
3251
+ /* @__PURE__ */ jsx40("th", { className: "px-4 py-2 font-semibold", children: "Type" }),
3252
+ /* @__PURE__ */ jsx40("th", { className: "px-4 py-2 font-semibold", children: "Default" }),
3253
+ /* @__PURE__ */ jsx40("th", { className: "px-4 py-2 font-semibold", children: "Use" })
3458
3254
  ] }) }),
3459
- /* @__PURE__ */ jsx43("tbody", { className: "divide-y divide-ph-border", children: rows.map((row) => {
3460
- var _a;
3461
- return /* @__PURE__ */ jsxs37("tr", { children: [
3462
- /* @__PURE__ */ jsx43("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-ink", children: row.name }),
3463
- /* @__PURE__ */ jsx43("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: row.type }),
3464
- /* @__PURE__ */ jsx43("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: (_a = row.defaultValue) != null ? _a : "-" }),
3465
- /* @__PURE__ */ jsx43("td", { className: "px-4 py-3 align-top text-ph-subtle", children: row.description })
3255
+ /* @__PURE__ */ jsx40("tbody", { className: "divide-y divide-ph-border", children: rows.map((row) => {
3256
+ var _a, _b;
3257
+ return /* @__PURE__ */ jsxs35("tr", { children: [
3258
+ /* @__PURE__ */ jsx40("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-ink", children: row.name }),
3259
+ /* @__PURE__ */ jsx40("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: row.type }),
3260
+ /* @__PURE__ */ jsx40("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: (_a = row.defaultValue) != null ? _a : "-" }),
3261
+ /* @__PURE__ */ jsx40("td", { className: "px-4 py-3 align-top text-ph-subtle", children: (_b = row.description) != null ? _b : /* @__PURE__ */ jsx40("span", { className: "text-ph-mutedtext", children: "\u2014" }) })
3466
3262
  ] }, row.name);
3467
3263
  }) })
3468
3264
  ] }) })
@@ -3471,7 +3267,7 @@ function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false,
3471
3267
 
3472
3268
  // src/components/ui/ShowcaseWrapper.tsx
3473
3269
  import { useState as useState8 } from "react";
3474
- import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
3270
+ import { jsx as jsx41, jsxs as jsxs36 } from "react/jsx-runtime";
3475
3271
  function ShowcaseWrapper({
3476
3272
  id,
3477
3273
  title,
@@ -3485,11 +3281,11 @@ function ShowcaseWrapper({
3485
3281
  var _a;
3486
3282
  const [showCode, setShowCode] = useState8(false);
3487
3283
  const fallbackId = (_a = titleIdMap[title]) != null ? _a : title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
3488
- return /* @__PURE__ */ jsxs38("section", { id: id != null ? id : fallbackId, className: cn("scroll-mt-20", className), children: [
3489
- /* @__PURE__ */ jsxs38("div", { className: "ph-h2-rule mb-8", children: [
3490
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-1.5", children: [
3491
- /* @__PURE__ */ jsx44("h2", { children: title }),
3492
- /* @__PURE__ */ jsx44(
3284
+ return /* @__PURE__ */ jsxs36("section", { id: id != null ? id : fallbackId, className: cn("scroll-mt-20", className), children: [
3285
+ /* @__PURE__ */ jsxs36("div", { className: "ph-h2-rule mb-8", children: [
3286
+ /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-1.5", children: [
3287
+ /* @__PURE__ */ jsx41("h2", { children: title }),
3288
+ /* @__PURE__ */ jsx41(
3493
3289
  "button",
3494
3290
  {
3495
3291
  type: "button",
@@ -3500,15 +3296,15 @@ function ShowcaseWrapper({
3500
3296
  ),
3501
3297
  title: showCode ? "Hide code" : "Show code",
3502
3298
  "aria-label": showCode ? "Hide code" : "Show code",
3503
- children: /* @__PURE__ */ jsx44(IconCodePreview, { className: "h-5 w-5", "aria-hidden": true })
3299
+ children: /* @__PURE__ */ jsx41(IconCodePreview, { className: "h-5 w-5", "aria-hidden": true })
3504
3300
  }
3505
3301
  )
3506
3302
  ] }),
3507
- /* @__PURE__ */ jsx44("hr", {})
3303
+ /* @__PURE__ */ jsx41("hr", {})
3508
3304
  ] }),
3509
- description && /* @__PURE__ */ jsx44("p", { className: "mb-6 text-sm text-ph-subtle", children: description }),
3510
- docs && /* @__PURE__ */ jsx44("div", { className: "mb-6", children: docs }),
3511
- /* @__PURE__ */ jsxs38(
3305
+ description && /* @__PURE__ */ jsx41("p", { className: "mb-6 text-sm text-ph-subtle", children: description }),
3306
+ docs && /* @__PURE__ */ jsx41("div", { className: "mb-6", children: docs }),
3307
+ /* @__PURE__ */ jsxs36(
3512
3308
  "div",
3513
3309
  {
3514
3310
  className: cn(
@@ -3516,15 +3312,15 @@ function ShowcaseWrapper({
3516
3312
  showCode ? "lg:grid lg:grid-cols-[1fr,minmax(360px,420px)]" : "block"
3517
3313
  ),
3518
3314
  children: [
3519
- /* @__PURE__ */ jsx44("div", { className: cn("min-w-0", showCode && "lg:pr-2"), children }),
3520
- /* @__PURE__ */ jsx44(
3315
+ /* @__PURE__ */ jsx41("div", { className: cn("min-w-0", showCode && "lg:pr-2"), children }),
3316
+ /* @__PURE__ */ jsx41(
3521
3317
  "div",
3522
3318
  {
3523
3319
  className: cn(
3524
3320
  "transition-all duration-300",
3525
3321
  showCode ? "block opacity-100" : "hidden opacity-0 lg:hidden"
3526
3322
  ),
3527
- children: /* @__PURE__ */ jsx44("div", { className: "sticky top-20", children: /* @__PURE__ */ jsx44(CodeBlock, { code, filename }) })
3323
+ children: /* @__PURE__ */ jsx41("div", { className: "sticky top-20", children: /* @__PURE__ */ jsx41(CodeBlock, { code, filename }) })
3528
3324
  }
3529
3325
  )
3530
3326
  ]
@@ -3574,13 +3370,13 @@ var titleIdMap = {
3574
3370
 
3575
3371
  // src/components/ui/CollapsibleSection.tsx
3576
3372
  import { useId as useId6, useState as useState9 } from "react";
3577
- import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
3373
+ import { jsx as jsx42, jsxs as jsxs37 } from "react/jsx-runtime";
3578
3374
  function CollapsibleSection({ title, children, defaultOpen = true, id }) {
3579
3375
  const [isOpen, setIsOpen] = useState9(defaultOpen);
3580
3376
  const generatedId = useId6();
3581
3377
  const contentId = `${id != null ? id : generatedId}-content`;
3582
- return /* @__PURE__ */ jsxs39("section", { id, className: "scroll-mt-20", children: [
3583
- /* @__PURE__ */ jsxs39(
3378
+ return /* @__PURE__ */ jsxs37("section", { id, className: "scroll-mt-20", children: [
3379
+ /* @__PURE__ */ jsxs37(
3584
3380
  "button",
3585
3381
  {
3586
3382
  type: "button",
@@ -3589,8 +3385,8 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
3589
3385
  "aria-controls": contentId,
3590
3386
  className: "mb-6 flex w-full items-center justify-between rounded-lg border border-ph-border bg-ph-muted px-5 py-4 text-left transition hover:bg-ph-muted/80",
3591
3387
  children: [
3592
- /* @__PURE__ */ jsx45("span", { className: "text-lg font-bold text-ph-ink", children: title }),
3593
- /* @__PURE__ */ jsx45(
3388
+ /* @__PURE__ */ jsx42("span", { className: "text-lg font-bold text-ph-ink", children: title }),
3389
+ /* @__PURE__ */ jsx42(
3594
3390
  IconChevronDown,
3595
3391
  {
3596
3392
  className: cn(
@@ -3603,7 +3399,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
3603
3399
  ]
3604
3400
  }
3605
3401
  ),
3606
- /* @__PURE__ */ jsx45(
3402
+ /* @__PURE__ */ jsx42(
3607
3403
  "div",
3608
3404
  {
3609
3405
  id: contentId,
@@ -3619,7 +3415,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
3619
3415
  }
3620
3416
 
3621
3417
  // src/components/ui/Typography.tsx
3622
- import { jsx as jsx46 } from "react/jsx-runtime";
3418
+ import { jsx as jsx43 } from "react/jsx-runtime";
3623
3419
  var toneMap2 = {
3624
3420
  default: "text-ph-ink",
3625
3421
  muted: "text-ph-mutedtext",
@@ -3648,47 +3444,47 @@ function Display({
3648
3444
  truncate,
3649
3445
  className
3650
3446
  }) {
3651
- return /* @__PURE__ */ jsx46("h1", { className: textClass("text-4xl font-extrabold tracking-tight md:text-5xl", tone, weight, truncate, className), children });
3447
+ return /* @__PURE__ */ jsx43("h1", { className: textClass("text-4xl font-extrabold tracking-tight md:text-5xl", tone, weight, truncate, className), children });
3652
3448
  }
3653
3449
  function H1({ children, tone = "default", weight, truncate, className }) {
3654
- return /* @__PURE__ */ jsx46("h1", { className: textClass("text-3xl font-bold tracking-tight md:text-4xl", tone, weight, truncate, className), children });
3450
+ return /* @__PURE__ */ jsx43("h1", { className: textClass("text-3xl font-bold tracking-tight md:text-4xl", tone, weight, truncate, className), children });
3655
3451
  }
3656
3452
  function H2({ children, tone = "default", weight, truncate, className }) {
3657
- return /* @__PURE__ */ jsx46("h2", { className: textClass("text-2xl font-bold tracking-tight", tone, weight, truncate, className), children });
3453
+ return /* @__PURE__ */ jsx43("h2", { className: textClass("text-2xl font-bold tracking-tight", tone, weight, truncate, className), children });
3658
3454
  }
3659
3455
  function H3({ children, tone = "default", weight, truncate, className }) {
3660
- return /* @__PURE__ */ jsx46("h3", { className: textClass("text-xl font-semibold", tone, weight, truncate, className), children });
3456
+ return /* @__PURE__ */ jsx43("h3", { className: textClass("text-xl font-semibold", tone, weight, truncate, className), children });
3661
3457
  }
3662
3458
  function H4({ children, tone = "default", weight, truncate, className }) {
3663
- return /* @__PURE__ */ jsx46("h4", { className: textClass("text-lg font-semibold", tone, weight, truncate, className), children });
3459
+ return /* @__PURE__ */ jsx43("h4", { className: textClass("text-lg font-semibold", tone, weight, truncate, className), children });
3664
3460
  }
3665
3461
  function H5({ children, tone = "default", weight, truncate, className }) {
3666
- return /* @__PURE__ */ jsx46("h5", { className: textClass("text-base font-semibold", tone, weight, truncate, className), children });
3462
+ return /* @__PURE__ */ jsx43("h5", { className: textClass("text-base font-semibold", tone, weight, truncate, className), children });
3667
3463
  }
3668
3464
  function P({ children, tone = "default", weight, truncate, className }) {
3669
- return /* @__PURE__ */ jsx46("p", { className: textClass("text-base leading-relaxed", tone, weight, truncate, className), children });
3465
+ return /* @__PURE__ */ jsx43("p", { className: textClass("text-base leading-relaxed", tone, weight, truncate, className), children });
3670
3466
  }
3671
3467
  function Small({ children, tone = "default", weight, truncate, className }) {
3672
- return /* @__PURE__ */ jsx46("span", { className: textClass("text-sm leading-relaxed", tone, weight, truncate, className), children });
3468
+ return /* @__PURE__ */ jsx43("span", { className: textClass("text-sm leading-relaxed", tone, weight, truncate, className), children });
3673
3469
  }
3674
3470
  function Caption({ children, tone = "muted", weight, truncate, className }) {
3675
- return /* @__PURE__ */ jsx46("span", { className: textClass("text-[11px] font-medium uppercase tracking-wider", tone, weight, truncate, className), children });
3471
+ return /* @__PURE__ */ jsx43("span", { className: textClass("text-[11px] font-medium uppercase tracking-wider", tone, weight, truncate, className), children });
3676
3472
  }
3677
3473
  function Overline({ children, tone = "muted", weight, truncate, className }) {
3678
- return /* @__PURE__ */ jsx46("span", { className: textClass("text-[10px] font-bold uppercase tracking-[0.15em]", tone, weight, truncate, className), children });
3474
+ return /* @__PURE__ */ jsx43("span", { className: textClass("text-[10px] font-bold uppercase tracking-[0.15em]", tone, weight, truncate, className), children });
3679
3475
  }
3680
3476
  function Lead({ children, tone = "subtle", weight, truncate, className }) {
3681
- return /* @__PURE__ */ jsx46("p", { className: textClass("text-lg leading-relaxed", tone, weight, truncate, className), children });
3477
+ return /* @__PURE__ */ jsx43("p", { className: textClass("text-lg leading-relaxed", tone, weight, truncate, className), children });
3682
3478
  }
3683
3479
  function Mono({ children, tone = "default", weight, truncate, className }) {
3684
- return /* @__PURE__ */ jsx46("code", { className: textClass("text-sm font-mono leading-relaxed", tone, weight, truncate, className), children });
3480
+ return /* @__PURE__ */ jsx43("code", { className: textClass("text-sm font-mono leading-relaxed", tone, weight, truncate, className), children });
3685
3481
  }
3686
3482
  function Label({ children, tone = "default", weight, truncate, className }) {
3687
- return /* @__PURE__ */ jsx46("label", { className: textClass("text-sm font-medium", tone, weight, truncate, className), children });
3483
+ return /* @__PURE__ */ jsx43("label", { className: textClass("text-sm font-medium", tone, weight, truncate, className), children });
3688
3484
  }
3689
3485
 
3690
3486
  // src/components/ui/Avatar.tsx
3691
- import { jsx as jsx47, jsxs as jsxs40 } from "react/jsx-runtime";
3487
+ import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
3692
3488
  var sizeMap5 = {
3693
3489
  xs: "h-8 w-8 text-[10px]",
3694
3490
  sm: "h-10 w-10 text-xs",
@@ -3720,8 +3516,8 @@ function Avatar(_a) {
3720
3516
  "badge",
3721
3517
  "className"
3722
3518
  ]);
3723
- return /* @__PURE__ */ jsxs40("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex shrink-0", className) }, props), { children: [
3724
- /* @__PURE__ */ jsx47(
3519
+ return /* @__PURE__ */ jsxs38("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex shrink-0", className) }, props), { children: [
3520
+ /* @__PURE__ */ jsx44(
3725
3521
  "div",
3726
3522
  {
3727
3523
  className: cn(
@@ -3732,7 +3528,7 @@ function Avatar(_a) {
3732
3528
  children: icon || label
3733
3529
  }
3734
3530
  ),
3735
- status && /* @__PURE__ */ jsx47(
3531
+ status && /* @__PURE__ */ jsx44(
3736
3532
  "span",
3737
3533
  {
3738
3534
  className: cn(
@@ -3741,7 +3537,7 @@ function Avatar(_a) {
3741
3537
  )
3742
3538
  }
3743
3539
  ),
3744
- badge && /* @__PURE__ */ jsx47("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-white", children: badge })
3540
+ badge && /* @__PURE__ */ jsx44("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-white", children: badge })
3745
3541
  ] }));
3746
3542
  }
3747
3543
  function AvatarGroup(_a) {
@@ -3749,9 +3545,9 @@ function AvatarGroup(_a) {
3749
3545
  const items = Array.isArray(children) ? children : [children];
3750
3546
  const visible = max ? items.slice(0, max) : items;
3751
3547
  const remaining = max ? items.length - max : 0;
3752
- return /* @__PURE__ */ jsxs40("div", __spreadProps(__spreadValues({ className: cn("-space-x-3 flex rtl:space-x-reverse", className) }, props), { children: [
3548
+ return /* @__PURE__ */ jsxs38("div", __spreadProps(__spreadValues({ className: cn("-space-x-3 flex rtl:space-x-reverse", className) }, props), { children: [
3753
3549
  visible,
3754
- remaining > 0 && /* @__PURE__ */ jsx47(
3550
+ remaining > 0 && /* @__PURE__ */ jsx44(
3755
3551
  Avatar,
3756
3552
  {
3757
3553
  label: `+${remaining}`,
@@ -3763,7 +3559,7 @@ function AvatarGroup(_a) {
3763
3559
  }
3764
3560
 
3765
3561
  // src/components/ui/Progress.tsx
3766
- import { jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
3562
+ import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
3767
3563
  var sizeMap6 = {
3768
3564
  sm: "h-1",
3769
3565
  md: "h-2",
@@ -3788,15 +3584,15 @@ function Progress(_a) {
3788
3584
  "className"
3789
3585
  ]);
3790
3586
  const percentage = Math.min(100, Math.max(0, value / max * 100));
3791
- return /* @__PURE__ */ jsxs41("div", __spreadProps(__spreadValues({ className: cn("w-full", className) }, props), { children: [
3792
- (label || showPercentage) && /* @__PURE__ */ jsxs41("div", { className: "mb-1.5 flex justify-between text-sm text-ph-subtle", children: [
3793
- label && /* @__PURE__ */ jsx48("span", { children: label }),
3794
- showPercentage && /* @__PURE__ */ jsxs41("span", { className: "tabular-nums", children: [
3587
+ return /* @__PURE__ */ jsxs39("div", __spreadProps(__spreadValues({ className: cn("w-full", className) }, props), { children: [
3588
+ (label || showPercentage) && /* @__PURE__ */ jsxs39("div", { className: "mb-1.5 flex justify-between text-sm text-ph-subtle", children: [
3589
+ label && /* @__PURE__ */ jsx45("span", { children: label }),
3590
+ showPercentage && /* @__PURE__ */ jsxs39("span", { className: "tabular-nums", children: [
3795
3591
  Math.round(percentage),
3796
3592
  "%"
3797
3593
  ] })
3798
3594
  ] }),
3799
- /* @__PURE__ */ jsx48("div", { className: cn("ph-progress", sizeMap6[size]), children: /* @__PURE__ */ jsx48(
3595
+ /* @__PURE__ */ jsx45("div", { className: cn("ph-progress", sizeMap6[size]), children: /* @__PURE__ */ jsx45(
3800
3596
  "div",
3801
3597
  {
3802
3598
  className: cn("ph-progress-bar", color),
@@ -3811,7 +3607,7 @@ function Progress(_a) {
3811
3607
  }
3812
3608
 
3813
3609
  // src/components/ui/ChatBubble.tsx
3814
- import { jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
3610
+ import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
3815
3611
  function ChatBubble(_a) {
3816
3612
  var _b = _a, {
3817
3613
  children,
@@ -3831,7 +3627,7 @@ function ChatBubble(_a) {
3831
3627
  "className"
3832
3628
  ]);
3833
3629
  const isSelf = variant === "self";
3834
- return /* @__PURE__ */ jsxs42(
3630
+ return /* @__PURE__ */ jsxs40(
3835
3631
  "div",
3836
3632
  __spreadProps(__spreadValues({
3837
3633
  className: cn(
@@ -3841,9 +3637,9 @@ function ChatBubble(_a) {
3841
3637
  )
3842
3638
  }, props), {
3843
3639
  children: [
3844
- avatar && /* @__PURE__ */ jsx49("div", { className: "shrink-0", children: avatar }),
3845
- /* @__PURE__ */ jsxs42("div", { className: cn("min-w-0 flex-1", isSelf && "text-right"), children: [
3846
- (name || time) && /* @__PURE__ */ jsxs42(
3640
+ avatar && /* @__PURE__ */ jsx46("div", { className: "shrink-0", children: avatar }),
3641
+ /* @__PURE__ */ jsxs40("div", { className: cn("min-w-0 flex-1", isSelf && "text-right"), children: [
3642
+ (name || time) && /* @__PURE__ */ jsxs40(
3847
3643
  "header",
3848
3644
  {
3849
3645
  className: cn(
@@ -3851,12 +3647,12 @@ function ChatBubble(_a) {
3851
3647
  isSelf && "flex-row-reverse justify-end"
3852
3648
  ),
3853
3649
  children: [
3854
- name && /* @__PURE__ */ jsx49("span", { className: "font-semibold text-ph-ink", children: name }),
3855
- time && /* @__PURE__ */ jsx49("span", { children: time })
3650
+ name && /* @__PURE__ */ jsx46("span", { className: "font-semibold text-ph-ink", children: name }),
3651
+ time && /* @__PURE__ */ jsx46("span", { children: time })
3856
3652
  ]
3857
3653
  }
3858
3654
  ),
3859
- /* @__PURE__ */ jsx49(
3655
+ /* @__PURE__ */ jsx46(
3860
3656
  "div",
3861
3657
  {
3862
3658
  className: cn(
@@ -3866,7 +3662,7 @@ function ChatBubble(_a) {
3866
3662
  children
3867
3663
  }
3868
3664
  ),
3869
- footer && /* @__PURE__ */ jsx49("footer", { className: "mt-2 text-[11px] text-ph-mutedtext", children: footer })
3665
+ footer && /* @__PURE__ */ jsx46("footer", { className: "mt-2 text-[11px] text-ph-mutedtext", children: footer })
3870
3666
  ] })
3871
3667
  ]
3872
3668
  })
@@ -3874,7 +3670,7 @@ function ChatBubble(_a) {
3874
3670
  }
3875
3671
 
3876
3672
  // src/components/ui/Terminal.tsx
3877
- import { Fragment as Fragment9, jsx as jsx50, jsxs as jsxs43 } from "react/jsx-runtime";
3673
+ import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
3878
3674
  function Terminal(_a) {
3879
3675
  var _b = _a, {
3880
3676
  title = "sandbox",
@@ -3887,7 +3683,7 @@ function Terminal(_a) {
3887
3683
  "children",
3888
3684
  "className"
3889
3685
  ]);
3890
- return /* @__PURE__ */ jsxs43(
3686
+ return /* @__PURE__ */ jsxs41(
3891
3687
  "div",
3892
3688
  __spreadProps(__spreadValues({
3893
3689
  className: cn(
@@ -3896,18 +3692,18 @@ function Terminal(_a) {
3896
3692
  )
3897
3693
  }, props), {
3898
3694
  children: [
3899
- /* @__PURE__ */ jsxs43("header", { className: "flex items-center gap-2 border-b border-ph-border bg-ph-muted px-4 py-3", children: [
3900
- /* @__PURE__ */ jsx50("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
3901
- /* @__PURE__ */ jsx50("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
3902
- /* @__PURE__ */ jsx50("div", { className: "h-3 w-3 rounded-full bg-emerald-400" }),
3903
- title && /* @__PURE__ */ jsx50("span", { className: "text-xs font-medium text-ph-mutedtext", children: title })
3695
+ /* @__PURE__ */ jsxs41("header", { className: "flex items-center gap-2 border-b border-ph-border bg-ph-muted px-4 py-3", children: [
3696
+ /* @__PURE__ */ jsx47("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
3697
+ /* @__PURE__ */ jsx47("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
3698
+ /* @__PURE__ */ jsx47("div", { className: "h-3 w-3 rounded-full bg-emerald-400" }),
3699
+ title && /* @__PURE__ */ jsx47("span", { className: "text-xs font-medium text-ph-mutedtext", children: title })
3904
3700
  ] }),
3905
- /* @__PURE__ */ jsx50("div", { className: "ph-code rounded-none border-x-0 border-b-0 text-[13px] leading-relaxed", children: children || /* @__PURE__ */ jsx50(Fragment9, { children: lines == null ? void 0 : lines.map((line, i) => {
3701
+ /* @__PURE__ */ jsx47("div", { className: "ph-code rounded-none border-x-0 border-b-0 text-[13px] leading-relaxed", children: children || /* @__PURE__ */ jsx47(Fragment7, { children: lines == null ? void 0 : lines.map((line, i) => {
3906
3702
  const text = typeof line === "string" ? line : line.text;
3907
3703
  const color = typeof line === "string" ? void 0 : line.color;
3908
- return /* @__PURE__ */ jsxs43("span", { children: [
3909
- /* @__PURE__ */ jsx50("span", { className: color || "text-neutral-600", children: text }),
3910
- i < lines.length - 1 && /* @__PURE__ */ jsx50("br", {})
3704
+ return /* @__PURE__ */ jsxs41("span", { children: [
3705
+ /* @__PURE__ */ jsx47("span", { className: color || "text-neutral-600", children: text }),
3706
+ i < lines.length - 1 && /* @__PURE__ */ jsx47("br", {})
3911
3707
  ] }, i);
3912
3708
  }) }) })
3913
3709
  ]
@@ -3916,7 +3712,7 @@ function Terminal(_a) {
3916
3712
  }
3917
3713
 
3918
3714
  // src/components/ui/Indicator.tsx
3919
- import { jsx as jsx51, jsxs as jsxs44 } from "react/jsx-runtime";
3715
+ import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
3920
3716
  var positionMap = {
3921
3717
  "top-right": "-right-[2px] -top-[2px]",
3922
3718
  "top-left": "-left-[2px] -top-[2px]",
@@ -3939,8 +3735,8 @@ function Indicator(_a) {
3939
3735
  "dot",
3940
3736
  "className"
3941
3737
  ]);
3942
- return /* @__PURE__ */ jsxs44("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex items-center justify-center", className) }, props), { children: [
3943
- dot ? /* @__PURE__ */ jsx51(
3738
+ return /* @__PURE__ */ jsxs42("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex items-center justify-center", className) }, props), { children: [
3739
+ dot ? /* @__PURE__ */ jsx48(
3944
3740
  "span",
3945
3741
  {
3946
3742
  className: cn(
@@ -3949,7 +3745,7 @@ function Indicator(_a) {
3949
3745
  positionMap[position]
3950
3746
  )
3951
3747
  }
3952
- ) : badge != null ? /* @__PURE__ */ jsx51(
3748
+ ) : badge != null ? /* @__PURE__ */ jsx48(
3953
3749
  "span",
3954
3750
  {
3955
3751
  className: cn(
@@ -3965,7 +3761,7 @@ function Indicator(_a) {
3965
3761
  }
3966
3762
 
3967
3763
  // src/components/ui/Timeline.tsx
3968
- import { jsx as jsx52, jsxs as jsxs45 } from "react/jsx-runtime";
3764
+ import { jsx as jsx49, jsxs as jsxs43 } from "react/jsx-runtime";
3969
3765
  function Timeline(_a) {
3970
3766
  var _b = _a, {
3971
3767
  events,
@@ -3976,15 +3772,15 @@ function Timeline(_a) {
3976
3772
  "alternate",
3977
3773
  "className"
3978
3774
  ]);
3979
- return /* @__PURE__ */ jsx52(
3775
+ return /* @__PURE__ */ jsx49(
3980
3776
  "ol",
3981
3777
  __spreadProps(__spreadValues({
3982
3778
  className: cn("relative space-y-8", className)
3983
3779
  }, props), {
3984
3780
  children: events.map((event, idx) => {
3985
3781
  const align = alternate && idx % 2 !== 0 ? "lg:flex-row-reverse" : "";
3986
- return /* @__PURE__ */ jsxs45("li", { className: cn("relative flex gap-6", align), children: [
3987
- /* @__PURE__ */ jsx52(
3782
+ return /* @__PURE__ */ jsxs43("li", { className: cn("relative flex gap-6", align), children: [
3783
+ /* @__PURE__ */ jsx49(
3988
3784
  "div",
3989
3785
  {
3990
3786
  className: cn(
@@ -3994,12 +3790,12 @@ function Timeline(_a) {
3994
3790
  children: event.icon
3995
3791
  }
3996
3792
  ),
3997
- /* @__PURE__ */ jsxs45("article", { className: "flex-1 rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", children: [
3998
- /* @__PURE__ */ jsxs45("div", { className: "flex flex-wrap items-baseline gap-3", children: [
3999
- /* @__PURE__ */ jsx52("h4", { className: "text-base font-semibold text-ph-ink", children: event.title }),
4000
- event.time && /* @__PURE__ */ jsx52("time", { className: "text-[11px] font-semibold uppercase tracking-wide text-ph-mutedtext", children: event.time })
3793
+ /* @__PURE__ */ jsxs43("article", { className: "flex-1 rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", children: [
3794
+ /* @__PURE__ */ jsxs43("div", { className: "flex flex-wrap items-baseline gap-3", children: [
3795
+ /* @__PURE__ */ jsx49("h4", { className: "text-base font-semibold text-ph-ink", children: event.title }),
3796
+ event.time && /* @__PURE__ */ jsx49("time", { className: "text-[11px] font-semibold uppercase tracking-wide text-ph-mutedtext", children: event.time })
4001
3797
  ] }),
4002
- event.description && /* @__PURE__ */ jsx52("p", { className: "mt-2 text-sm text-ph-subtle", children: event.description })
3798
+ event.description && /* @__PURE__ */ jsx49("p", { className: "mt-2 text-sm text-ph-subtle", children: event.description })
4003
3799
  ] })
4004
3800
  ] }, event.id);
4005
3801
  })
@@ -4009,7 +3805,7 @@ function Timeline(_a) {
4009
3805
 
4010
3806
  // src/components/ui/Banner.tsx
4011
3807
  import { forwardRef as forwardRef9 } from "react";
4012
- import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
3808
+ import { jsx as jsx50, jsxs as jsxs44 } from "react/jsx-runtime";
4013
3809
  var typeClass = {
4014
3810
  info: "ph-banner-info",
4015
3811
  success: "ph-banner-success",
@@ -4037,7 +3833,7 @@ var Banner = forwardRef9(function Banner2(_a, ref) {
4037
3833
  "className",
4038
3834
  "children"
4039
3835
  ]);
4040
- return /* @__PURE__ */ jsx53(
3836
+ return /* @__PURE__ */ jsx50(
4041
3837
  "div",
4042
3838
  __spreadProps(__spreadValues({
4043
3839
  ref,
@@ -4049,11 +3845,11 @@ var Banner = forwardRef9(function Banner2(_a, ref) {
4049
3845
  className
4050
3846
  )
4051
3847
  }, props), {
4052
- children: /* @__PURE__ */ jsxs46("div", { className: "ph-banner__body", children: [
3848
+ children: /* @__PURE__ */ jsxs44("div", { className: "ph-banner__body", children: [
4053
3849
  icon,
4054
- /* @__PURE__ */ jsx53("div", { className: "ph-banner__content", children }),
4055
- action && /* @__PURE__ */ jsx53("div", { className: "ph-banner__action", children: action }),
4056
- onClose && /* @__PURE__ */ jsx53("button", { type: "button", onClick: onClose, className: "ph-banner__close", "aria-label": "Dismiss", children: /* @__PURE__ */ jsx53("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx53("path", { d: "M4 4l8 8M12 4l-8 8" }) }) })
3850
+ /* @__PURE__ */ jsx50("div", { className: "ph-banner__content", children }),
3851
+ action && /* @__PURE__ */ jsx50("div", { className: "ph-banner__action", children: action }),
3852
+ onClose && /* @__PURE__ */ jsx50("button", { type: "button", onClick: onClose, className: "ph-banner__close", "aria-label": "Dismiss", children: /* @__PURE__ */ jsx50("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx50("path", { d: "M4 4l8 8M12 4l-8 8" }) }) })
4057
3853
  ] })
4058
3854
  })
4059
3855
  );
@@ -4062,7 +3858,7 @@ Banner.displayName = "Banner";
4062
3858
 
4063
3859
  // src/components/ui/Dialog.tsx
4064
3860
  import { useState as useState10 } from "react";
4065
- import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
3861
+ import { jsx as jsx51, jsxs as jsxs45 } from "react/jsx-runtime";
4066
3862
  function Dialog2(_a) {
4067
3863
  var _b = _a, {
4068
3864
  isOpen: openProp,
@@ -4097,15 +3893,15 @@ function Dialog2(_a) {
4097
3893
  }
4098
3894
  onClose == null ? void 0 : onClose();
4099
3895
  };
4100
- return /* @__PURE__ */ jsx54(
3896
+ return /* @__PURE__ */ jsx51(
4101
3897
  Modal,
4102
3898
  __spreadProps(__spreadValues({
4103
3899
  open: isOpen,
4104
3900
  onClose,
4105
3901
  title,
4106
- footer: /* @__PURE__ */ jsxs47("div", { className: "flex justify-end gap-2", children: [
4107
- /* @__PURE__ */ jsx54(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
4108
- onConfirm && /* @__PURE__ */ jsx54(
3902
+ footer: /* @__PURE__ */ jsxs45("div", { className: "flex justify-end gap-2", children: [
3903
+ /* @__PURE__ */ jsx51(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
3904
+ onConfirm && /* @__PURE__ */ jsx51(
4109
3905
  Button,
4110
3906
  __spreadProps(__spreadValues({
4111
3907
  variant: "primary",
@@ -4124,7 +3920,7 @@ function Dialog2(_a) {
4124
3920
  Dialog2.displayName = "Dialog";
4125
3921
 
4126
3922
  // src/components/ui/Divider.tsx
4127
- import { jsx as jsx55 } from "react/jsx-runtime";
3923
+ import { jsx as jsx52 } from "react/jsx-runtime";
4128
3924
  function Divider(_a) {
4129
3925
  var _b = _a, {
4130
3926
  vertical = false,
@@ -4139,7 +3935,7 @@ function Divider(_a) {
4139
3935
  "label",
4140
3936
  "className"
4141
3937
  ]);
4142
- return /* @__PURE__ */ jsx55(
3938
+ return /* @__PURE__ */ jsx52(
4143
3939
  "div",
4144
3940
  __spreadProps(__spreadValues({
4145
3941
  role: "separator",
@@ -4154,7 +3950,7 @@ function Divider(_a) {
4154
3950
  className
4155
3951
  )
4156
3952
  }, props), {
4157
- children: label && /* @__PURE__ */ jsx55("span", { className: "ph-divider__label", children: label })
3953
+ children: label && /* @__PURE__ */ jsx52("span", { className: "ph-divider__label", children: label })
4158
3954
  })
4159
3955
  );
4160
3956
  }
@@ -4162,7 +3958,7 @@ Divider.displayName = "Divider";
4162
3958
 
4163
3959
  // src/components/ui/Tag.tsx
4164
3960
  import { forwardRef as forwardRef10 } from "react";
4165
- import { jsx as jsx56, jsxs as jsxs48 } from "react/jsx-runtime";
3961
+ import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
4166
3962
  var typeClass2 = {
4167
3963
  default: "ph-tag-default",
4168
3964
  primary: "ph-tag-primary",
@@ -4191,7 +3987,7 @@ var Tag = forwardRef10(function Tag2(_a, ref) {
4191
3987
  "className",
4192
3988
  "children"
4193
3989
  ]);
4194
- return /* @__PURE__ */ jsxs48(
3990
+ return /* @__PURE__ */ jsxs46(
4195
3991
  "div",
4196
3992
  __spreadProps(__spreadValues({
4197
3993
  ref,
@@ -4203,9 +3999,9 @@ var Tag = forwardRef10(function Tag2(_a, ref) {
4203
3999
  )
4204
4000
  }, props), {
4205
4001
  children: [
4206
- icon && /* @__PURE__ */ jsx56("span", { className: "ph-tag__icon", children: icon }),
4207
- /* @__PURE__ */ jsx56("span", { className: "ph-tag__text", children }),
4208
- closable && /* @__PURE__ */ jsx56(
4002
+ icon && /* @__PURE__ */ jsx53("span", { className: "ph-tag__icon", children: icon }),
4003
+ /* @__PURE__ */ jsx53("span", { className: "ph-tag__text", children }),
4004
+ closable && /* @__PURE__ */ jsx53(
4209
4005
  "button",
4210
4006
  {
4211
4007
  type: "button",
@@ -4215,7 +4011,7 @@ var Tag = forwardRef10(function Tag2(_a, ref) {
4215
4011
  },
4216
4012
  className: "ph-tag__close",
4217
4013
  "aria-label": "Remove",
4218
- children: /* @__PURE__ */ jsx56("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx56("path", { d: "M3 3l6 6M9 3l-6 6" }) })
4014
+ children: /* @__PURE__ */ jsx53("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx53("path", { d: "M3 3l6 6M9 3l-6 6" }) })
4219
4015
  }
4220
4016
  )
4221
4017
  ]
@@ -4225,7 +4021,7 @@ var Tag = forwardRef10(function Tag2(_a, ref) {
4225
4021
  Tag.displayName = "Tag";
4226
4022
 
4227
4023
  // src/components/ui/ProgressCircle.tsx
4228
- import { jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
4024
+ import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
4229
4025
  function ProgressCircle(_a) {
4230
4026
  var _b = _a, {
4231
4027
  progress,
@@ -4244,7 +4040,7 @@ function ProgressCircle(_a) {
4244
4040
  const radius = (size - stroke) / 2;
4245
4041
  const circumference = 2 * Math.PI * radius;
4246
4042
  const offset = circumference - Math.min(1, Math.max(0, progress)) * circumference;
4247
- return /* @__PURE__ */ jsxs49(
4043
+ return /* @__PURE__ */ jsxs47(
4248
4044
  "span",
4249
4045
  __spreadProps(__spreadValues({
4250
4046
  className: cn("ph-progress-circle", className),
@@ -4255,8 +4051,8 @@ function ProgressCircle(_a) {
4255
4051
  "aria-valuemax": 100
4256
4052
  }, props), {
4257
4053
  children: [
4258
- /* @__PURE__ */ jsxs49("svg", { width: size, height: size, children: [
4259
- /* @__PURE__ */ jsx57(
4054
+ /* @__PURE__ */ jsxs47("svg", { width: size, height: size, children: [
4055
+ /* @__PURE__ */ jsx54(
4260
4056
  "circle",
4261
4057
  {
4262
4058
  cx: size / 2,
@@ -4268,7 +4064,7 @@ function ProgressCircle(_a) {
4268
4064
  opacity: 0.15
4269
4065
  }
4270
4066
  ),
4271
- /* @__PURE__ */ jsx57(
4067
+ /* @__PURE__ */ jsx54(
4272
4068
  "circle",
4273
4069
  {
4274
4070
  cx: size / 2,
@@ -4285,7 +4081,7 @@ function ProgressCircle(_a) {
4285
4081
  }
4286
4082
  )
4287
4083
  ] }),
4288
- children && /* @__PURE__ */ jsx57("span", { className: "ph-progress-circle__content", children })
4084
+ children && /* @__PURE__ */ jsx54("span", { className: "ph-progress-circle__content", children })
4289
4085
  ]
4290
4086
  })
4291
4087
  );
@@ -4294,7 +4090,7 @@ ProgressCircle.displayName = "ProgressCircle";
4294
4090
 
4295
4091
  // src/components/ui/Row.tsx
4296
4092
  import { forwardRef as forwardRef11 } from "react";
4297
- import { jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
4093
+ import { jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
4298
4094
  var Row = forwardRef11(function Row2(_a, ref) {
4299
4095
  var _b = _a, {
4300
4096
  icon,
@@ -4316,7 +4112,7 @@ var Row = forwardRef11(function Row2(_a, ref) {
4316
4112
  "children"
4317
4113
  ]);
4318
4114
  const symbolic = children === null || children === void 0 || children === false;
4319
- return /* @__PURE__ */ jsx58(
4115
+ return /* @__PURE__ */ jsx55(
4320
4116
  "div",
4321
4117
  __spreadProps(__spreadValues({
4322
4118
  ref,
@@ -4331,10 +4127,10 @@ var Row = forwardRef11(function Row2(_a, ref) {
4331
4127
  className
4332
4128
  )
4333
4129
  }, props), {
4334
- children: /* @__PURE__ */ jsxs50("div", { className: "ph-row__main", children: [
4335
- icon && /* @__PURE__ */ jsx58("span", { className: "ph-row__icon", children: icon }),
4336
- !symbolic && /* @__PURE__ */ jsx58("div", { className: "ph-row__content", children }),
4337
- sideIcon && /* @__PURE__ */ jsx58("span", { className: "ph-row__side-icon", children: sideIcon })
4130
+ children: /* @__PURE__ */ jsxs48("div", { className: "ph-row__main", children: [
4131
+ icon && /* @__PURE__ */ jsx55("span", { className: "ph-row__icon", children: icon }),
4132
+ !symbolic && /* @__PURE__ */ jsx55("div", { className: "ph-row__content", children }),
4133
+ sideIcon && /* @__PURE__ */ jsx55("span", { className: "ph-row__side-icon", children: sideIcon })
4338
4134
  ] })
4339
4135
  })
4340
4136
  );
@@ -4342,22 +4138,22 @@ var Row = forwardRef11(function Row2(_a, ref) {
4342
4138
  Row.displayName = "Row";
4343
4139
 
4344
4140
  // src/components/ui/Widget.tsx
4345
- import { jsx as jsx59, jsxs as jsxs51 } from "react/jsx-runtime";
4141
+ import { jsx as jsx56, jsxs as jsxs49 } from "react/jsx-runtime";
4346
4142
  function Widget({ title, onClose, actions, children, className }) {
4347
- return /* @__PURE__ */ jsxs51("div", { className: cn("ph-widget", className), children: [
4348
- /* @__PURE__ */ jsxs51("div", { className: "ph-widget__header", children: [
4349
- /* @__PURE__ */ jsx59("span", { className: "ph-widget__title", children: title }),
4143
+ return /* @__PURE__ */ jsxs49("div", { className: cn("ph-widget", className), children: [
4144
+ /* @__PURE__ */ jsxs49("div", { className: "ph-widget__header", children: [
4145
+ /* @__PURE__ */ jsx56("span", { className: "ph-widget__title", children: title }),
4350
4146
  actions,
4351
- onClose && /* @__PURE__ */ jsx59("button", { type: "button", onClick: onClose, className: "ph-widget__close", "aria-label": "Close", children: /* @__PURE__ */ jsx59("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx59("path", { d: "M3 3l8 8M11 3l-8 8" }) }) })
4147
+ onClose && /* @__PURE__ */ jsx56("button", { type: "button", onClick: onClose, className: "ph-widget__close", "aria-label": "Close", children: /* @__PURE__ */ jsx56("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx56("path", { d: "M3 3l8 8M11 3l-8 8" }) }) })
4352
4148
  ] }),
4353
- /* @__PURE__ */ jsx59("div", { className: "ph-widget__content", children })
4149
+ /* @__PURE__ */ jsx56("div", { className: "ph-widget__content", children })
4354
4150
  ] });
4355
4151
  }
4356
4152
  Widget.displayName = "Widget";
4357
4153
 
4358
4154
  // src/components/ui/Lettermark.tsx
4359
4155
  import { forwardRef as forwardRef12 } from "react";
4360
- import { jsx as jsx60 } from "react/jsx-runtime";
4156
+ import { jsx as jsx57 } from "react/jsx-runtime";
4361
4157
  var Lettermark = forwardRef12(function Lettermark2(_a, ref) {
4362
4158
  var _b = _a, {
4363
4159
  name,
@@ -4375,7 +4171,7 @@ var Lettermark = forwardRef12(function Lettermark2(_a, ref) {
4375
4171
  "className"
4376
4172
  ]);
4377
4173
  const letter = name ? typeof name === "number" ? String(Math.floor(name)) : String.fromCodePoint(name.codePointAt(0)).toLocaleUpperCase() : "?";
4378
- return /* @__PURE__ */ jsx60(
4174
+ return /* @__PURE__ */ jsx57(
4379
4175
  "div",
4380
4176
  __spreadProps(__spreadValues({
4381
4177
  ref,
@@ -4397,7 +4193,7 @@ var Lettermark = forwardRef12(function Lettermark2(_a, ref) {
4397
4193
  Lettermark.displayName = "Lettermark";
4398
4194
 
4399
4195
  // src/components/ui/Splotch.tsx
4400
- import { jsx as jsx61 } from "react/jsx-runtime";
4196
+ import { jsx as jsx58 } from "react/jsx-runtime";
4401
4197
  var colorMap = {
4402
4198
  purple: "ph-splotch--purple",
4403
4199
  blue: "ph-splotch--blue",
@@ -4410,13 +4206,13 @@ var colorMap = {
4410
4206
  };
4411
4207
  function Splotch(_a) {
4412
4208
  var _b = _a, { color, className } = _b, props = __objRest(_b, ["color", "className"]);
4413
- return /* @__PURE__ */ jsx61(
4209
+ return /* @__PURE__ */ jsx58(
4414
4210
  "div",
4415
4211
  __spreadProps(__spreadValues({
4416
4212
  className: cn("ph-splotch", colorMap[color], className),
4417
4213
  "aria-hidden": "true"
4418
4214
  }, props), {
4419
- children: /* @__PURE__ */ jsx61("div", { className: "ph-splotch__paint" })
4215
+ children: /* @__PURE__ */ jsx58("div", { className: "ph-splotch__paint" })
4420
4216
  })
4421
4217
  );
4422
4218
  }
@@ -4424,7 +4220,7 @@ Splotch.displayName = "Splotch";
4424
4220
 
4425
4221
  // src/components/ui/Popover.tsx
4426
4222
  import { useState as useState11, useRef as useRef4, useEffect as useEffect4 } from "react";
4427
- import { jsx as jsx62, jsxs as jsxs52 } from "react/jsx-runtime";
4223
+ import { jsx as jsx59, jsxs as jsxs50 } from "react/jsx-runtime";
4428
4224
  function Popover(_a) {
4429
4225
  var _b = _a, {
4430
4226
  trigger,
@@ -4461,8 +4257,8 @@ function Popover(_a) {
4461
4257
  document.addEventListener("mousedown", handleClick);
4462
4258
  return () => document.removeEventListener("mousedown", handleClick);
4463
4259
  }, [isOpen, setOpen]);
4464
- return /* @__PURE__ */ jsxs52("div", __spreadProps(__spreadValues({ className: cn("ph-popover relative inline-flex", className) }, props), { children: [
4465
- /* @__PURE__ */ jsx62(
4260
+ return /* @__PURE__ */ jsxs50("div", __spreadProps(__spreadValues({ className: cn("ph-popover relative inline-flex", className) }, props), { children: [
4261
+ /* @__PURE__ */ jsx59(
4466
4262
  "div",
4467
4263
  {
4468
4264
  ref: triggerRef,
@@ -4471,7 +4267,7 @@ function Popover(_a) {
4471
4267
  children: trigger
4472
4268
  }
4473
4269
  ),
4474
- isOpen && /* @__PURE__ */ jsx62(
4270
+ isOpen && /* @__PURE__ */ jsx59(
4475
4271
  "div",
4476
4272
  {
4477
4273
  ref: panelRef,
@@ -4490,10 +4286,10 @@ function Popover(_a) {
4490
4286
  Popover.displayName = "Popover";
4491
4287
 
4492
4288
  // src/components/ui/LoadingBar.tsx
4493
- import { jsx as jsx63 } from "react/jsx-runtime";
4289
+ import { jsx as jsx60 } from "react/jsx-runtime";
4494
4290
  function LoadingBar(_a) {
4495
4291
  var _b = _a, { active = true, className } = _b, props = __objRest(_b, ["active", "className"]);
4496
- return /* @__PURE__ */ jsx63(
4292
+ return /* @__PURE__ */ jsx60(
4497
4293
  "div",
4498
4294
  __spreadProps(__spreadValues({
4499
4295
  className: cn(
@@ -4504,7 +4300,7 @@ function LoadingBar(_a) {
4504
4300
  role: "progressbar",
4505
4301
  "aria-label": "Loading"
4506
4302
  }, props), {
4507
- children: /* @__PURE__ */ jsx63("div", { className: "ph-loading-bar__fill" })
4303
+ children: /* @__PURE__ */ jsx60("div", { className: "ph-loading-bar__fill" })
4508
4304
  })
4509
4305
  );
4510
4306
  }
@@ -4512,7 +4308,7 @@ LoadingBar.displayName = "LoadingBar";
4512
4308
 
4513
4309
  // src/components/ui/Link.tsx
4514
4310
  import { forwardRef as forwardRef13 } from "react";
4515
- import { jsx as jsx64 } from "react/jsx-runtime";
4311
+ import { jsx as jsx61 } from "react/jsx-runtime";
4516
4312
  var Link = forwardRef13(function Link2(_a, ref) {
4517
4313
  var _b = _a, {
4518
4314
  className,
@@ -4523,7 +4319,7 @@ var Link = forwardRef13(function Link2(_a, ref) {
4523
4319
  "disabled",
4524
4320
  "children"
4525
4321
  ]);
4526
- return /* @__PURE__ */ jsx64(
4322
+ return /* @__PURE__ */ jsx61(
4527
4323
  "a",
4528
4324
  __spreadProps(__spreadValues({
4529
4325
  ref,
@@ -4542,10 +4338,10 @@ var Link = forwardRef13(function Link2(_a, ref) {
4542
4338
  Link.displayName = "Link";
4543
4339
 
4544
4340
  // src/components/ui/Spinner.tsx
4545
- import { jsx as jsx65, jsxs as jsxs53 } from "react/jsx-runtime";
4341
+ import { jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
4546
4342
  function Spinner(_a) {
4547
4343
  var _b = _a, { size = "sm", textColored = false, className } = _b, props = __objRest(_b, ["size", "textColored", "className"]);
4548
- return /* @__PURE__ */ jsx65(
4344
+ return /* @__PURE__ */ jsx62(
4549
4345
  "span",
4550
4346
  __spreadProps(__spreadValues({
4551
4347
  className: cn(
@@ -4557,9 +4353,9 @@ function Spinner(_a) {
4557
4353
  role: "status",
4558
4354
  "aria-label": "Loading"
4559
4355
  }, props), {
4560
- children: /* @__PURE__ */ jsxs53("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "ph-spinner__svg", children: [
4561
- /* @__PURE__ */ jsx65("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", opacity: 0.2 }),
4562
- /* @__PURE__ */ jsx65("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round" })
4356
+ children: /* @__PURE__ */ jsxs51("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "ph-spinner__svg", children: [
4357
+ /* @__PURE__ */ jsx62("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", opacity: 0.2 }),
4358
+ /* @__PURE__ */ jsx62("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round" })
4563
4359
  ] })
4564
4360
  })
4565
4361
  );
@@ -4568,7 +4364,7 @@ Spinner.displayName = "Spinner";
4568
4364
 
4569
4365
  // src/components/ui/Snack.tsx
4570
4366
  import { forwardRef as forwardRef14 } from "react";
4571
- import { jsx as jsx66, jsxs as jsxs54 } from "react/jsx-runtime";
4367
+ import { jsx as jsx63, jsxs as jsxs52 } from "react/jsx-runtime";
4572
4368
  var Snack = forwardRef14(function Snack2(_a, ref) {
4573
4369
  var _b = _a, {
4574
4370
  type = "regular",
@@ -4583,7 +4379,7 @@ var Snack = forwardRef14(function Snack2(_a, ref) {
4583
4379
  "className",
4584
4380
  "children"
4585
4381
  ]);
4586
- return /* @__PURE__ */ jsxs54(
4382
+ return /* @__PURE__ */ jsxs52(
4587
4383
  "span",
4588
4384
  __spreadProps(__spreadValues({
4589
4385
  ref,
@@ -4596,8 +4392,8 @@ var Snack = forwardRef14(function Snack2(_a, ref) {
4596
4392
  title: typeof children === "string" ? children : void 0
4597
4393
  }, props), {
4598
4394
  children: [
4599
- /* @__PURE__ */ jsx66("span", { className: "ph-snack__text", children }),
4600
- onClose && /* @__PURE__ */ jsx66(
4395
+ /* @__PURE__ */ jsx63("span", { className: "ph-snack__text", children }),
4396
+ onClose && /* @__PURE__ */ jsx63(
4601
4397
  "button",
4602
4398
  {
4603
4399
  type: "button",
@@ -4607,7 +4403,7 @@ var Snack = forwardRef14(function Snack2(_a, ref) {
4607
4403
  },
4608
4404
  className: "ph-snack__close",
4609
4405
  "aria-label": "Remove",
4610
- children: /* @__PURE__ */ jsx66("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx66("path", { d: "M3 3l6 6M9 3l-6 6" }) })
4406
+ children: /* @__PURE__ */ jsx63("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx63("path", { d: "M3 3l6 6M9 3l-6 6" }) })
4611
4407
  }
4612
4408
  )
4613
4409
  ]
@@ -4618,7 +4414,7 @@ Snack.displayName = "Snack";
4618
4414
 
4619
4415
  // src/components/ui/Combobox.tsx
4620
4416
  import { useState as useState12, useRef as useRef5, useEffect as useEffect5 } from "react";
4621
- import { jsx as jsx67, jsxs as jsxs55 } from "react/jsx-runtime";
4417
+ import { jsx as jsx64, jsxs as jsxs53 } from "react/jsx-runtime";
4622
4418
  function Combobox({
4623
4419
  options,
4624
4420
  value = [],
@@ -4649,26 +4445,26 @@ function Combobox({
4649
4445
  document.addEventListener("mousedown", handle);
4650
4446
  return () => document.removeEventListener("mousedown", handle);
4651
4447
  }, [open]);
4652
- return /* @__PURE__ */ jsxs55("div", { ref: containerRef, className: cn("ph-combobox relative", className), children: [
4653
- /* @__PURE__ */ jsxs55("div", { className: "ph-combobox__input-wrap", children: [
4654
- value.length > 0 && /* @__PURE__ */ jsx67("div", { className: "ph-combobox__chips", children: value.map((v) => {
4448
+ return /* @__PURE__ */ jsxs53("div", { ref: containerRef, className: cn("ph-combobox relative", className), children: [
4449
+ /* @__PURE__ */ jsxs53("div", { className: "ph-combobox__input-wrap", children: [
4450
+ value.length > 0 && /* @__PURE__ */ jsx64("div", { className: "ph-combobox__chips", children: value.map((v) => {
4655
4451
  var _a, _b;
4656
4452
  const opt = options.find((o) => o.value === v);
4657
- return /* @__PURE__ */ jsxs55("span", { className: "ph-combobox__chip", children: [
4453
+ return /* @__PURE__ */ jsxs53("span", { className: "ph-combobox__chip", children: [
4658
4454
  (_a = opt == null ? void 0 : opt.label) != null ? _a : v,
4659
- /* @__PURE__ */ jsx67(
4455
+ /* @__PURE__ */ jsx64(
4660
4456
  "button",
4661
4457
  {
4662
4458
  type: "button",
4663
4459
  onClick: () => toggle(v),
4664
4460
  className: "ph-combobox__chip-remove",
4665
4461
  "aria-label": `Remove ${(_b = opt == null ? void 0 : opt.label) != null ? _b : v}`,
4666
- children: /* @__PURE__ */ jsx67("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx67("path", { d: "M2 2l6 6M8 2l-6 6" }) })
4462
+ children: /* @__PURE__ */ jsx64("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx64("path", { d: "M2 2l6 6M8 2l-6 6" }) })
4667
4463
  }
4668
4464
  )
4669
4465
  ] }, v);
4670
4466
  }) }),
4671
- /* @__PURE__ */ jsx67(
4467
+ /* @__PURE__ */ jsx64(
4672
4468
  "input",
4673
4469
  {
4674
4470
  ref: inputRef,
@@ -4685,7 +4481,7 @@ function Combobox({
4685
4481
  }
4686
4482
  )
4687
4483
  ] }),
4688
- open && filtered.length > 0 && /* @__PURE__ */ jsx67("div", { className: "ph-combobox__dropdown", children: filtered.map((opt) => /* @__PURE__ */ jsxs55(
4484
+ open && filtered.length > 0 && /* @__PURE__ */ jsx64("div", { className: "ph-combobox__dropdown", children: filtered.map((opt) => /* @__PURE__ */ jsxs53(
4689
4485
  "button",
4690
4486
  {
4691
4487
  type: "button",
@@ -4695,8 +4491,8 @@ function Combobox({
4695
4491
  selectedSet.has(opt.value) && "ph-combobox__option--selected"
4696
4492
  ),
4697
4493
  children: [
4698
- selectedSet.has(opt.value) && /* @__PURE__ */ jsx67("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx67("path", { d: "M2.5 6l2.5 2.5 4.5-5" }) }),
4699
- /* @__PURE__ */ jsx67("span", { children: opt.label })
4494
+ selectedSet.has(opt.value) && /* @__PURE__ */ jsx64("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx64("path", { d: "M2.5 6l2.5 2.5 4.5-5" }) }),
4495
+ /* @__PURE__ */ jsx64("span", { children: opt.label })
4700
4496
  ]
4701
4497
  },
4702
4498
  opt.value
@@ -4707,7 +4503,7 @@ Combobox.displayName = "Combobox";
4707
4503
 
4708
4504
  // src/components/ui/Autocomplete.tsx
4709
4505
  import { useState as useState13, useRef as useRef6, useEffect as useEffect6 } from "react";
4710
- import { jsx as jsx68, jsxs as jsxs56 } from "react/jsx-runtime";
4506
+ import { jsx as jsx65, jsxs as jsxs54 } from "react/jsx-runtime";
4711
4507
  function Autocomplete(_a) {
4712
4508
  var _b = _a, {
4713
4509
  options,
@@ -4778,8 +4574,8 @@ function Autocomplete(_a) {
4778
4574
  el == null ? void 0 : el.scrollIntoView({ block: "nearest" });
4779
4575
  }
4780
4576
  }, [activeIndex]);
4781
- return /* @__PURE__ */ jsxs56("div", { ref: containerRef, className: cn("ph-autocomplete relative", className), children: [
4782
- /* @__PURE__ */ jsx68(
4577
+ return /* @__PURE__ */ jsxs54("div", { ref: containerRef, className: cn("ph-autocomplete relative", className), children: [
4578
+ /* @__PURE__ */ jsx65(
4783
4579
  "input",
4784
4580
  __spreadValues({
4785
4581
  ref: inputRef,
@@ -4795,7 +4591,7 @@ function Autocomplete(_a) {
4795
4591
  className: "ph-input w-full"
4796
4592
  }, inputProps)
4797
4593
  ),
4798
- open && filtered.length > 0 && /* @__PURE__ */ jsx68("div", { ref: listRef, className: "ph-autocomplete__dropdown", role: "listbox", children: filtered.map((opt, i) => /* @__PURE__ */ jsx68(
4594
+ open && filtered.length > 0 && /* @__PURE__ */ jsx65("div", { ref: listRef, className: "ph-autocomplete__dropdown", role: "listbox", children: filtered.map((opt, i) => /* @__PURE__ */ jsx65(
4799
4595
  "button",
4800
4596
  {
4801
4597
  type: "button",
@@ -4817,7 +4613,7 @@ Autocomplete.displayName = "Autocomplete";
4817
4613
 
4818
4614
  // src/components/ui/ContextMenu.tsx
4819
4615
  import { useState as useState14, useRef as useRef7, useEffect as useEffect7 } from "react";
4820
- import { jsx as jsx69, jsxs as jsxs57 } from "react/jsx-runtime";
4616
+ import { jsx as jsx66, jsxs as jsxs55 } from "react/jsx-runtime";
4821
4617
  function ContextMenu(_a) {
4822
4618
  var _b = _a, { items, children, className } = _b, props = __objRest(_b, ["items", "children", "className"]);
4823
4619
  const [open, setOpen] = useState14(false);
@@ -4840,7 +4636,7 @@ function ContextMenu(_a) {
4840
4636
  document.removeEventListener("keydown", handleKey);
4841
4637
  };
4842
4638
  }, [open]);
4843
- return /* @__PURE__ */ jsxs57(
4639
+ return /* @__PURE__ */ jsxs55(
4844
4640
  "div",
4845
4641
  __spreadProps(__spreadValues({
4846
4642
  className: cn("ph-context-menu", className),
@@ -4852,14 +4648,14 @@ function ContextMenu(_a) {
4852
4648
  }, props), {
4853
4649
  children: [
4854
4650
  children,
4855
- open && /* @__PURE__ */ jsx69(
4651
+ open && /* @__PURE__ */ jsx66(
4856
4652
  "div",
4857
4653
  {
4858
4654
  ref: menuRef,
4859
4655
  className: "ph-context-menu__panel",
4860
4656
  style: { left: pos.x, top: pos.y },
4861
4657
  children: items.map(
4862
- (item, i) => item.separator ? /* @__PURE__ */ jsx69("div", { className: "ph-context-menu__separator" }, i) : /* @__PURE__ */ jsxs57(
4658
+ (item, i) => item.separator ? /* @__PURE__ */ jsx66("div", { className: "ph-context-menu__separator" }, i) : /* @__PURE__ */ jsxs55(
4863
4659
  "button",
4864
4660
  {
4865
4661
  type: "button",
@@ -4871,8 +4667,8 @@ function ContextMenu(_a) {
4871
4667
  },
4872
4668
  className: "ph-context-menu__item",
4873
4669
  children: [
4874
- item.icon && /* @__PURE__ */ jsx69("span", { className: "ph-context-menu__icon", children: item.icon }),
4875
- /* @__PURE__ */ jsx69("span", { children: item.label })
4670
+ item.icon && /* @__PURE__ */ jsx66("span", { className: "ph-context-menu__icon", children: item.icon }),
4671
+ /* @__PURE__ */ jsx66("span", { children: item.label })
4876
4672
  ]
4877
4673
  },
4878
4674
  i
@@ -4888,7 +4684,7 @@ ContextMenu.displayName = "ContextMenu";
4888
4684
 
4889
4685
  // src/components/ui/Resizable.tsx
4890
4686
  import { useState as useState15, useRef as useRef8, useCallback } from "react";
4891
- import { jsx as jsx70, jsxs as jsxs58 } from "react/jsx-runtime";
4687
+ import { jsx as jsx67, jsxs as jsxs56 } from "react/jsx-runtime";
4892
4688
  function Resizable(_a) {
4893
4689
  var _b = _a, {
4894
4690
  left,
@@ -4928,22 +4724,22 @@ function Resizable(_a) {
4928
4724
  document.addEventListener("mousemove", handleMove);
4929
4725
  document.addEventListener("mouseup", handleUp);
4930
4726
  }, [leftPercent, minLeftWidth, minRightWidth]);
4931
- return /* @__PURE__ */ jsxs58(
4727
+ return /* @__PURE__ */ jsxs56(
4932
4728
  "div",
4933
4729
  __spreadProps(__spreadValues({
4934
4730
  ref: containerRef,
4935
4731
  className: cn("ph-resizable flex overflow-hidden", className)
4936
4732
  }, props), {
4937
4733
  children: [
4938
- /* @__PURE__ */ jsx70("div", { className: "ph-resizable__left overflow-auto", style: { width: `${leftPercent}%` }, children: left }),
4939
- /* @__PURE__ */ jsx70(
4734
+ /* @__PURE__ */ jsx67("div", { className: "ph-resizable__left overflow-auto", style: { width: `${leftPercent}%` }, children: left }),
4735
+ /* @__PURE__ */ jsx67(
4940
4736
  "div",
4941
4737
  {
4942
4738
  className: "ph-resizable__handle cursor-col-resize shrink-0",
4943
4739
  onMouseDown: handleMouseDown
4944
4740
  }
4945
4741
  ),
4946
- /* @__PURE__ */ jsx70("div", { className: "ph-resizable__right flex-1 overflow-auto", children: right })
4742
+ /* @__PURE__ */ jsx67("div", { className: "ph-resizable__right flex-1 overflow-auto", children: right })
4947
4743
  ]
4948
4744
  })
4949
4745
  );
@@ -4952,7 +4748,7 @@ Resizable.displayName = "Resizable";
4952
4748
 
4953
4749
  // src/components/ui/ScrollArea.tsx
4954
4750
  import { useRef as useRef9, useState as useState16, useEffect as useEffect8 } from "react";
4955
- import { jsx as jsx71, jsxs as jsxs59 } from "react/jsx-runtime";
4751
+ import { jsx as jsx68, jsxs as jsxs57 } from "react/jsx-runtime";
4956
4752
  function ScrollArea(_a) {
4957
4753
  var _b = _a, {
4958
4754
  children,
@@ -4982,7 +4778,7 @@ function ScrollArea(_a) {
4982
4778
  ro.disconnect();
4983
4779
  };
4984
4780
  }, []);
4985
- return /* @__PURE__ */ jsxs59(
4781
+ return /* @__PURE__ */ jsxs57(
4986
4782
  "div",
4987
4783
  __spreadProps(__spreadValues({
4988
4784
  className: cn(
@@ -4993,9 +4789,9 @@ function ScrollArea(_a) {
4993
4789
  )
4994
4790
  }, props), {
4995
4791
  children: [
4996
- showTop && /* @__PURE__ */ jsx71("div", { className: "ph-scroll-area__shadow-top" }),
4997
- /* @__PURE__ */ jsx71("div", { ref: viewportRef, className: "ph-scroll-area__viewport overflow-y-auto overscroll-contain", children }),
4998
- showBottom && /* @__PURE__ */ jsx71("div", { className: "ph-scroll-area__shadow-bottom" })
4792
+ showTop && /* @__PURE__ */ jsx68("div", { className: "ph-scroll-area__shadow-top" }),
4793
+ /* @__PURE__ */ jsx68("div", { ref: viewportRef, className: "ph-scroll-area__viewport overflow-y-auto overscroll-contain", children }),
4794
+ showBottom && /* @__PURE__ */ jsx68("div", { className: "ph-scroll-area__shadow-bottom" })
4999
4795
  ]
5000
4796
  })
5001
4797
  );
@@ -5004,7 +4800,7 @@ ScrollArea.displayName = "ScrollArea";
5004
4800
 
5005
4801
  // src/components/ui/NumberField.tsx
5006
4802
  import { useState as useState17 } from "react";
5007
- import { jsx as jsx72, jsxs as jsxs60 } from "react/jsx-runtime";
4803
+ import { jsx as jsx69, jsxs as jsxs58 } from "react/jsx-runtime";
5008
4804
  function NumberField(_a) {
5009
4805
  var _b = _a, {
5010
4806
  value: controlledValue,
@@ -5034,10 +4830,10 @@ function NumberField(_a) {
5034
4830
  setInternal(clamped);
5035
4831
  onChange == null ? void 0 : onChange(clamped);
5036
4832
  };
5037
- return /* @__PURE__ */ jsxs60("div", { className: cn("ph-number-field", className), children: [
5038
- label && /* @__PURE__ */ jsx72("label", { className: "ph-label", children: label }),
5039
- /* @__PURE__ */ jsxs60("div", { className: "ph-number-field__control", children: [
5040
- /* @__PURE__ */ jsx72(
4833
+ return /* @__PURE__ */ jsxs58("div", { className: cn("ph-number-field", className), children: [
4834
+ label && /* @__PURE__ */ jsx69("label", { className: "ph-label", children: label }),
4835
+ /* @__PURE__ */ jsxs58("div", { className: "ph-number-field__control", children: [
4836
+ /* @__PURE__ */ jsx69(
5041
4837
  "button",
5042
4838
  {
5043
4839
  type: "button",
@@ -5045,10 +4841,10 @@ function NumberField(_a) {
5045
4841
  onClick: () => set(value - step),
5046
4842
  className: "ph-number-field__btn",
5047
4843
  "aria-label": "Decrease",
5048
- children: /* @__PURE__ */ jsx72("svg", { width: "12", height: "2", viewBox: "0 0 12 2", fill: "currentColor", children: /* @__PURE__ */ jsx72("rect", { y: "0", width: "12", height: "2", rx: "1" }) })
4844
+ children: /* @__PURE__ */ jsx69("svg", { width: "12", height: "2", viewBox: "0 0 12 2", fill: "currentColor", children: /* @__PURE__ */ jsx69("rect", { y: "0", width: "12", height: "2", rx: "1" }) })
5049
4845
  }
5050
4846
  ),
5051
- /* @__PURE__ */ jsx72(
4847
+ /* @__PURE__ */ jsx69(
5052
4848
  "input",
5053
4849
  __spreadValues({
5054
4850
  type: "number",
@@ -5061,7 +4857,7 @@ function NumberField(_a) {
5061
4857
  className: "ph-number-field__input"
5062
4858
  }, inputProps)
5063
4859
  ),
5064
- /* @__PURE__ */ jsx72(
4860
+ /* @__PURE__ */ jsx69(
5065
4861
  "button",
5066
4862
  {
5067
4863
  type: "button",
@@ -5069,7 +4865,7 @@ function NumberField(_a) {
5069
4865
  onClick: () => set(value + step),
5070
4866
  className: "ph-number-field__btn",
5071
4867
  "aria-label": "Increase",
5072
- children: /* @__PURE__ */ jsx72("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx72("path", { d: "M6 2v8M2 6h8" }) })
4868
+ children: /* @__PURE__ */ jsx69("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx69("path", { d: "M6 2v8M2 6h8" }) })
5073
4869
  }
5074
4870
  )
5075
4871
  ] })
@@ -5078,24 +4874,24 @@ function NumberField(_a) {
5078
4874
  NumberField.displayName = "NumberField";
5079
4875
 
5080
4876
  // src/components/ui/InputGroup.tsx
5081
- import { jsx as jsx73 } from "react/jsx-runtime";
4877
+ import { jsx as jsx70 } from "react/jsx-runtime";
5082
4878
  function InputGroup(_a) {
5083
4879
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
5084
- return /* @__PURE__ */ jsx73("div", __spreadProps(__spreadValues({ className: cn("ph-input-group", className) }, props), { children }));
4880
+ return /* @__PURE__ */ jsx70("div", __spreadProps(__spreadValues({ className: cn("ph-input-group", className) }, props), { children }));
5085
4881
  }
5086
4882
  InputGroup.displayName = "InputGroup";
5087
4883
 
5088
4884
  // src/components/ui/ButtonGroup.tsx
5089
- import { jsx as jsx74 } from "react/jsx-runtime";
4885
+ import { jsx as jsx71 } from "react/jsx-runtime";
5090
4886
  function ButtonGroup(_a) {
5091
4887
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
5092
- return /* @__PURE__ */ jsx74("div", __spreadProps(__spreadValues({ className: cn("ph-btn-group", className) }, props), { children }));
4888
+ return /* @__PURE__ */ jsx71("div", __spreadProps(__spreadValues({ className: cn("ph-btn-group", className) }, props), { children }));
5093
4889
  }
5094
4890
  ButtonGroup.displayName = "ButtonGroup";
5095
4891
 
5096
4892
  // src/components/ui/Toggle.tsx
5097
4893
  import { forwardRef as forwardRef15 } from "react";
5098
- import { jsx as jsx75, jsxs as jsxs61 } from "react/jsx-runtime";
4894
+ import { jsx as jsx72, jsxs as jsxs59 } from "react/jsx-runtime";
5099
4895
  var ToggleButton = forwardRef15(function ToggleButton2(_a, ref) {
5100
4896
  var _b = _a, {
5101
4897
  pressed = false,
@@ -5110,7 +4906,7 @@ var ToggleButton = forwardRef15(function ToggleButton2(_a, ref) {
5110
4906
  "children",
5111
4907
  "className"
5112
4908
  ]);
5113
- return /* @__PURE__ */ jsxs61(
4909
+ return /* @__PURE__ */ jsxs59(
5114
4910
  "button",
5115
4911
  __spreadProps(__spreadValues({
5116
4912
  ref,
@@ -5124,7 +4920,7 @@ var ToggleButton = forwardRef15(function ToggleButton2(_a, ref) {
5124
4920
  )
5125
4921
  }, props), {
5126
4922
  children: [
5127
- icon && /* @__PURE__ */ jsx75("span", { className: "ph-toggle-btn__icon", children: icon }),
4923
+ icon && /* @__PURE__ */ jsx72("span", { className: "ph-toggle-btn__icon", children: icon }),
5128
4924
  children
5129
4925
  ]
5130
4926
  })
@@ -5138,13 +4934,13 @@ function ToggleGroup({
5138
4934
  children,
5139
4935
  className
5140
4936
  }) {
5141
- return /* @__PURE__ */ jsx75("div", { className: cn("ph-toggle-group", className), role: "group", children });
4937
+ return /* @__PURE__ */ jsx72("div", { className: cn("ph-toggle-group", className), role: "group", children });
5142
4938
  }
5143
4939
  ToggleGroup.displayName = "ToggleGroup";
5144
4940
 
5145
4941
  // src/components/ui/Menubar.tsx
5146
4942
  import { useState as useState18, useRef as useRef10, useEffect as useEffect9 } from "react";
5147
- import { jsx as jsx76, jsxs as jsxs62 } from "react/jsx-runtime";
4943
+ import { jsx as jsx73, jsxs as jsxs60 } from "react/jsx-runtime";
5148
4944
  function Menubar(_a) {
5149
4945
  var _b = _a, { items, className } = _b, props = __objRest(_b, ["items", "className"]);
5150
4946
  const [openIndex, setOpenIndex] = useState18(-1);
@@ -5159,8 +4955,8 @@ function Menubar(_a) {
5159
4955
  document.addEventListener("mousedown", handle);
5160
4956
  return () => document.removeEventListener("mousedown", handle);
5161
4957
  }, [openIndex]);
5162
- return /* @__PURE__ */ jsx76("div", __spreadProps(__spreadValues({ ref: barRef, className: cn("ph-menubar", className) }, props), { children: items.map((item, i) => /* @__PURE__ */ jsxs62("div", { className: "ph-menubar__item", children: [
5163
- /* @__PURE__ */ jsx76(
4958
+ return /* @__PURE__ */ jsx73("div", __spreadProps(__spreadValues({ ref: barRef, className: cn("ph-menubar", className) }, props), { children: items.map((item, i) => /* @__PURE__ */ jsxs60("div", { className: "ph-menubar__item", children: [
4959
+ /* @__PURE__ */ jsx73(
5164
4960
  "button",
5165
4961
  {
5166
4962
  type: "button",
@@ -5169,8 +4965,8 @@ function Menubar(_a) {
5169
4965
  children: item.label
5170
4966
  }
5171
4967
  ),
5172
- openIndex === i && item.items && /* @__PURE__ */ jsx76("div", { className: "ph-menubar__dropdown", children: item.items.map(
5173
- (sub, j) => sub.separator ? /* @__PURE__ */ jsx76("div", { className: "ph-menubar__separator" }, j) : /* @__PURE__ */ jsx76(
4968
+ openIndex === i && item.items && /* @__PURE__ */ jsx73("div", { className: "ph-menubar__dropdown", children: item.items.map(
4969
+ (sub, j) => sub.separator ? /* @__PURE__ */ jsx73("div", { className: "ph-menubar__separator" }, j) : /* @__PURE__ */ jsx73(
5174
4970
  "button",
5175
4971
  {
5176
4972
  type: "button",
@@ -5192,7 +4988,7 @@ Menubar.displayName = "Menubar";
5192
4988
 
5193
4989
  // src/components/ui/AlertDialog.tsx
5194
4990
  import { useState as useState19 } from "react";
5195
- import { jsx as jsx77, jsxs as jsxs63 } from "react/jsx-runtime";
4991
+ import { jsx as jsx74, jsxs as jsxs61 } from "react/jsx-runtime";
5196
4992
  function AlertDialog(_a) {
5197
4993
  var _b = _a, {
5198
4994
  isOpen: openProp,
@@ -5227,15 +5023,15 @@ function AlertDialog(_a) {
5227
5023
  }
5228
5024
  onClose == null ? void 0 : onClose();
5229
5025
  };
5230
- return /* @__PURE__ */ jsx77(
5026
+ return /* @__PURE__ */ jsx74(
5231
5027
  Modal,
5232
5028
  __spreadProps(__spreadValues({
5233
5029
  open: isOpen,
5234
5030
  onClose,
5235
5031
  title,
5236
- footer: /* @__PURE__ */ jsxs63("div", { className: "flex justify-end gap-2", children: [
5237
- /* @__PURE__ */ jsx77(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
5238
- onConfirm && /* @__PURE__ */ jsx77(Button, __spreadProps(__spreadValues({ variant: "primary", loading }, confirmProps), { onClick: handleConfirm, children: confirmText }))
5032
+ footer: /* @__PURE__ */ jsxs61("div", { className: "flex justify-end gap-2", children: [
5033
+ /* @__PURE__ */ jsx74(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
5034
+ onConfirm && /* @__PURE__ */ jsx74(Button, __spreadProps(__spreadValues({ variant: "primary", loading }, confirmProps), { onClick: handleConfirm, children: confirmText }))
5239
5035
  ] })
5240
5036
  }, modalProps), {
5241
5037
  children
@@ -5245,7 +5041,7 @@ function AlertDialog(_a) {
5245
5041
  AlertDialog.displayName = "AlertDialog";
5246
5042
 
5247
5043
  // src/components/ui/Dot.tsx
5248
- import { jsx as jsx78 } from "react/jsx-runtime";
5044
+ import { jsx as jsx75 } from "react/jsx-runtime";
5249
5045
  var colorMap2 = {
5250
5046
  green: "bg-ph-success",
5251
5047
  yellow: "bg-ph-warning",
@@ -5255,7 +5051,7 @@ var colorMap2 = {
5255
5051
  };
5256
5052
  function Dot(_a) {
5257
5053
  var _b = _a, { color = "gray", size = "md", className } = _b, props = __objRest(_b, ["color", "size", "className"]);
5258
- return /* @__PURE__ */ jsx78(
5054
+ return /* @__PURE__ */ jsx75(
5259
5055
  "span",
5260
5056
  __spreadValues({
5261
5057
  className: cn(
@@ -5272,7 +5068,7 @@ Dot.displayName = "Dot";
5272
5068
 
5273
5069
  // src/components/ui/Collapsible.tsx
5274
5070
  import { useState as useState20 } from "react";
5275
- import { jsx as jsx79, jsxs as jsxs64 } from "react/jsx-runtime";
5071
+ import { jsx as jsx76, jsxs as jsxs62 } from "react/jsx-runtime";
5276
5072
  function Collapsible(_a) {
5277
5073
  var _b = _a, {
5278
5074
  trigger,
@@ -5290,8 +5086,8 @@ function Collapsible(_a) {
5290
5086
  const [internalOpen, setInternalOpen] = useState20(false);
5291
5087
  const isOpen = controlledOpen != null ? controlledOpen : internalOpen;
5292
5088
  const setOpen = onOpenChange != null ? onOpenChange : setInternalOpen;
5293
- return /* @__PURE__ */ jsxs64("div", __spreadProps(__spreadValues({ className: cn("ph-collapsible", className) }, props), { children: [
5294
- /* @__PURE__ */ jsxs64(
5089
+ return /* @__PURE__ */ jsxs62("div", __spreadProps(__spreadValues({ className: cn("ph-collapsible", className) }, props), { children: [
5090
+ /* @__PURE__ */ jsxs62(
5295
5091
  "button",
5296
5092
  {
5297
5093
  type: "button",
@@ -5299,7 +5095,7 @@ function Collapsible(_a) {
5299
5095
  className: "ph-collapsible__trigger",
5300
5096
  "aria-expanded": isOpen,
5301
5097
  children: [
5302
- /* @__PURE__ */ jsx79(
5098
+ /* @__PURE__ */ jsx76(
5303
5099
  "svg",
5304
5100
  {
5305
5101
  className: cn("ph-collapsible__chevron", isOpen && "ph-collapsible__chevron--open"),
@@ -5310,20 +5106,20 @@ function Collapsible(_a) {
5310
5106
  stroke: "currentColor",
5311
5107
  strokeWidth: "2",
5312
5108
  strokeLinecap: "round",
5313
- children: /* @__PURE__ */ jsx79("path", { d: "M4 5l3 3 3-3" })
5109
+ children: /* @__PURE__ */ jsx76("path", { d: "M4 5l3 3 3-3" })
5314
5110
  }
5315
5111
  ),
5316
5112
  trigger
5317
5113
  ]
5318
5114
  }
5319
5115
  ),
5320
- isOpen && /* @__PURE__ */ jsx79("div", { className: "ph-collapsible__content", children })
5116
+ isOpen && /* @__PURE__ */ jsx76("div", { className: "ph-collapsible__content", children })
5321
5117
  ] }));
5322
5118
  }
5323
5119
  Collapsible.displayName = "Collapsible";
5324
5120
 
5325
5121
  // src/components/ui/Metric.tsx
5326
- import { jsx as jsx80, jsxs as jsxs65 } from "react/jsx-runtime";
5122
+ import { jsx as jsx77, jsxs as jsxs63 } from "react/jsx-runtime";
5327
5123
  function Metric(_a) {
5328
5124
  var _b = _a, {
5329
5125
  value,
@@ -5340,21 +5136,21 @@ function Metric(_a) {
5340
5136
  "icon",
5341
5137
  "className"
5342
5138
  ]);
5343
- return /* @__PURE__ */ jsxs65("div", __spreadProps(__spreadValues({ className: cn("ph-metric", className) }, props), { children: [
5344
- /* @__PURE__ */ jsxs65("div", { className: "ph-metric__header", children: [
5345
- icon && /* @__PURE__ */ jsx80("span", { className: "ph-metric__icon", children: icon }),
5346
- /* @__PURE__ */ jsx80("span", { className: "ph-metric__label", children: label }),
5347
- badge && /* @__PURE__ */ jsx80("span", { className: "ph-metric__badge", children: badge })
5139
+ return /* @__PURE__ */ jsxs63("div", __spreadProps(__spreadValues({ className: cn("ph-metric", className) }, props), { children: [
5140
+ /* @__PURE__ */ jsxs63("div", { className: "ph-metric__header", children: [
5141
+ icon && /* @__PURE__ */ jsx77("span", { className: "ph-metric__icon", children: icon }),
5142
+ /* @__PURE__ */ jsx77("span", { className: "ph-metric__label", children: label }),
5143
+ badge && /* @__PURE__ */ jsx77("span", { className: "ph-metric__badge", children: badge })
5348
5144
  ] }),
5349
- /* @__PURE__ */ jsx80("div", { className: "ph-metric__value", children: value }),
5350
- trend && /* @__PURE__ */ jsx80("div", { className: "ph-metric__trend", children: trend })
5145
+ /* @__PURE__ */ jsx77("div", { className: "ph-metric__value", children: value }),
5146
+ trend && /* @__PURE__ */ jsx77("div", { className: "ph-metric__trend", children: trend })
5351
5147
  ] }));
5352
5148
  }
5353
5149
  Metric.displayName = "Metric";
5354
5150
 
5355
5151
  // src/components/ui/Chip.tsx
5356
5152
  import { forwardRef as forwardRef16 } from "react";
5357
- import { jsx as jsx81, jsxs as jsxs66 } from "react/jsx-runtime";
5153
+ import { jsx as jsx78, jsxs as jsxs64 } from "react/jsx-runtime";
5358
5154
  var Chip = forwardRef16(function Chip2(_a, ref) {
5359
5155
  var _b = _a, {
5360
5156
  selected = false,
@@ -5367,7 +5163,7 @@ var Chip = forwardRef16(function Chip2(_a, ref) {
5367
5163
  "children",
5368
5164
  "className"
5369
5165
  ]);
5370
- return /* @__PURE__ */ jsxs66(
5166
+ return /* @__PURE__ */ jsxs64(
5371
5167
  "button",
5372
5168
  __spreadProps(__spreadValues({
5373
5169
  ref,
@@ -5379,8 +5175,8 @@ var Chip = forwardRef16(function Chip2(_a, ref) {
5379
5175
  )
5380
5176
  }, props), {
5381
5177
  children: [
5382
- /* @__PURE__ */ jsx81("span", { className: "ph-chip__text", children }),
5383
- onRemove && /* @__PURE__ */ jsx81(
5178
+ /* @__PURE__ */ jsx78("span", { className: "ph-chip__text", children }),
5179
+ onRemove && /* @__PURE__ */ jsx78(
5384
5180
  "span",
5385
5181
  {
5386
5182
  role: "button",
@@ -5391,7 +5187,7 @@ var Chip = forwardRef16(function Chip2(_a, ref) {
5391
5187
  },
5392
5188
  className: "ph-chip__remove",
5393
5189
  "aria-label": "Remove",
5394
- children: /* @__PURE__ */ jsx81("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx81("path", { d: "M2 2l6 6M8 2l-6 6" }) })
5190
+ children: /* @__PURE__ */ jsx78("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx78("path", { d: "M2 2l6 6M8 2l-6 6" }) })
5395
5191
  }
5396
5192
  )
5397
5193
  ]
@@ -5402,7 +5198,7 @@ Chip.displayName = "Chip";
5402
5198
 
5403
5199
  // src/components/ui/DataTable.tsx
5404
5200
  import { useState as useState21, useMemo } from "react";
5405
- import { jsx as jsx82, jsxs as jsxs67 } from "react/jsx-runtime";
5201
+ import { jsx as jsx79, jsxs as jsxs65 } from "react/jsx-runtime";
5406
5202
  function DataTable({
5407
5203
  columns,
5408
5204
  data,
@@ -5443,8 +5239,8 @@ function DataTable({
5443
5239
  setSortDir("asc");
5444
5240
  }
5445
5241
  };
5446
- return /* @__PURE__ */ jsxs67("div", { className: cn("ph-data-table", className), children: [
5447
- searchable && /* @__PURE__ */ jsx82("div", { className: "ph-data-table__toolbar", children: /* @__PURE__ */ jsx82(
5242
+ return /* @__PURE__ */ jsxs65("div", { className: cn("ph-data-table", className), children: [
5243
+ searchable && /* @__PURE__ */ jsx79("div", { className: "ph-data-table__toolbar", children: /* @__PURE__ */ jsx79(
5448
5244
  "input",
5449
5245
  {
5450
5246
  type: "text",
@@ -5457,33 +5253,33 @@ function DataTable({
5457
5253
  className: "ph-input ph-input-sm"
5458
5254
  }
5459
5255
  ) }),
5460
- /* @__PURE__ */ jsx82("div", { className: "ph-table-wrap", children: /* @__PURE__ */ jsxs67("table", { className: "ph-table", children: [
5461
- /* @__PURE__ */ jsx82("thead", { children: /* @__PURE__ */ jsx82("tr", { children: columns.map((col) => /* @__PURE__ */ jsxs67(
5256
+ /* @__PURE__ */ jsx79("div", { className: "ph-table-wrap", children: /* @__PURE__ */ jsxs65("table", { className: "ph-table", children: [
5257
+ /* @__PURE__ */ jsx79("thead", { children: /* @__PURE__ */ jsx79("tr", { children: columns.map((col) => /* @__PURE__ */ jsxs65(
5462
5258
  "th",
5463
5259
  {
5464
5260
  className: cn(col.sortable && "cursor-pointer select-none", col.className),
5465
5261
  onClick: () => col.sortable && handleSort(col.key),
5466
5262
  children: [
5467
5263
  col.label,
5468
- sortKey === col.key && /* @__PURE__ */ jsx82("span", { className: "ml-1 inline-block", children: sortDir === "asc" ? "\u2191" : "\u2193" })
5264
+ sortKey === col.key && /* @__PURE__ */ jsx79("span", { className: "ml-1 inline-block", children: sortDir === "asc" ? "\u2191" : "\u2193" })
5469
5265
  ]
5470
5266
  },
5471
5267
  col.key
5472
5268
  )) }) }),
5473
- /* @__PURE__ */ jsxs67("tbody", { children: [
5474
- paged.map((item, i) => /* @__PURE__ */ jsx82("tr", { children: columns.map((col) => /* @__PURE__ */ jsx82("td", { className: col.className, children: col.render ? col.render(item) : item[col.key] }, col.key)) }, i)),
5475
- paged.length === 0 && /* @__PURE__ */ jsx82("tr", { children: /* @__PURE__ */ jsx82("td", { colSpan: columns.length, className: "text-center text-ph-mutedtext py-8", children: "No results" }) })
5269
+ /* @__PURE__ */ jsxs65("tbody", { children: [
5270
+ paged.map((item, i) => /* @__PURE__ */ jsx79("tr", { children: columns.map((col) => /* @__PURE__ */ jsx79("td", { className: col.className, children: col.render ? col.render(item) : item[col.key] }, col.key)) }, i)),
5271
+ paged.length === 0 && /* @__PURE__ */ jsx79("tr", { children: /* @__PURE__ */ jsx79("td", { colSpan: columns.length, className: "text-center text-ph-mutedtext py-8", children: "No results" }) })
5476
5272
  ] })
5477
5273
  ] }) }),
5478
- totalPages > 1 && /* @__PURE__ */ jsxs67("div", { className: "ph-data-table__pagination", children: [
5479
- /* @__PURE__ */ jsx82("button", { disabled: page === 0, onClick: () => setPage((p4) => p4 - 1), className: "ph-data-table__page-btn", children: "Previous" }),
5480
- /* @__PURE__ */ jsxs67("span", { className: "text-xs text-ph-mutedtext", children: [
5274
+ totalPages > 1 && /* @__PURE__ */ jsxs65("div", { className: "ph-data-table__pagination", children: [
5275
+ /* @__PURE__ */ jsx79("button", { disabled: page === 0, onClick: () => setPage((p) => p - 1), className: "ph-data-table__page-btn", children: "Previous" }),
5276
+ /* @__PURE__ */ jsxs65("span", { className: "text-xs text-ph-mutedtext", children: [
5481
5277
  "Page ",
5482
5278
  page + 1,
5483
5279
  " of ",
5484
5280
  totalPages
5485
5281
  ] }),
5486
- /* @__PURE__ */ jsx82("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p4) => p4 + 1), className: "ph-data-table__page-btn", children: "Next" })
5282
+ /* @__PURE__ */ jsx79("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), className: "ph-data-table__page-btn", children: "Next" })
5487
5283
  ] })
5488
5284
  ] });
5489
5285
  }
@@ -5491,7 +5287,7 @@ DataTable.displayName = "DataTable";
5491
5287
 
5492
5288
  // src/components/ui/DatePicker.tsx
5493
5289
  import { useState as useState22, useMemo as useMemo2 } from "react";
5494
- import { jsx as jsx83, jsxs as jsxs68 } from "react/jsx-runtime";
5290
+ import { jsx as jsx80, jsxs as jsxs66 } from "react/jsx-runtime";
5495
5291
  var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
5496
5292
  var DAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
5497
5293
  function DatePicker(_a) {
@@ -5526,8 +5322,8 @@ function DatePicker(_a) {
5526
5322
  setOpen(false);
5527
5323
  };
5528
5324
  const nav = (delta) => setViewDate(new Date(viewDate.getFullYear(), viewDate.getMonth() + delta, 1));
5529
- return /* @__PURE__ */ jsxs68("div", { className: cn("ph-datepicker relative", className), children: [
5530
- /* @__PURE__ */ jsx83(
5325
+ return /* @__PURE__ */ jsxs66("div", { className: cn("ph-datepicker relative", className), children: [
5326
+ /* @__PURE__ */ jsx80(
5531
5327
  "input",
5532
5328
  __spreadValues({
5533
5329
  type: "text",
@@ -5538,19 +5334,19 @@ function DatePicker(_a) {
5538
5334
  className: "ph-input w-full cursor-pointer"
5539
5335
  }, props)
5540
5336
  ),
5541
- open && /* @__PURE__ */ jsxs68("div", { className: "ph-datepicker__dropdown", children: [
5542
- /* @__PURE__ */ jsxs68("div", { className: "ph-datepicker__nav", children: [
5543
- /* @__PURE__ */ jsx83("button", { type: "button", onClick: () => nav(-1), className: "ph-datepicker__nav-btn", "aria-label": "Previous month", children: /* @__PURE__ */ jsx83("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx83("path", { d: "M7 3L4 6l3 3" }) }) }),
5544
- /* @__PURE__ */ jsxs68("span", { className: "ph-datepicker__nav-label", children: [
5337
+ open && /* @__PURE__ */ jsxs66("div", { className: "ph-datepicker__dropdown", children: [
5338
+ /* @__PURE__ */ jsxs66("div", { className: "ph-datepicker__nav", children: [
5339
+ /* @__PURE__ */ jsx80("button", { type: "button", onClick: () => nav(-1), className: "ph-datepicker__nav-btn", "aria-label": "Previous month", children: /* @__PURE__ */ jsx80("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx80("path", { d: "M7 3L4 6l3 3" }) }) }),
5340
+ /* @__PURE__ */ jsxs66("span", { className: "ph-datepicker__nav-label", children: [
5545
5341
  MONTHS[viewDate.getMonth()],
5546
5342
  " ",
5547
5343
  viewDate.getFullYear()
5548
5344
  ] }),
5549
- /* @__PURE__ */ jsx83("button", { type: "button", onClick: () => nav(1), className: "ph-datepicker__nav-btn", "aria-label": "Next month", children: /* @__PURE__ */ jsx83("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx83("path", { d: "M5 3l3 3-3 3" }) }) })
5345
+ /* @__PURE__ */ jsx80("button", { type: "button", onClick: () => nav(1), className: "ph-datepicker__nav-btn", "aria-label": "Next month", children: /* @__PURE__ */ jsx80("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsx80("path", { d: "M5 3l3 3-3 3" }) }) })
5550
5346
  ] }),
5551
- /* @__PURE__ */ jsxs68("div", { className: "ph-datepicker__grid", children: [
5552
- DAYS.map((d) => /* @__PURE__ */ jsx83("div", { className: "ph-datepicker__day-header", children: d }, d)),
5553
- days.map((d, i) => /* @__PURE__ */ jsx83(
5347
+ /* @__PURE__ */ jsxs66("div", { className: "ph-datepicker__grid", children: [
5348
+ DAYS.map((d) => /* @__PURE__ */ jsx80("div", { className: "ph-datepicker__day-header", children: d }, d)),
5349
+ days.map((d, i) => /* @__PURE__ */ jsx80(
5554
5350
  "button",
5555
5351
  {
5556
5352
  type: "button",
@@ -5572,40 +5368,44 @@ function DatePicker(_a) {
5572
5368
  DatePicker.displayName = "DatePicker";
5573
5369
 
5574
5370
  // src/components/ui/AppLayout.tsx
5575
- import { jsx as jsx84, jsxs as jsxs69 } from "react/jsx-runtime";
5371
+ import { jsx as jsx81, jsxs as jsxs67 } from "react/jsx-runtime";
5576
5372
  function AppLayout({ sidebar, children, sidebarWidth = 240, className }) {
5577
- return /* @__PURE__ */ jsxs69(
5373
+ return /* @__PURE__ */ jsxs67(
5578
5374
  "div",
5579
5375
  {
5580
5376
  className: cn("ph-app-layout grid min-h-screen", className),
5581
5377
  style: { gridTemplateColumns: `${sidebarWidth}px minmax(0, 1fr)` },
5582
5378
  children: [
5583
- /* @__PURE__ */ jsx84("aside", { className: "ph-app-layout__sidebar border-r border-ph-border bg-ph-surface overflow-y-auto", children: sidebar }),
5584
- /* @__PURE__ */ jsx84("main", { className: "ph-app-layout__content min-w-0 overflow-y-auto bg-ph-canvas", children })
5379
+ /* @__PURE__ */ jsx81("aside", { className: "ph-app-layout__sidebar border-r border-ph-border bg-ph-surface overflow-y-auto", children: sidebar }),
5380
+ /* @__PURE__ */ jsx81("main", { className: "ph-app-layout__content min-w-0 overflow-y-auto bg-ph-canvas", children })
5585
5381
  ]
5586
5382
  }
5587
5383
  );
5588
5384
  }
5589
5385
 
5590
5386
  // src/components/ui/Sidebar.tsx
5591
- import { jsx as jsx85, jsxs as jsxs70 } from "react/jsx-runtime";
5592
- function Sidebar({ groups, className, header, footer, collapsed = false, onCollapse }) {
5593
- return /* @__PURE__ */ jsxs70("nav", { className: cn("ph-sidebar flex flex-col h-full", collapsed && "ph-sidebar--collapsed", className), children: [
5594
- header && /* @__PURE__ */ jsx85("div", { className: "ph-sidebar__header px-3 py-3 border-b border-ph-border-subtle", children: header }),
5595
- /* @__PURE__ */ jsx85("div", { className: "ph-sidebar__body flex-1 overflow-y-auto px-2 py-3 space-y-5", children: groups.map((group) => /* @__PURE__ */ jsxs70("div", { className: "ph-sidebar__group", children: [
5596
- !collapsed && /* @__PURE__ */ jsx85("h3", { className: "ph-sidebar__group-label px-2 mb-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext", children: group.label }),
5597
- /* @__PURE__ */ jsx85("div", { className: "ph-sidebar__items space-y-0.5", children: group.items.map((item) => /* @__PURE__ */ jsx85(SidebarItem, __spreadProps(__spreadValues({}, item), { collapsed }), item.label)) })
5598
- ] }, group.label)) }),
5599
- footer && /* @__PURE__ */ jsx85("div", { className: "ph-sidebar__footer px-3 py-3 border-t border-ph-border-subtle", children: footer })
5387
+ import { jsx as jsx82, jsxs as jsxs68 } from "react/jsx-runtime";
5388
+ function Sidebar({ groups, className, header, footer, children, collapsed = false, onCollapse }) {
5389
+ return /* @__PURE__ */ jsxs68("nav", { className: cn("ph-sidebar flex flex-col h-full", collapsed && "ph-sidebar--collapsed", className), children: [
5390
+ header && /* @__PURE__ */ jsx82("div", { className: "ph-sidebar__header px-3 py-3 border-b border-ph-border-subtle", children: header }),
5391
+ /* @__PURE__ */ jsx82("div", { className: "ph-sidebar__body flex-1 overflow-y-auto px-2 py-3 space-y-5", children: groups.map((group) => {
5392
+ var _a;
5393
+ return /* @__PURE__ */ jsxs68("div", { className: "ph-sidebar__group", children: [
5394
+ group.label && !collapsed && /* @__PURE__ */ jsx82("h3", { className: "ph-sidebar__group-label px-2 mb-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext", children: group.label }),
5395
+ /* @__PURE__ */ jsx82("div", { className: "ph-sidebar__items space-y-0.5", children: group.items.map((item) => /* @__PURE__ */ jsx82(SidebarItem, __spreadProps(__spreadValues({}, item), { collapsed }), item.label)) })
5396
+ ] }, (_a = group.label) != null ? _a : "default");
5397
+ }) }),
5398
+ children,
5399
+ footer && /* @__PURE__ */ jsx82("div", { className: "ph-sidebar__footer px-3 py-3 border-t border-ph-border-subtle", children: footer })
5600
5400
  ] });
5601
5401
  }
5602
- function SidebarItem({ label, icon, badge, active, onClick, collapsed }) {
5402
+ function SidebarItem({ label, icon, badge, active, href, onClick, collapsed }) {
5603
5403
  const Comp = onClick ? "button" : "a";
5604
- return /* @__PURE__ */ jsxs70(
5404
+ return /* @__PURE__ */ jsxs68(
5605
5405
  Comp,
5606
5406
  {
5607
5407
  type: onClick ? "button" : void 0,
5608
- href: onClick ? void 0 : void 0,
5408
+ href: onClick ? void 0 : href,
5609
5409
  onClick,
5610
5410
  className: cn(
5611
5411
  "ph-sidebar__item flex items-center gap-2.5 w-full rounded-md px-2.5 py-2 text-sm text-left transition",
@@ -5614,9 +5414,9 @@ function SidebarItem({ label, icon, badge, active, onClick, collapsed }) {
5614
5414
  ),
5615
5415
  title: collapsed ? label : void 0,
5616
5416
  children: [
5617
- icon && /* @__PURE__ */ jsx85("span", { className: "ph-sidebar__item-icon shrink-0 w-4 h-4 flex items-center justify-center", children: icon }),
5618
- !collapsed && /* @__PURE__ */ jsx85("span", { className: "ph-sidebar__item-label truncate flex-1", children: label }),
5619
- !collapsed && badge && /* @__PURE__ */ jsx85("span", { className: "ph-sidebar__item-badge shrink-0", children: badge })
5417
+ icon && /* @__PURE__ */ jsx82("span", { className: cn("ph-sidebar__item-icon shrink-0 flex items-center justify-center", collapsed ? "w-5 h-5" : "w-4 h-4"), children: icon }),
5418
+ !collapsed && /* @__PURE__ */ jsx82("span", { className: "ph-sidebar__item-label truncate flex-1", children: label }),
5419
+ !collapsed && badge && /* @__PURE__ */ jsx82("span", { className: "ph-sidebar__item-badge shrink-0", children: badge })
5620
5420
  ]
5621
5421
  }
5622
5422
  );
@@ -5711,138 +5511,6 @@ export {
5711
5511
  PH_ICON_ALIASES,
5712
5512
  PH_ICONS,
5713
5513
  IconByName,
5714
- IconTextSize,
5715
- IconBranch,
5716
- IconFeedback,
5717
- IconSelectAll,
5718
- IconKey,
5719
- IconOpenInApp,
5720
- IconSwapHoriz,
5721
- IconBlank,
5722
- IconRadioButtonUnchecked,
5723
- IconOffline,
5724
- IconMenu,
5725
- IconSubtitles,
5726
- IconSubtitlesOff,
5727
- IconCalculate,
5728
- IconGroupedEvents,
5729
- IconQuestionAnswer,
5730
- IconOpenInNew,
5731
- IconTrendingFlat,
5732
- IconTrendingFlatDown,
5733
- IconTrendingDown,
5734
- IconAction,
5735
- IconEvent,
5736
- IconReplay,
5737
- IconHeatmap,
5738
- IconUnverifiedEvent,
5739
- IconVerifiedEvent,
5740
- IconBookmarkBorder,
5741
- IconWeb,
5742
- IconMonitor,
5743
- IconBold,
5744
- IconItalic,
5745
- IconDevices,
5746
- IconMacOS,
5747
- IconAppleIOS,
5748
- IconWindows,
5749
- IconLinux,
5750
- IconAndroidOS,
5751
- IconLink,
5752
- IconPreview,
5753
- IconEyeHidden,
5754
- IconFunnelHorizontal,
5755
- IconFunnelVertical,
5756
- IconFullScreen,
5757
- IconPauseCircle,
5758
- IconSkipBackward,
5759
- IconSkipStart,
5760
- IconSkipEnd,
5761
- IconDragHandle,
5762
- IconAdsClick,
5763
- IconFingerprint,
5764
- IconVerticalAlignCenter,
5765
- IconGhost,
5766
- IconGitlab,
5767
- IconGoogle,
5768
- IconSlack,
5769
- IconSlackExternal,
5770
- IconMicrosoftTeams,
5771
- IconChrome,
5772
- IconFirefox,
5773
- IconSafari,
5774
- IconFacebook,
5775
- Icon123,
5776
- IconNodeJS,
5777
- IconStamphog,
5778
- IconPalette,
5779
- IconMegaphone,
5780
- IconMap,
5781
- IconMapPin,
5782
- IconCoffee,
5783
- IconBook,
5784
- IconCalendar,
5785
- IconClock,
5786
- IconGlobe,
5787
- IconCloud,
5788
- IconBug,
5789
- IconCrown,
5790
- IconConfetti,
5791
- IconLightBulb,
5792
- IconHourglass,
5793
- IconStore,
5794
- IconCart,
5795
- IconEye,
5796
- IconPeople,
5797
- IconGroups,
5798
- IconDocument,
5799
- IconAI,
5800
- IconArchive,
5801
- IconAtSign,
5802
- IconBadge,
5803
- IconBinary,
5804
- IconGear,
5805
- IconCalendarDay,
5806
- IconChat,
5807
- IconCheckboxChecked,
5808
- IconDownloadCloud,
5809
- IconExternalLink,
5810
- IconFile,
5811
- IconFilter,
5812
- IconFolder,
5813
- IconForward,
5814
- IconHash,
5815
- IconHeadphones,
5816
- IconHeart,
5817
- IconHomeFilled,
5818
- IconImage,
5819
- IconInbox,
5820
- IconInfoFilled,
5821
- IconKeyFilled,
5822
- IconLaptop,
5823
- IconLayout,
5824
- IconLifeBuoy,
5825
- IconLinkBreak,
5826
- IconLocation,
5827
- IconLock,
5828
- IconMaximize,
5829
- IconMic,
5830
- IconMinimize,
5831
- IconMinus,
5832
- IconMoonFilled,
5833
- IconMoreHorizontal,
5834
- IconMoreVertical,
5835
- IconMusic,
5836
- IconNavigation,
5837
- IconPaperclip,
5838
- IconPercent,
5839
- IconPhone,
5840
- IconPin,
5841
- IconPrinter,
5842
- IconRedo,
5843
- IconRefresh,
5844
- IconReply,
5845
- IconReport,
5846
5514
  Alert,
5847
5515
  Badge,
5848
5516
  Card,