@enya-learning/nova 0.6.0 → 0.7.1

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 (110) hide show
  1. package/dist/chunks/dist-fahbq1psobj0ox6s.js.map +1 -1
  2. package/dist/chunks/dist-i6l6wqicjhnap81o.js +37 -0
  3. package/dist/chunks/{dist-o8x0ip0z71xkr2oh.js.map → dist-i6l6wqicjhnap81o.js.map} +1 -1
  4. package/dist/chunks/utils-chr77evsz8gs6wle.js +10 -0
  5. package/dist/chunks/{utils-kyb5nny4y41y7hd8.js.map → utils-chr77evsz8gs6wle.js.map} +1 -1
  6. package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js → vendor-styling-bq164a52kub0yzw7.js} +84 -81
  7. package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js.map → vendor-styling-bq164a52kub0yzw7.js.map} +1 -1
  8. package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js → vendor-utils-dzqqqwem43r86lbz.js} +48 -48
  9. package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js.map → vendor-utils-dzqqqwem43r86lbz.js.map} +1 -1
  10. package/dist/components/accordion.js +1 -1
  11. package/dist/components/accordion.js.map +1 -1
  12. package/dist/components/alert-dialog.js +1 -1
  13. package/dist/components/alert.js +2 -2
  14. package/dist/components/aspect-ratio.js +1 -1
  15. package/dist/components/avatar.js +1 -1
  16. package/dist/components/badge.js +2 -2
  17. package/dist/components/box.js +1 -1
  18. package/dist/components/breadcrumb.js +1 -1
  19. package/dist/components/breadcrumb.js.map +1 -1
  20. package/dist/components/button-group.js +2 -2
  21. package/dist/components/button.js +2 -2
  22. package/dist/components/calendar.js +59 -58
  23. package/dist/components/calendar.js.map +1 -1
  24. package/dist/components/card.js +1 -1
  25. package/dist/components/carousel.js +27 -26
  26. package/dist/components/carousel.js.map +1 -1
  27. package/dist/components/chart.js +1460 -1455
  28. package/dist/components/chart.js.map +1 -1
  29. package/dist/components/checkbox.js +1 -1
  30. package/dist/components/checkbox.js.map +1 -1
  31. package/dist/components/combobox.js +7 -7
  32. package/dist/components/combobox.js.map +1 -1
  33. package/dist/components/command.js +83 -83
  34. package/dist/components/command.js.map +1 -1
  35. package/dist/components/context-menu.js +1 -1
  36. package/dist/components/context-menu.js.map +1 -1
  37. package/dist/components/dialog.js +1 -1
  38. package/dist/components/dialog.js.map +1 -1
  39. package/dist/components/drawer.js +1 -1
  40. package/dist/components/drawer.js.map +1 -1
  41. package/dist/components/dropdown-menu.js +1 -1
  42. package/dist/components/dropdown-menu.js.map +1 -1
  43. package/dist/components/empty.js +2 -2
  44. package/dist/components/enya-logo.js +88 -78
  45. package/dist/components/enya-logo.js.map +1 -1
  46. package/dist/components/field.js +2 -2
  47. package/dist/components/field.js.map +1 -1
  48. package/dist/components/heading.js +11 -11
  49. package/dist/components/heading.js.map +1 -1
  50. package/dist/components/hover-card.js +1 -1
  51. package/dist/components/hover-card.js.map +1 -1
  52. package/dist/components/input-group.js +2 -2
  53. package/dist/components/input-otp.js +61 -60
  54. package/dist/components/input-otp.js.map +1 -1
  55. package/dist/components/input.js +1 -1
  56. package/dist/components/item.js +2 -2
  57. package/dist/components/kbd.js +1 -1
  58. package/dist/components/label.js +1 -1
  59. package/dist/components/menubar.js +1 -1
  60. package/dist/components/menubar.js.map +1 -1
  61. package/dist/components/native-select.js +1 -1
  62. package/dist/components/native-select.js.map +1 -1
  63. package/dist/components/navigation-menu.js +2 -2
  64. package/dist/components/navigation-menu.js.map +1 -1
  65. package/dist/components/pagination.js +1 -1
  66. package/dist/components/pagination.js.map +1 -1
  67. package/dist/components/popover.js +1 -1
  68. package/dist/components/popover.js.map +1 -1
  69. package/dist/components/progress.js +1 -1
  70. package/dist/components/progress.js.map +1 -1
  71. package/dist/components/radio-group.js +1 -1
  72. package/dist/components/radio-group.js.map +1 -1
  73. package/dist/components/resizable.js +119 -116
  74. package/dist/components/resizable.js.map +1 -1
  75. package/dist/components/scroll-area.js +1 -1
  76. package/dist/components/scroll-area.js.map +1 -1
  77. package/dist/components/select.js +1 -1
  78. package/dist/components/select.js.map +1 -1
  79. package/dist/components/separator.js +1 -1
  80. package/dist/components/sheet.js +1 -1
  81. package/dist/components/sheet.js.map +1 -1
  82. package/dist/components/sidebar.js +10 -10
  83. package/dist/components/sidebar.js.map +1 -1
  84. package/dist/components/skeleton.js +1 -1
  85. package/dist/components/slider.js +1 -1
  86. package/dist/components/slider.js.map +1 -1
  87. package/dist/components/sonner.js +163 -165
  88. package/dist/components/sonner.js.map +1 -1
  89. package/dist/components/spinner.js +1 -1
  90. package/dist/components/switch.js +1 -1
  91. package/dist/components/switch.js.map +1 -1
  92. package/dist/components/table.js +1 -1
  93. package/dist/components/table.js.map +1 -1
  94. package/dist/components/tabs.js +2 -2
  95. package/dist/components/text.js +2 -2
  96. package/dist/components/textarea.js +1 -1
  97. package/dist/components/toggle-group.js +1 -1
  98. package/dist/components/toggle-group.js.map +1 -1
  99. package/dist/components/toggle.js +2 -2
  100. package/dist/components/tooltip.js +1 -1
  101. package/dist/components/tooltip.js.map +1 -1
  102. package/dist/index.js +28 -21
  103. package/dist/src/index.d.ts +1 -0
  104. package/dist/styles/nova.css +1 -1
  105. package/dist/styles/shadcn-variants.css +98 -0
  106. package/dist/utils.js +1 -1
  107. package/package.json +15 -11
  108. package/src/eslint/no-primitive-colors.test.ts +1 -1
  109. package/dist/chunks/dist-o8x0ip0z71xkr2oh.js +0 -37
  110. package/dist/chunks/utils-kyb5nny4y41y7hd8.js +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-group.js","names":[],"sources":["../../src/components/toggle-group/toggle-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { toggleVariants } from \"../toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 2,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 2,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[spacing=0]:data-[variant=outline]:rounded-4xl data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-3 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pe-2.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:ps-2.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-3xl group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-3xl group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-3xl group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-3xl data-[state=on]:bg-surface-muted group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"mappings":";;;;;;;AAQA,IAAM,IAAqB,EAAM,cAK/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AACf,CAAC;AAED,SAAS,EAAY,EACnB,WAAA,GACA,SAAA,GACA,MAAA,GACA,SAAA,IAAU,GACV,aAAA,IAAc,cACd,UAAA,GACA,GAAG,EAAA,GAKA;AACH,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,aAAU;AAAA,IACV,gBAAc;AAAA,IACd,aAAW;AAAA,IACX,gBAAc;AAAA,IACd,oBAAkB;AAAA,IAClB,OAAO,EAAE,SAAS,EAAQ;AAAA,IAC1B,WAAW,EACT,0LACA,CACF;AAAA,IACA,GAAI;AAAA,cAEJ,gBAAA,EAAC,EAAmB,UAApB;AAAA,MACE,OAAO;AAAA,QAAE,SAAA;AAAA,QAAS,MAAA;AAAA,QAAM,SAAA;AAAA,QAAS,aAAA;AAAA,MAAY;AAAA,MAE5C,UAAA;AAAA,IAC0B,CAAA;AAAA,EACT,CAAA;AAE1B;AAEA,SAAS,EAAgB,EACvB,WAAA,GACA,UAAA,GACA,SAAA,IAAU,WACV,MAAA,IAAO,WACP,GAAG,EAAA,GAC2D;AAC9D,QAAM,IAAU,EAAM,WAAW,CAAkB;AAEnD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,aAAU;AAAA,IACV,gBAAc,EAAQ,WAAW;AAAA,IACjC,aAAW,EAAQ,QAAQ;AAAA,IAC3B,gBAAc,EAAQ;AAAA,IACtB,WAAW,EACT,y9BACA,EAAe;AAAA,MACb,SAAS,EAAQ,WAAW;AAAA,MAC5B,MAAM,EAAQ,QAAQ;AAAA,IACxB,CAAC,GACD,CACF;AAAA,IACA,GAAI;AAAA,IAEH,UAAA;AAAA,EACc,CAAA;AAErB"}
1
+ {"version":3,"file":"toggle-group.js","names":[],"sources":["../../src/components/toggle-group/toggle-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { toggleVariants } from \"../toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 2,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 2,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[spacing=0]:data-[variant=outline]:rounded-4xl data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-3 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pe-2.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:ps-2.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-3xl group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-3xl group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-3xl group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-3xl data-[state=on]:bg-surface-muted group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"mappings":";;;;;;;AAQA,IAAM,IAAqB,EAAM,cAK/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AACf,CAAC;AAED,SAAS,EAAY,EACnB,WAAA,GACA,SAAA,GACA,MAAA,GACA,SAAA,IAAU,GACV,aAAA,IAAc,cACd,UAAA,GACA,GAAG,EAAA,GAKA;AACH,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,aAAU;AAAA,IACV,gBAAc;AAAA,IACd,aAAW;AAAA,IACX,gBAAc;AAAA,IACd,oBAAkB;AAAA,IAClB,OAAO,EAAE,SAAS,EAAQ;AAAA,IAC1B,WAAW,EACT,0LACA,CACF;AAAA,IACA,GAAI;AAAA,IAEJ,UAAA,gBAAA,EAAC,EAAmB,UAApB;AAAA,MACE,OAAO;AAAA,QAAE,SAAA;AAAA,QAAS,MAAA;AAAA,QAAM,SAAA;AAAA,QAAS,aAAA;AAAA,MAAY;AAAA,MAE5C,UAAA;AAAA,IAC0B,CAAA;AAAA,EACT,CAAA;AAE1B;AAEA,SAAS,EAAgB,EACvB,WAAA,GACA,UAAA,GACA,SAAA,IAAU,WACV,MAAA,IAAO,WACP,GAAG,EAAA,GAC2D;AAC9D,QAAM,IAAU,EAAM,WAAW,CAAkB;AAEnD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,aAAU;AAAA,IACV,gBAAc,EAAQ,WAAW;AAAA,IACjC,aAAW,EAAQ,QAAQ;AAAA,IAC3B,gBAAc,EAAQ;AAAA,IACtB,WAAW,EACT,y9BACA,EAAe;AAAA,MACb,SAAS,EAAQ,WAAW;AAAA,MAC5B,MAAM,EAAQ,QAAQ;AAAA,IACxB,CAAC,GACD,CACF;AAAA,IACA,GAAI;AAAA,IAEH,UAAA;AAAA,EACc,CAAA;AAErB"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as n } from "../chunks/dist-o8x0ip0z71xkr2oh.js";
3
- import { t as r } from "../chunks/utils-kyb5nny4y41y7hd8.js";
2
+ import { t as n } from "../chunks/dist-i6l6wqicjhnap81o.js";
3
+ import { t as r } from "../chunks/utils-chr77evsz8gs6wle.js";
4
4
  import { jsx as s } from "react/jsx-runtime";
5
5
  import { Toggle as o } from "@base-ui/react/toggle";
6
6
  var d = n("group/toggle inline-flex items-center justify-center gap-1 rounded-4xl text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-surface-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-surface-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as l } from "../chunks/utils-kyb5nny4y41y7hd8.js";
2
+ import { t as l } from "../chunks/utils-chr77evsz8gs6wle.js";
3
3
  import { jsx as e, jsxs as p } from "react/jsx-runtime";
4
4
  import { Tooltip as a } from "@base-ui/react/tooltip";
5
5
  function g({ delay: t = 0, ...i }) {
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","names":[],"sources":["../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-2xl bg-foreground px-3 py-1.5 text-xs text-surface-1 has-data-[slot=kbd]:pe-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-4xl data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:-start-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:translate-x-[1.5px] data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:-end-1 data-[side=inline-start]:top-1/2! data-[side=inline-start]:translate-x-[-1.5px] data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:translate-x-[-1.5px] data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:translate-x-[1.5px] data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5 rtl:data-[side=inline-end]:-translate-x-[1.5px] rtl:data-[side=inline-start]:-translate-x-[-1.5px] rtl:data-[side=left]:-translate-x-[-1.5px] rtl:data-[side=right]:-translate-x-[1.5px]\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;AAIA,SAAS,EAAgB,EACvB,OAAA,IAAQ,GACR,GAAG,EAAA,GAC+B;AAClC,SACE,gBAAA,EAAC,EAAiB,UAAlB;AAAA,IACE,aAAU;AAAA,IACH,OAAA;AAAA,IACP,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAQ,EAAE,GAAG,EAAA,GAAsC;AAC1D,SAAO,gBAAA,EAAC,EAAiB,MAAlB;AAAA,IAAuB,aAAU;AAAA,IAAU,GAAI;AAAA,EAAQ,CAAA;AAChE;AAEA,SAAS,EAAe,EAAE,GAAG,EAAA,GAAyC;AACpE,SAAO,gBAAA,EAAC,EAAiB,SAAlB;AAAA,IAA0B,aAAU;AAAA,IAAkB,GAAI;AAAA,EAAQ,CAAA;AAC3E;AAEA,SAAS,EAAe,EACtB,WAAA,GACA,MAAA,IAAO,OACP,YAAA,IAAa,GACb,OAAA,IAAQ,UACR,aAAA,IAAc,GACd,UAAA,GACA,GAAG,EAAA,GAKA;AACH,SACE,gBAAA,EAAC,EAAiB,QAAlB,EAAA,UACE,gBAAA,EAAC,EAAiB,YAAlB;AAAA,IACS,OAAA;AAAA,IACM,aAAA;AAAA,IACP,MAAA;AAAA,IACM,YAAA;AAAA,IACZ,WAAU;AAAA,cAEV,gBAAA,EAAC,EAAiB,OAAlB;AAAA,MACE,aAAU;AAAA,MACV,WAAW,EACT,mwBACA,CACF;AAAA,MACA,GAAI;AAAA,gBANN,CAQG,GACD,gBAAA,EAAC,EAAiB,OAAlB,EAAwB,WAAU,w3BAAy3B,CAAA,CACr4B;AAAA;EACG,CAAA,EACN,CAAA;AAE7B"}
1
+ {"version":3,"file":"tooltip.js","names":[],"sources":["../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-2xl bg-foreground px-3 py-1.5 text-xs text-surface-1 has-data-[slot=kbd]:pe-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-4xl data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:-start-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:translate-x-[1.5px] data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:-end-1 data-[side=inline-start]:top-1/2! data-[side=inline-start]:translate-x-[-1.5px] data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:translate-x-[-1.5px] data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:translate-x-[1.5px] data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5 rtl:data-[side=inline-end]:-translate-x-[1.5px] rtl:data-[side=inline-start]:-translate-x-[-1.5px] rtl:data-[side=left]:-translate-x-[-1.5px] rtl:data-[side=right]:-translate-x-[1.5px]\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;AAIA,SAAS,EAAgB,EACvB,OAAA,IAAQ,GACR,GAAG,EAAA,GAC+B;AAClC,SACE,gBAAA,EAAC,EAAiB,UAAlB;AAAA,IACE,aAAU;AAAA,IACH,OAAA;AAAA,IACP,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAQ,EAAE,GAAG,EAAA,GAAsC;AAC1D,SAAO,gBAAA,EAAC,EAAiB,MAAlB;AAAA,IAAuB,aAAU;AAAA,IAAU,GAAI;AAAA,EAAQ,CAAA;AAChE;AAEA,SAAS,EAAe,EAAE,GAAG,EAAA,GAAyC;AACpE,SAAO,gBAAA,EAAC,EAAiB,SAAlB;AAAA,IAA0B,aAAU;AAAA,IAAkB,GAAI;AAAA,EAAQ,CAAA;AAC3E;AAEA,SAAS,EAAe,EACtB,WAAA,GACA,MAAA,IAAO,OACP,YAAA,IAAa,GACb,OAAA,IAAQ,UACR,aAAA,IAAc,GACd,UAAA,GACA,GAAG,EAAA,GAKA;AACH,SACE,gBAAA,EAAC,EAAiB,QAAlB,EAAA,UACE,gBAAA,EAAC,EAAiB,YAAlB;AAAA,IACS,OAAA;AAAA,IACM,aAAA;AAAA,IACP,MAAA;AAAA,IACM,YAAA;AAAA,IACZ,WAAU;AAAA,IAEV,UAAA,gBAAA,EAAC,EAAiB,OAAlB;AAAA,MACE,aAAU;AAAA,MACV,WAAW,EACT,mwBACA,CACF;AAAA,MACA,GAAI;AAAA,MANN,UAAA,CAQG,GACD,gBAAA,EAAC,EAAiB,OAAlB,EAAwB,WAAU,w3BAAy3B,CAAA,CACr4B;AAAA;EACG,CAAA,EACN,CAAA;AAE7B"}
package/dist/index.js CHANGED
@@ -1,29 +1,36 @@
1
1
  "use client";
2
- import { t } from "./chunks/utils-kyb5nny4y41y7hd8.js";
3
- import { Button as n, buttonVariants as i } from "./components/button.js";
4
- import { ButtonGroup as a, ButtonGroupSeparator as p, ButtonGroupText as e, buttonGroupVariants as u } from "./components/button-group.js";
2
+ import { t as o } from "./chunks/utils-chr77evsz8gs6wle.js";
3
+ import { Button as m, buttonVariants as p } from "./components/button.js";
4
+ import { ButtonGroup as n, ButtonGroupSeparator as e, ButtonGroupText as a, buttonGroupVariants as u } from "./components/button-group.js";
5
5
  import { Spinner as f } from "./components/spinner.js";
6
- import { EnyaLogo as _, NOVA_ENYA_LOGO_DEFAULT_VARIANTS as g, NOVA_ENYA_LOGO_VARIANTS as s, generateEnyaLogoSvg as G } from "./components/enya-logo.js";
7
- import { Heading as O, headingVariants as x } from "./components/heading.js";
8
- import { Text as E, textVariants as L } from "./components/text.js";
9
- import { Box as T } from "./components/box.js";
6
+ import { EnyaLogo as y, NOVA_ENYA_LOGO_DEFAULT_VARIANTS as V, NOVA_ENYA_LOGO_VARIANTS as s, generateEnyaLogoSvg as _ } from "./components/enya-logo.js";
7
+ import { Heading as G, headingVariants as N } from "./components/heading.js";
8
+ import { Text as T, textVariants as x } from "./components/text.js";
9
+ import { Box as L } from "./components/box.js";
10
+ import { Empty as d, EmptyContent as c, EmptyDescription as b, EmptyHeader as l, EmptyMedia as D, EmptyTitle as H } from "./components/empty.js";
10
11
  import "./utils.js";
11
12
  export {
12
- T as Box,
13
- n as Button,
14
- a as ButtonGroup,
15
- p as ButtonGroupSeparator,
16
- e as ButtonGroupText,
17
- _ as EnyaLogo,
18
- O as Heading,
19
- g as NOVA_ENYA_LOGO_DEFAULT_VARIANTS,
13
+ L as Box,
14
+ m as Button,
15
+ n as ButtonGroup,
16
+ e as ButtonGroupSeparator,
17
+ a as ButtonGroupText,
18
+ d as Empty,
19
+ c as EmptyContent,
20
+ b as EmptyDescription,
21
+ l as EmptyHeader,
22
+ D as EmptyMedia,
23
+ H as EmptyTitle,
24
+ y as EnyaLogo,
25
+ G as Heading,
26
+ V as NOVA_ENYA_LOGO_DEFAULT_VARIANTS,
20
27
  s as NOVA_ENYA_LOGO_VARIANTS,
21
28
  f as Spinner,
22
- E as Text,
29
+ T as Text,
23
30
  u as buttonGroupVariants,
24
- i as buttonVariants,
25
- t as cn,
26
- G as generateEnyaLogoSvg,
27
- x as headingVariants,
28
- L as textVariants
31
+ p as buttonVariants,
32
+ o as cn,
33
+ _ as generateEnyaLogoSvg,
34
+ N as headingVariants,
35
+ x as textVariants
29
36
  };
@@ -5,4 +5,5 @@ export * from './components/enya-logo';
5
5
  export * from './components/heading';
6
6
  export * from './components/text';
7
7
  export * from './components/box';
8
+ export * from './components/empty';
8
9
  export * from './utils';
@@ -4,7 +4,7 @@
4
4
  @import "./nova-binding.css";
5
5
  @import "./typography.css";
6
6
  @import "tw-animate-css";
7
- @import "shadcn/tailwind.css";
7
+ @import "./shadcn-variants.css";
8
8
 
9
9
  @custom-variant dark (&:is([data-mode="dark"] *));
10
10
  @source "../../../../apps/**/*.{ts,tsx,astro}";
@@ -0,0 +1,98 @@
1
+ /* Vendored from the shadcn CLI's "base-maia" style preset (see
2
+ * components.json). shadcn is a dev-only CLI tool (devDependency, not
3
+ * shipped to consumers), so importing "shadcn/tailwind.css" directly broke
4
+ * downstream installs of @enya-learning/nova. Copied in-repo instead so it
5
+ * ships with dist/styles without depending on the shadcn package at
6
+ * consumer build time. The --radix-accordion-content-height fallback from
7
+ * the original preset was dropped: Nova uses Base UI, not Radix, which
8
+ * exposes --accordion-panel-height instead (see accordion.tsx). */
9
+
10
+ @theme inline {
11
+ @keyframes accordion-down {
12
+ from {
13
+ height: 0;
14
+ }
15
+ to {
16
+ height: var(--accordion-panel-height, auto);
17
+ }
18
+ }
19
+
20
+ @keyframes accordion-up {
21
+ from {
22
+ height: var(--accordion-panel-height, auto);
23
+ }
24
+ to {
25
+ height: 0;
26
+ }
27
+ }
28
+ }
29
+
30
+ /* Custom variants */
31
+ @custom-variant data-open {
32
+ &:where([data-state="open"]),
33
+ &:where([data-open]:not([data-open="false"])) {
34
+ @slot;
35
+ }
36
+ }
37
+
38
+ @custom-variant data-closed {
39
+ &:where([data-state="closed"]),
40
+ &:where([data-closed]:not([data-closed="false"])) {
41
+ @slot;
42
+ }
43
+ }
44
+
45
+ @custom-variant data-checked {
46
+ &:where([data-state="checked"]),
47
+ &:where([data-checked]:not([data-checked="false"])) {
48
+ @slot;
49
+ }
50
+ }
51
+
52
+ @custom-variant data-unchecked {
53
+ &:where([data-state="unchecked"]),
54
+ &:where([data-unchecked]:not([data-unchecked="false"])) {
55
+ @slot;
56
+ }
57
+ }
58
+
59
+ @custom-variant data-selected {
60
+ &:where([data-selected="true"]) {
61
+ @slot;
62
+ }
63
+ }
64
+
65
+ @custom-variant data-disabled {
66
+ &:where([data-disabled="true"]),
67
+ &:where([data-disabled]:not([data-disabled="false"])) {
68
+ @slot;
69
+ }
70
+ }
71
+
72
+ @custom-variant data-active {
73
+ &:where([data-state="active"]),
74
+ &:where([data-active]:not([data-active="false"])) {
75
+ @slot;
76
+ }
77
+ }
78
+
79
+ @custom-variant data-horizontal {
80
+ &:where([data-orientation="horizontal"]) {
81
+ @slot;
82
+ }
83
+ }
84
+
85
+ @custom-variant data-vertical {
86
+ &:where([data-orientation="vertical"]) {
87
+ @slot;
88
+ }
89
+ }
90
+
91
+ @utility no-scrollbar {
92
+ -ms-overflow-style: none;
93
+ scrollbar-width: none;
94
+
95
+ &::-webkit-scrollbar {
96
+ display: none;
97
+ }
98
+ }
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./chunks/utils-kyb5nny4y41y7hd8.js";
2
+ import { t as e } from "./chunks/utils-chr77evsz8gs6wle.js";
3
3
  export {
4
4
  e as cn
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enya-learning/nova",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -44,8 +44,7 @@
44
44
  "@types/react": "^19",
45
45
  "@types/react-dom": "^19",
46
46
  "@vitejs/plugin-react": "^6.0.2",
47
- "@vitest/ui": "^4.1.8",
48
- "oxlint": "latest",
47
+ "@vitest/ui": "4.1.10",
49
48
  "plop": "^4.0.0",
50
49
  "react-docgen-typescript": "^2.4.0",
51
50
  "shadcn": "^4.10.0",
@@ -53,9 +52,10 @@
53
52
  "tailwindcss": "^4",
54
53
  "tsx": "^4.22.4",
55
54
  "typescript": "~6",
56
- "vite": "^8.0.16",
55
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
57
56
  "vite-plugin-dts": "^5.0.2",
58
- "vitest": "^4.1.8"
57
+ "vitest": "4.1.10",
58
+ "vite-plus": "0.2.6"
59
59
  },
60
60
  "exports": {
61
61
  ".": {
@@ -80,6 +80,10 @@
80
80
  "types": "./dist/src/components/box/index.d.ts",
81
81
  "default": "./dist/components/box.js"
82
82
  },
83
+ "./components/empty": {
84
+ "types": "./dist/src/components/empty/index.d.ts",
85
+ "default": "./dist/components/empty.js"
86
+ },
83
87
  "./components/button-group": {
84
88
  "types": "./dist/src/components/button-group/index.d.ts",
85
89
  "default": "./dist/components/button-group.js"
@@ -127,14 +131,14 @@
127
131
  "*.css"
128
132
  ],
129
133
  "scripts": {
130
- "build": "vite build --mode production && tsx scripts/css-build.ts",
131
- "dev": "vite build --watch --mode development",
134
+ "build": "vp build --mode production && tsx scripts/css-build.ts",
135
+ "dev": "vp build --watch --mode development",
132
136
  "clean": "rm -rf dist",
133
- "lint": "oxlint --config oxlint.json src",
134
- "format": "prettier --write \"**/*.{ts,tsx}\" --ignore-path ../../.prettierignore",
137
+ "lint": "vp lint src",
138
+ "format": "vp fmt \"**/*.{ts,tsx}\"",
135
139
  "typecheck": "tsc --noEmit",
136
- "test": "vitest run",
137
- "test:watch": "vitest",
140
+ "test": "vp test run",
141
+ "test:watch": "vp test",
138
142
  "storybook": "storybook dev -p 6006",
139
143
  "storybook:build": "storybook build",
140
144
  "generate-docs": "tsx scripts/generate-docs.ts",
@@ -2,7 +2,7 @@ import { readFileSync } from "node:fs"
2
2
  import { globSync } from "node:fs"
3
3
  import { resolve } from "node:path"
4
4
  import { fileURLToPath } from "node:url"
5
- import { describe, expect, it } from "vitest"
5
+ import { describe, expect, it } from "vite-plus/test"
6
6
 
7
7
  const __dirname = fileURLToPath(new URL(".", import.meta.url))
8
8
  const NOVA_ROOT = resolve(__dirname, "../../..")
@@ -1,37 +0,0 @@
1
- "use client";
2
- import { n as O } from "./vendor-styling-eeiy57tyznmxsfky.js";
3
- var m = (n) => typeof n == "boolean" ? `${n}` : n === 0 ? "0" : n, y = O, j = (n, t) => (e) => {
4
- var r;
5
- if (t?.variants == null) return y(n, e?.class, e?.className);
6
- const { variants: s, defaultVariants: d } = t, V = Object.keys(s).map((l) => {
7
- const a = e?.[l], u = d?.[l];
8
- if (a === null) return null;
9
- const i = m(a) || m(u);
10
- return s[l][i];
11
- }), o = e && Object.entries(e).reduce((l, a) => {
12
- let [u, i] = a;
13
- return i === void 0 || (l[u] = i), l;
14
- }, {});
15
- return y(n, V, t == null || (r = t.compoundVariants) === null || r === void 0 ? void 0 : r.reduce((l, a) => {
16
- let { class: u, className: i, ...N } = a;
17
- return Object.entries(N).every((f) => {
18
- let [c, v] = f;
19
- return Array.isArray(v) ? v.includes({
20
- ...d,
21
- ...o
22
- }[c]) : {
23
- ...d,
24
- ...o
25
- }[c] === v;
26
- }) ? [
27
- ...l,
28
- u,
29
- i
30
- ] : l;
31
- }, []), e?.class, e?.className);
32
- };
33
- export {
34
- j as t
35
- };
36
-
37
- //# sourceMappingURL=dist-o8x0ip0z71xkr2oh.js.map
@@ -1,10 +0,0 @@
1
- "use client";
2
- import { n as e, t as n } from "./vendor-styling-eeiy57tyznmxsfky.js";
3
- function s(...t) {
4
- return n(e(t));
5
- }
6
- export {
7
- s as t
8
- };
9
-
10
- //# sourceMappingURL=utils-kyb5nny4y41y7hd8.js.map