@askrjs/themes 0.0.10 → 0.0.12

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 (168) hide show
  1. package/README.md +5 -5
  2. package/THEMING.md +2 -2
  3. package/dist/components/_internal/block-layout.d.ts +1 -1
  4. package/dist/components/_internal/block-layout.js +1 -1
  5. package/dist/components/_internal/block-layout.js.map +1 -1
  6. package/dist/components/_internal/jsx.js +9 -1
  7. package/dist/components/_internal/jsx.js.map +1 -1
  8. package/dist/components/alert/alert.d.ts +0 -1
  9. package/dist/components/alert/alert.js.map +1 -1
  10. package/dist/components/alert/alert.types.d.ts +0 -1
  11. package/dist/components/alert/index.d.ts +2 -1
  12. package/dist/components/aside/aside.d.ts +0 -1
  13. package/dist/components/aside/aside.types.d.ts +1 -0
  14. package/dist/components/aside/index.d.ts +2 -1
  15. package/dist/components/aspect-ratio/aspect-ratio.d.ts +0 -1
  16. package/dist/components/aspect-ratio/aspect-ratio.js +2 -4
  17. package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -1
  18. package/dist/components/aspect-ratio/aspect-ratio.types.d.ts +1 -2
  19. package/dist/components/aspect-ratio/index.d.ts +2 -1
  20. package/dist/components/badge/badge.d.ts +0 -1
  21. package/dist/components/badge/badge.js +2 -4
  22. package/dist/components/badge/badge.js.map +1 -1
  23. package/dist/components/badge/badge.types.d.ts +1 -2
  24. package/dist/components/badge/index.d.ts +2 -1
  25. package/dist/components/block/block.d.ts +0 -1
  26. package/dist/components/block/block.js +2 -4
  27. package/dist/components/block/block.js.map +1 -1
  28. package/dist/components/block/block.types.d.ts +2 -3
  29. package/dist/components/block/index.d.ts +2 -1
  30. package/dist/components/brand/brand.d.ts +0 -1
  31. package/dist/components/brand/brand.js +4 -5
  32. package/dist/components/brand/brand.js.map +1 -1
  33. package/dist/components/brand/brand.types.d.ts +0 -1
  34. package/dist/components/brand/index.d.ts +2 -1
  35. package/dist/components/button-group/button-group.d.ts +0 -1
  36. package/dist/components/button-group/button-group.js.map +1 -1
  37. package/dist/components/button-group/button-group.types.d.ts +0 -1
  38. package/dist/components/button-group/index.d.ts +2 -1
  39. package/dist/components/card/card.d.ts +0 -1
  40. package/dist/components/card/card.types.d.ts +0 -1
  41. package/dist/components/card/index.d.ts +2 -1
  42. package/dist/components/catalog.d.ts +0 -1
  43. package/dist/components/catalog.js +2 -1
  44. package/dist/components/catalog.js.map +1 -1
  45. package/dist/components/close/close.d.ts +0 -1
  46. package/dist/components/close/close.types.d.ts +0 -1
  47. package/dist/components/close/index.d.ts +2 -1
  48. package/dist/components/container/container.d.ts +0 -1
  49. package/dist/components/container/container.types.d.ts +1 -0
  50. package/dist/components/container/index.d.ts +2 -1
  51. package/dist/components/empty-state/empty-state.d.ts +0 -1
  52. package/dist/components/empty-state/empty-state.types.d.ts +1 -0
  53. package/dist/components/empty-state/index.d.ts +2 -1
  54. package/dist/components/field/field.d.ts +0 -1
  55. package/dist/components/field/field.types.d.ts +0 -1
  56. package/dist/components/field/index.d.ts +2 -1
  57. package/dist/components/footer/footer.d.ts +0 -1
  58. package/dist/components/footer/footer.types.d.ts +1 -1
  59. package/dist/components/footer/index.d.ts +2 -1
  60. package/dist/components/grid/grid.d.ts +0 -1
  61. package/dist/components/grid/grid.js +2 -5
  62. package/dist/components/grid/grid.js.map +1 -1
  63. package/dist/components/grid/grid.types.d.ts +0 -1
  64. package/dist/components/grid/index.d.ts +2 -1
  65. package/dist/components/header/header.d.ts +0 -1
  66. package/dist/components/header/header.types.d.ts +1 -0
  67. package/dist/components/header/index.d.ts +2 -1
  68. package/dist/components/input-group/index.d.ts +2 -1
  69. package/dist/components/input-group/input-group.d.ts +0 -1
  70. package/dist/components/input-group/input-group.js +2 -4
  71. package/dist/components/input-group/input-group.js.map +1 -1
  72. package/dist/components/input-group/input-group.types.d.ts +0 -1
  73. package/dist/components/main/index.d.ts +2 -1
  74. package/dist/components/main/main.d.ts +0 -1
  75. package/dist/components/main/main.types.d.ts +1 -0
  76. package/dist/components/nav/index.d.ts +2 -1
  77. package/dist/components/nav/nav.d.ts +0 -1
  78. package/dist/components/nav/nav.js +22 -15
  79. package/dist/components/nav/nav.js.map +1 -1
  80. package/dist/components/nav/nav.types.d.ts +1 -2
  81. package/dist/components/navbar/index.d.ts +3 -1
  82. package/dist/components/navbar/navbar.d.ts +0 -1
  83. package/dist/components/navbar/navbar.js +9 -8
  84. package/dist/components/navbar/navbar.js.map +1 -1
  85. package/dist/components/navbar/navbar.types.d.ts +1 -1
  86. package/dist/components/overlays/dropdown-content.d.ts +0 -1
  87. package/dist/components/page/index.d.ts +2 -1
  88. package/dist/components/page/page.d.ts +0 -1
  89. package/dist/components/page/page.types.d.ts +1 -0
  90. package/dist/components/page-header/index.d.ts +2 -1
  91. package/dist/components/page-header/page-header.d.ts +0 -1
  92. package/dist/components/page-header/page-header.types.d.ts +1 -0
  93. package/dist/components/section/index.d.ts +2 -1
  94. package/dist/components/section/section.d.ts +0 -1
  95. package/dist/components/section/section.types.d.ts +1 -0
  96. package/dist/components/separator/index.d.ts +2 -1
  97. package/dist/components/separator/separator.d.ts +0 -1
  98. package/dist/components/separator/separator.js +2 -4
  99. package/dist/components/separator/separator.js.map +1 -1
  100. package/dist/components/separator/separator.types.d.ts +0 -1
  101. package/dist/components/sidebar/index.d.ts +2 -1
  102. package/dist/components/sidebar/sidebar.d.ts +2 -3
  103. package/dist/components/sidebar/sidebar.js +5 -8
  104. package/dist/components/sidebar/sidebar.js.map +1 -1
  105. package/dist/components/sidebar/sidebar.types.d.ts +1 -0
  106. package/dist/components/skeleton/index.d.ts +2 -1
  107. package/dist/components/skeleton/skeleton.d.ts +0 -1
  108. package/dist/components/skeleton/skeleton.js +8 -8
  109. package/dist/components/skeleton/skeleton.js.map +1 -1
  110. package/dist/components/skeleton/skeleton.types.d.ts +0 -1
  111. package/dist/components/spinner/index.d.ts +2 -1
  112. package/dist/components/spinner/spinner.d.ts +0 -1
  113. package/dist/components/spinner/spinner.types.d.ts +0 -1
  114. package/dist/components/stat/index.d.ts +2 -1
  115. package/dist/components/stat/stat.d.ts +0 -1
  116. package/dist/components/stat/stat.types.d.ts +0 -1
  117. package/dist/components/text/index.d.ts +2 -1
  118. package/dist/components/text/text.d.ts +0 -1
  119. package/dist/components/text/text.js +2 -5
  120. package/dist/components/text/text.js.map +1 -1
  121. package/dist/components/text/text.types.d.ts +0 -1
  122. package/dist/components/theme/index.d.ts +2 -1
  123. package/dist/components/theme/theme.d.ts +5 -6
  124. package/dist/components/theme/theme.js +102 -70
  125. package/dist/components/theme/theme.js.map +1 -1
  126. package/dist/components/toolbar/index.d.ts +2 -1
  127. package/dist/components/toolbar/toolbar.d.ts +0 -1
  128. package/dist/components/toolbar/toolbar.types.d.ts +1 -0
  129. package/dist/components.d.ts +34 -4
  130. package/dist/components.js +4 -4
  131. package/dist/controls.d.ts +4 -0
  132. package/dist/core.d.ts +18 -2
  133. package/dist/navs.d.ts +1 -0
  134. package/dist/overlays.d.ts +2 -2
  135. package/dist/overlays.js +2 -2
  136. package/dist/surfaces.d.ts +8 -0
  137. package/dist/theme.d.ts +3 -2
  138. package/dist/theme.js +2 -2
  139. package/dist/themes/default/index.css +3 -3
  140. package/package.json +19 -12
  141. package/src/components/_internal/jsx.ts +11 -0
  142. package/src/components/alert/alert.tsx +1 -1
  143. package/src/components/aspect-ratio/aspect-ratio.tsx +2 -1
  144. package/src/components/badge/badge.tsx +2 -1
  145. package/src/components/block/block.tsx +2 -2
  146. package/src/components/brand/brand.tsx +3 -3
  147. package/src/components/button-group/button-group.tsx +1 -1
  148. package/src/components/catalog.tsx +3 -1
  149. package/src/components/grid/grid.tsx +2 -2
  150. package/src/components/input-group/input-group.tsx +3 -2
  151. package/src/components/nav/nav.tsx +25 -19
  152. package/src/components/navbar/navbar.tsx +22 -14
  153. package/src/components/separator/separator.tsx +2 -1
  154. package/src/components/sidebar/index.ts +1 -1
  155. package/src/components/sidebar/sidebar.tsx +7 -7
  156. package/src/components/skeleton/skeleton.tsx +8 -10
  157. package/src/components/text/text.tsx +2 -2
  158. package/src/components/theme/index.ts +4 -4
  159. package/src/components/theme/theme.tsx +135 -99
  160. package/src/components.ts +4 -4
  161. package/src/overlays.ts +3 -3
  162. package/src/theme.ts +4 -4
  163. package/src/themes/default/styles/display/coverage.css +1 -1
  164. package/src/themes/default/styles/overlays/toast.css +1 -1
  165. package/src/themes/default/styles/shell/sidebar.css +1 -1
  166. package/templates/theme/styles/display/coverage.css +1 -1
  167. package/templates/theme/styles/overlays/toast.css +1 -1
  168. package/templates/theme/styles/shell/sidebar.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nav.js","names":[],"sources":["../../../src/components/nav/nav.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { currentRoute, Link, navigate } from \"@askrjs/askr/router\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { resolvePathname } from \"../_internal/pathname\";\nimport type {\n NavItemAsChildProps,\n NavItemProps,\n NavLinkProps,\n PillProps,\n PillsAsChildProps,\n PillsProps,\n TabProps,\n TabsAsChildProps,\n TabsProps,\n} from \"./nav.types\";\n\nfunction normalizePathname(pathname: string): string {\n return pathname.endsWith(\"/\") && pathname !== \"/\" ? pathname.slice(0, -1) : pathname;\n}\n\nfunction getCurrentPathname(): string | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n return normalizePathname(window.location.pathname || \"/\");\n}\n\nfunction getReactiveCurrentPathname(): string | null {\n try {\n return normalizePathname(currentRoute().path || \"/\");\n } catch {\n return getCurrentPathname();\n }\n}\n\nfunction isActiveNavLink(\n currentPathname: string,\n targetPathname: string,\n match: NavLinkProps[\"match\"] = \"prefix\",\n): boolean {\n if (targetPathname === \"/\") {\n return currentPathname === \"/\";\n }\n\n if (match === \"exact\") {\n return currentPathname === targetPathname;\n }\n\n return currentPathname === targetPathname || currentPathname.startsWith(`${targetPathname}/`);\n}\n\nfunction shouldHandleClientNavigation(\n event: MouseEvent,\n target: string | undefined,\n targetPathname: string | null,\n): boolean {\n if (targetPathname === null || target) {\n return false;\n }\n\n return (\n !event.defaultPrevented &&\n (event.button ?? 0) === 0 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n );\n}\n\nfunction renderNavSet(\n props: TabsProps | TabsAsChildProps | PillsProps | PillsAsChildProps,\n slot: \"tabs\" | \"pills\",\n): JSX.Element {\n const className = \"class\" in props ? props.class : undefined;\n const { asChild, children, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(slot, className),\n \"data-slot\": slot,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return <nav {...finalProps}>{children}</nav>;\n}\n\nfunction renderRoutedLink(\n props: NavLinkProps | TabProps | PillProps,\n slot: \"nav-item\" | \"tab\" | \"pill\",\n options: { activeBackground?: boolean; className?: string; inheritSlot?: boolean } = {},\n): JSX.Element {\n const {\n active,\n children,\n href,\n onClick,\n ref,\n class: className,\n match = \"prefix\",\n target,\n ...rest\n } = props as NavLinkProps & { onClick?: (event: MouseEvent) => void };\n const inheritedSlot =\n options.inheritSlot && typeof (rest as Record<string, unknown>)[\"data-slot\"] === \"string\"\n ? String((rest as Record<string, unknown>)[\"data-slot\"])\n : undefined;\n const resolvedSlot = (inheritedSlot ?? slot) as \"nav-item\" | \"tab\" | \"pill\";\n const inheritedNavClass =\n slot === \"nav-item\" && resolvedSlot !== \"nav-item\" ? \"nav-item\" : undefined;\n const { \"data-slot\": _dataSlot, ...childRest } = rest as Record<string, unknown>;\n void _dataSlot;\n const currentPathname = getReactiveCurrentPathname();\n const targetPathname = resolvePathname(href);\n const routeActive =\n currentPathname !== null &&\n targetPathname !== null &&\n isActiveNavLink(currentPathname, targetPathname, match);\n const isActive = active ?? routeActive;\n const activeProps = isActive\n ? {\n \"aria-current\": \"page\" as const,\n \"data-active\": \"true\" as const,\n }\n : {\n \"data-active\": undefined,\n };\n const useRouterLink = targetPathname !== null && !target && typeof onClick !== \"function\";\n const childProps = {\n ...childRest,\n href,\n target,\n };\n const handleClick = (event: MouseEvent) => {\n onClick?.(event);\n\n if (!shouldHandleClientNavigation(event, target, targetPathname)) {\n return;\n }\n\n event.preventDefault();\n navigate(href);\n };\n\n return (\n <Block\n asChild\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius={resolvedSlot === \"pill\" ? \"round\" : \"md\"}\n background={isActive && options.activeBackground ? \"selected\" : undefined}\n ref={ref}\n class={classes(options.className, inheritedNavClass, className)}\n data-slot={resolvedSlot}\n {...activeProps}\n >\n {useRouterLink ? (\n <Link {...childProps}>{children}</Link>\n ) : (\n <a {...childProps} onClick={handleClick}>\n {children}\n </a>\n )}\n </Block>\n );\n}\n\nexport function Tabs(props: TabsProps): JSX.Element;\nexport function Tabs(props: TabsAsChildProps): JSX.Element;\nexport function Tabs(props: TabsProps | TabsAsChildProps): JSX.Element {\n return renderNavSet(props, \"tabs\");\n}\n\nexport function Pills(props: PillsProps): JSX.Element;\nexport function Pills(props: PillsAsChildProps): JSX.Element;\nexport function Pills(props: PillsProps | PillsAsChildProps): JSX.Element {\n return renderNavSet(props, \"pills\");\n}\n\nexport function Tab(props: TabProps): JSX.Element {\n return renderRoutedLink(props, \"tab\", { className: \"tab\" });\n}\n\nexport function Pill(props: PillProps): JSX.Element {\n return renderRoutedLink(props, \"pill\", { activeBackground: true, className: \"pill\" });\n}\n\nexport function NavItem(props: NavItemProps): JSX.Element;\nexport function NavItem(props: NavItemAsChildProps): JSX.Element;\nexport function NavItem(props: NavItemProps | NavItemAsChildProps): JSX.Element {\n const {\n asChild,\n active = false,\n children,\n ref,\n class: className,\n match: _match,\n ...rest\n } = props as (NavItemProps | NavItemAsChildProps) & { match?: unknown };\n void _match;\n\n if (asChild) {\n return (\n <Block\n asChild\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius=\"md\"\n background={active ? \"selected\" : undefined}\n {...rest}\n ref={ref}\n class={className}\n data-active={active ? \"true\" : undefined}\n data-slot=\"nav-item\"\n >\n {children}\n </Block>\n );\n }\n\n return (\n <Block\n as=\"a\"\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius=\"md\"\n background={active ? \"selected\" : undefined}\n {...rest}\n ref={ref}\n class={className}\n data-active={active ? \"true\" : undefined}\n data-slot=\"nav-item\"\n >\n {children}\n </Block>\n );\n}\n\nexport function NavLink(props: NavLinkProps): JSX.Element {\n return renderRoutedLink(props, \"nav-item\", { activeBackground: true, inheritSlot: true });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"nav.js","names":[],"sources":["../../../src/components/nav/nav.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { currentRoute, Link, navigate } from \"@askrjs/askr/router\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport { resolvePathname } from \"../_internal/pathname\";\nimport type {\n NavItemAsChildProps,\n NavItemProps,\n NavLinkProps,\n PillProps,\n PillsAsChildProps,\n PillsProps,\n TabProps,\n TabsAsChildProps,\n TabsProps,\n} from \"./nav.types\";\n\nconst LayoutBlock = Block as (props: Record<string, unknown>) => JSX.Element;\n\nfunction normalizePathname(pathname: string): string {\n return pathname.endsWith(\"/\") && pathname !== \"/\" ? pathname.slice(0, -1) : pathname;\n}\n\nfunction getCurrentPathname(): string | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n return normalizePathname(window.location.pathname || \"/\");\n}\n\nfunction getReactiveCurrentPathname(): string | null {\n try {\n return normalizePathname(currentRoute().path || \"/\");\n } catch {\n return getCurrentPathname();\n }\n}\n\nfunction isActiveNavLink(\n currentPathname: string,\n targetPathname: string,\n match: NavLinkProps[\"match\"] = \"prefix\",\n): boolean {\n if (targetPathname === \"/\") {\n return currentPathname === \"/\";\n }\n\n if (match === \"exact\") {\n return currentPathname === targetPathname;\n }\n\n return currentPathname === targetPathname || currentPathname.startsWith(`${targetPathname}/`);\n}\n\nfunction shouldHandleClientNavigation(\n event: MouseEvent,\n target: string | undefined,\n targetPathname: string | null,\n): boolean {\n if (targetPathname === null || target) {\n return false;\n }\n\n return (\n !event.defaultPrevented &&\n (event.button ?? 0) === 0 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n );\n}\n\nfunction renderNavSet(\n props: TabsProps | TabsAsChildProps | PillsProps | PillsAsChildProps,\n slot: \"tabs\" | \"pills\",\n): JSX.Element {\n const className = \"class\" in props ? props.class : undefined;\n const { asChild, children, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(slot, className),\n \"data-slot\": slot,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return intrinsicElement(\"nav\", finalProps, children);\n}\n\nfunction renderRoutedLink(\n props: NavLinkProps | TabProps | PillProps,\n slot: \"nav-item\" | \"tab\" | \"pill\",\n options: { activeBackground?: boolean; className?: string; inheritSlot?: boolean } = {},\n): JSX.Element {\n const {\n active,\n children,\n href: suppliedHref,\n to,\n onClick,\n ref,\n class: className,\n match = \"prefix\",\n target,\n ...rest\n } = props as NavLinkProps & { onClick?: (event: MouseEvent) => void };\n const href = to?.href ?? suppliedHref;\n if (!href) {\n throw new Error(\"Nav link requires href or to.\");\n }\n const inheritedSlot =\n options.inheritSlot && typeof (rest as Record<string, unknown>)[\"data-slot\"] === \"string\"\n ? String((rest as Record<string, unknown>)[\"data-slot\"])\n : undefined;\n const resolvedSlot = (inheritedSlot ?? slot) as \"nav-item\" | \"tab\" | \"pill\";\n const inheritedNavClass =\n slot === \"nav-item\" && resolvedSlot !== \"nav-item\" ? \"nav-item\" : undefined;\n const { \"data-slot\": _dataSlot, ...childRest } = rest as Record<string, unknown>;\n void _dataSlot;\n const currentPathname = getReactiveCurrentPathname();\n const targetPathname = resolvePathname(href);\n const routeActive =\n currentPathname !== null &&\n targetPathname !== null &&\n isActiveNavLink(currentPathname, targetPathname, match);\n const isActive = active ?? routeActive;\n const activeProps = isActive\n ? {\n \"aria-current\": \"page\" as const,\n \"data-active\": \"true\" as const,\n }\n : {\n \"data-active\": undefined,\n };\n const rendersRouterLink = targetPathname !== null && !target && typeof onClick !== \"function\";\n const childProps: NavLinkProps = to\n ? ({ ...childRest, to, target } as NavLinkProps)\n : ({ ...childRest, href, target } as NavLinkProps);\n const handleClick = (event: MouseEvent) => {\n onClick?.(event);\n\n if (!shouldHandleClientNavigation(event, target, targetPathname)) {\n return;\n }\n\n event.preventDefault();\n navigate(href);\n };\n\n return (\n <LayoutBlock\n asChild\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius={resolvedSlot === \"pill\" ? \"round\" : \"md\"}\n background={isActive && options.activeBackground ? \"selected\" : undefined}\n ref={ref}\n className={classes(options.className, inheritedNavClass, className)}\n data-slot={resolvedSlot}\n {...activeProps}\n >\n {rendersRouterLink ? (\n <Link {...childProps}>{children}</Link>\n ) : (\n <a {...childRest} href={href} target={target} onClick={handleClick}>\n {children}\n </a>\n )}\n </LayoutBlock>\n );\n}\n\nexport function Tabs(props: TabsProps): JSX.Element;\nexport function Tabs(props: TabsAsChildProps): JSX.Element;\nexport function Tabs(props: TabsProps | TabsAsChildProps): JSX.Element {\n return renderNavSet(props, \"tabs\");\n}\n\nexport function Pills(props: PillsProps): JSX.Element;\nexport function Pills(props: PillsAsChildProps): JSX.Element;\nexport function Pills(props: PillsProps | PillsAsChildProps): JSX.Element {\n return renderNavSet(props, \"pills\");\n}\n\nexport function Tab(props: TabProps): JSX.Element {\n return renderRoutedLink(props, \"tab\", { className: \"tab\" });\n}\n\nexport function Pill(props: PillProps): JSX.Element {\n return renderRoutedLink(props, \"pill\", { activeBackground: true, className: \"pill\" });\n}\n\nexport function NavItem(props: NavItemProps): JSX.Element;\nexport function NavItem(props: NavItemAsChildProps): JSX.Element;\nexport function NavItem(props: NavItemProps | NavItemAsChildProps): JSX.Element {\n const {\n asChild,\n active = false,\n children,\n ref,\n class: className,\n match: _match,\n ...rest\n } = props as (NavItemProps | NavItemAsChildProps) & { match?: unknown };\n void _match;\n\n if (asChild) {\n return (\n <LayoutBlock\n asChild\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius=\"md\"\n background={active ? \"selected\" : undefined}\n {...rest}\n ref={ref}\n className={className}\n data-active={active ? \"true\" : undefined}\n data-slot=\"nav-item\"\n >\n {children}\n </LayoutBlock>\n );\n }\n\n return (\n <LayoutBlock\n as=\"a\"\n paddingX=\"sm\"\n paddingY=\"xs\"\n radius=\"md\"\n background={active ? \"selected\" : undefined}\n {...rest}\n ref={ref}\n className={className}\n data-active={active ? \"true\" : undefined}\n data-slot=\"nav-item\"\n >\n {children}\n </LayoutBlock>\n );\n}\n\nexport function NavLink(props: NavLinkProps): JSX.Element {\n return renderRoutedLink(props, \"nav-item\", { activeBackground: true, inheritSlot: true });\n}\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { JSXElement } from "@askrjs/askr/foundations";
2
2
  import { Ref } from "@askrjs/askr/foundations/utilities";
3
3
  import { LinkProps } from "@askrjs/askr/router";
4
-
5
4
  //#region src/components/nav/nav.types.d.ts
6
5
  type NavLinkMatch = "prefix" | "exact";
7
6
  type TabsOwnProps = {
@@ -48,5 +47,5 @@ type NavLinkProps = LinkProps & NavLinkOwnProps;
48
47
  type TabProps = LinkProps & NavLinkOwnProps;
49
48
  type PillProps = LinkProps & NavLinkOwnProps;
50
49
  //#endregion
51
- export { NavItemAsChildProps, NavItemProps, NavLinkProps, PillProps, PillsAsChildProps, PillsProps, TabProps, TabsAsChildProps, TabsProps };
50
+ export { NavItemAsChildProps, NavItemOwnProps, NavItemProps, NavLinkMatch, NavLinkOwnProps, NavLinkProps, PillProps, PillsAsChildProps, PillsOwnProps, PillsProps, TabProps, TabsAsChildProps, TabsOwnProps, TabsProps };
52
51
  //# sourceMappingURL=nav.types.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import { NavBrandProps, NavDropdownProps, NavGroupProps, NavbarCollapseBreakpoint, NavbarProps } from "./navbar.types.js";
2
2
  import { NavBrand, NavDropdown, NavGroup, Navbar } from "./navbar.js";
3
3
  import { NavItemAsChildProps, NavItemProps, NavLinkProps } from "../nav/nav.types.js";
4
- import { NavItem, NavLink } from "../nav/nav.js";
4
+ import { NavItem, NavLink } from "../nav/nav.js";
5
+ import "../nav/index.js";
6
+ export { NavBrand, type NavBrandProps, NavDropdown, type NavDropdownProps, NavGroup, type NavGroupProps, NavItem, type NavItemAsChildProps, type NavItemProps, NavLink, type NavLinkProps, Navbar, type NavbarCollapseBreakpoint, type NavbarProps };
@@ -1,5 +1,4 @@
1
1
  import { NavBrandProps, NavDropdownProps, NavGroupProps, NavbarProps } from "./navbar.types.js";
2
-
3
2
  //#region src/components/navbar/navbar.d.ts
4
3
  declare function Navbar(props: NavbarProps): JSX.Element;
5
4
  declare function NavBrand(props: NavBrandProps): JSX.Element;
@@ -1,11 +1,12 @@
1
1
  import { classes } from "../_internal/classes.js";
2
+ import { isJsxElement, toChildArray } from "../_internal/jsx.js";
2
3
  import { Block } from "../block/block.js";
3
4
  import { DropdownContent as DropdownContent$1 } from "../overlays/dropdown-content.js";
4
- import { isJsxElement, toChildArray } from "../_internal/jsx.js";
5
5
  import { Dropdown, DropdownTrigger } from "@askrjs/ui";
6
6
  import { jsx, jsxs } from "@askrjs/askr/jsx-runtime";
7
7
  //#region src/components/navbar/navbar.tsx
8
8
  const ASKR_FRAGMENT = Symbol.for("askr.fragment");
9
+ const LayoutBlock = Block;
9
10
  function flattenNavbarChildren(children) {
10
11
  return toChildArray(children).flatMap((child) => {
11
12
  if (isJsxElement(child) && child.type === ASKR_FRAGMENT) return flattenNavbarChildren(child.props?.children);
@@ -23,7 +24,7 @@ function hasRenderableChildren(children) {
23
24
  }
24
25
  function Navbar(props) {
25
26
  const { breakpoint, children, collapseAt = breakpoint ?? false, collapseIcon, collapseLabel = "Menu", ...rest } = props;
26
- if (!collapseAt) return /* @__PURE__ */ jsx(Block, {
27
+ if (!collapseAt) return /* @__PURE__ */ jsx(LayoutBlock, {
27
28
  as: "nav",
28
29
  direction: "row",
29
30
  align: "center",
@@ -45,7 +46,7 @@ function Navbar(props) {
45
46
  "data-slot": "navbar-toggle-label",
46
47
  children: collapseLabel
47
48
  })]
48
- }), /* @__PURE__ */ jsx(Block, {
49
+ }), /* @__PURE__ */ jsx(LayoutBlock, {
49
50
  direction: "row",
50
51
  align: "center",
51
52
  gap: "md",
@@ -54,7 +55,7 @@ function Navbar(props) {
54
55
  children: navChildren
55
56
  })]
56
57
  }) : null;
57
- return /* @__PURE__ */ jsx(Block, {
58
+ return /* @__PURE__ */ jsx(LayoutBlock, {
58
59
  as: "nav",
59
60
  direction: "row",
60
61
  align: "center",
@@ -68,7 +69,7 @@ function Navbar(props) {
68
69
  }
69
70
  function NavBrand(props) {
70
71
  const { children, ...rest } = props;
71
- return /* @__PURE__ */ jsx(Block, {
72
+ return /* @__PURE__ */ jsx(LayoutBlock, {
72
73
  direction: "row",
73
74
  align: "center",
74
75
  gap: "sm",
@@ -80,7 +81,7 @@ function NavBrand(props) {
80
81
  }
81
82
  function NavGroup(props) {
82
83
  const { align, children, label, title = label, ...rest } = props;
83
- return /* @__PURE__ */ jsxs(Block, {
84
+ return /* @__PURE__ */ jsxs(LayoutBlock, {
84
85
  align,
85
86
  gap: "sm",
86
87
  ...rest,
@@ -89,7 +90,7 @@ function NavGroup(props) {
89
90
  children: [title !== void 0 ? /* @__PURE__ */ jsx("div", {
90
91
  "data-slot": "nav-group-label",
91
92
  children: title
92
- }) : null, /* @__PURE__ */ jsx(Block, {
93
+ }) : null, /* @__PURE__ */ jsx(LayoutBlock, {
93
94
  gap: "xs",
94
95
  "data-slot": "nav-group-body",
95
96
  children
@@ -98,7 +99,7 @@ function NavGroup(props) {
98
99
  }
99
100
  function NavDropdown(props) {
100
101
  const { align = "end", children, label, side = "bottom", sideOffset = 6, ...rest } = props;
101
- return /* @__PURE__ */ jsx(Block, {
102
+ return /* @__PURE__ */ jsx(LayoutBlock, {
102
103
  direction: "row",
103
104
  align: "center",
104
105
  "data-slot": "nav-dropdown",
@@ -1 +1 @@
1
- {"version":3,"file":"navbar.js","names":["DropdownContent"],"sources":["../../../src/components/navbar/navbar.tsx"],"sourcesContent":["import { Dropdown, DropdownTrigger } from \"@askrjs/ui\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { isJsxElement, toChildArray } from \"../_internal/jsx\";\nimport { DropdownContent } from \"../overlays/dropdown-content\";\nimport type { NavBrandProps, NavDropdownProps, NavGroupProps, NavbarProps } from \"./navbar.types\";\n\nconst ASKR_FRAGMENT = Symbol.for(\"askr.fragment\");\n\nfunction flattenNavbarChildren(children: unknown): unknown[] {\n return toChildArray(children).flatMap((child) => {\n if (isJsxElement(child) && child.type === ASKR_FRAGMENT) {\n return flattenNavbarChildren(child.props?.children);\n }\n\n return [child];\n });\n}\n\nfunction isNavBrandChild(child: unknown): boolean {\n return (\n isJsxElement(child) && (child.type === NavBrand || child.props?.[\"data-slot\"] === \"nav-brand\")\n );\n}\n\nfunction hasRenderableChildren(children: readonly unknown[]): boolean {\n return children.some((child) => {\n if (Array.isArray(child)) {\n return hasRenderableChildren(child);\n }\n\n return child !== undefined && child !== null && typeof child !== \"boolean\";\n });\n}\n\nexport function Navbar(props: NavbarProps): JSX.Element {\n const {\n breakpoint,\n children,\n collapseAt = breakpoint ?? false,\n collapseIcon,\n collapseLabel = \"Menu\",\n ...rest\n } = props;\n\n if (!collapseAt) {\n return (\n <Block\n as=\"nav\"\n direction=\"row\"\n align=\"center\"\n gap=\"md\"\n width=\"full\"\n {...rest}\n data-slot=\"navbar\"\n >\n {children}\n </Block>\n );\n }\n\n const navbarChildren = flattenNavbarChildren(children);\n const brandChildren = navbarChildren.filter(isNavBrandChild);\n const navChildren = navbarChildren.filter((child) => !isNavBrandChild(child));\n const hasNavContent = hasRenderableChildren(navChildren);\n const content = (\n <Block direction=\"row\" align=\"center\" gap=\"md\" width=\"full\" data-slot=\"navbar-content\">\n {navChildren}\n </Block>\n );\n const collapse = hasNavContent ? (\n <details data-slot=\"navbar-collapse\">\n <summary aria-label={collapseLabel} data-slot=\"navbar-toggle\">\n {collapseIcon}\n <span data-slot=\"navbar-toggle-label\">{collapseLabel}</span>\n </summary>\n {content}\n </details>\n ) : null;\n\n return (\n <Block\n as=\"nav\"\n direction=\"row\"\n align=\"center\"\n gap=\"md\"\n width=\"full\"\n {...rest}\n data-collapse-at={collapseAt}\n data-slot=\"navbar\"\n >\n {[...brandChildren, collapse]}\n </Block>\n );\n}\n\nexport function NavBrand(props: NavBrandProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <Block direction=\"row\" align=\"center\" gap=\"sm\" shrink={false} {...rest} data-slot=\"nav-brand\">\n {children}\n </Block>\n );\n}\n\nexport function NavGroup(props: NavGroupProps): JSX.Element {\n const { align, children, label, title = label, ...rest } = props;\n\n return (\n <Block align={align} gap=\"sm\" {...rest} data-align={align} data-slot=\"nav-group\">\n {title !== undefined ? <div data-slot=\"nav-group-label\">{title}</div> : null}\n <Block gap=\"xs\" data-slot=\"nav-group-body\">\n {children}\n </Block>\n </Block>\n );\n}\n\nexport function NavDropdown(props: NavDropdownProps): JSX.Element {\n const { align = \"end\", children, label, side = \"bottom\", sideOffset = 6, ...rest } = props;\n\n return (\n <Block direction=\"row\" align=\"center\" data-slot=\"nav-dropdown\">\n <Dropdown {...rest}>\n <DropdownTrigger class={classes(\"nav-item\")} data-slot=\"nav-dropdown-trigger\">\n {label}\n </DropdownTrigger>\n <DropdownContent\n align={align}\n class={classes(\"dropdown-content\")}\n data-slot=\"nav-dropdown-content\"\n side={side}\n sideOffset={sideOffset}\n >\n {children}\n </DropdownContent>\n </Dropdown>\n </Block>\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAM,gBAAgB,OAAO,IAAI,eAAe;AAEhD,SAAS,sBAAsB,UAA8B;CAC3D,OAAO,aAAa,QAAQ,CAAC,CAAC,SAAS,UAAU;EAC/C,IAAI,aAAa,KAAK,KAAK,MAAM,SAAS,eACxC,OAAO,sBAAsB,MAAM,OAAO,QAAQ;EAGpD,OAAO,CAAC,KAAK;CACf,CAAC;AACH;AAEA,SAAS,gBAAgB,OAAyB;CAChD,OACE,aAAa,KAAK,MAAM,MAAM,SAAS,YAAY,MAAM,QAAQ,iBAAiB;AAEtF;AAEA,SAAS,sBAAsB,UAAuC;CACpE,OAAO,SAAS,MAAM,UAAU;EAC9B,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,sBAAsB,KAAK;EAGpC,OAAO,UAAU,KAAA,KAAa,UAAU,QAAQ,OAAO,UAAU;CACnE,CAAC;AACH;AAEA,SAAgB,OAAO,OAAiC;CACtD,MAAM,EACJ,YACA,UACA,aAAa,cAAc,OAC3B,cACA,gBAAgB,QAChB,GAAG,SACD;CAEJ,IAAI,CAAC,YACH,OACE,oBAAC,OAAD;EACE,IAAG;EACH,WAAU;EACV,OAAM;EACN,KAAI;EACJ,OAAM;EACN,GAAI;EACJ,aAAU;EAET;CACI,CAAA;CAIX,MAAM,iBAAiB,sBAAsB,QAAQ;CACrD,MAAM,gBAAgB,eAAe,OAAO,eAAe;CAC3D,MAAM,cAAc,eAAe,QAAQ,UAAU,CAAC,gBAAgB,KAAK,CAAC;CAO5E,MAAM,WANgB,sBAAsB,WAMf,IAC3B,qBAAC,WAAD;EAAS,aAAU;YAAnB,CACE,qBAAC,WAAD;GAAS,cAAY;GAAe,aAAU;aAA9C,CACG,cACD,oBAAC,QAAD;IAAM,aAAU;cAAuB;GAAoB,CAAA,CACpD;MACR,oBAVF,OAAD;GAAO,WAAU;GAAM,OAAM;GAAS,KAAI;GAAK,OAAM;GAAO,aAAU;aACnE;EACI,CAQE,CACA;MACP;CAEJ,OACE,oBAAC,OAAD;EACE,IAAG;EACH,WAAU;EACV,OAAM;EACN,KAAI;EACJ,OAAM;EACN,GAAI;EACJ,oBAAkB;EAClB,aAAU;YAET,CAAC,GAAG,eAAe,QAAQ;CACvB,CAAA;AAEX;AAEA,SAAgB,SAAS,OAAmC;CAC1D,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,OAAD;EAAO,WAAU;EAAM,OAAM;EAAS,KAAI;EAAK,QAAQ;EAAO,GAAI;EAAM,aAAU;EAC/E;CACI,CAAA;AAEX;AAEA,SAAgB,SAAS,OAAmC;CAC1D,MAAM,EAAE,OAAO,UAAU,OAAO,QAAQ,OAAO,GAAG,SAAS;CAE3D,OACE,qBAAC,OAAD;EAAc;EAAO,KAAI;EAAK,GAAI;EAAM,cAAY;EAAO,aAAU;YAArE,CACG,UAAU,KAAA,IAAY,oBAAC,OAAD;GAAK,aAAU;aAAmB;EAAW,CAAA,IAAI,MACxE,oBAAC,OAAD;GAAO,KAAI;GAAK,aAAU;GACvB;EACI,CAAA,CACF;;AAEX;AAEA,SAAgB,YAAY,OAAsC;CAChE,MAAM,EAAE,QAAQ,OAAO,UAAU,OAAO,OAAO,UAAU,aAAa,GAAG,GAAG,SAAS;CAErF,OACE,oBAAC,OAAD;EAAO,WAAU;EAAM,OAAM;EAAS,aAAU;YAC9C,qBAAC,UAAD;GAAU,GAAI;aAAd,CACE,oBAAC,iBAAD;IAAiB,OAAO,QAAQ,UAAU;IAAG,aAAU;cACpD;GACc,CAAA,GACjB,oBAACA,mBAAD;IACS;IACP,OAAO,QAAQ,kBAAkB;IACjC,aAAU;IACJ;IACM;IAEX;GACc,CAAA,CACT;;CACL,CAAA;AAEX"}
1
+ {"version":3,"file":"navbar.js","names":["DropdownContent"],"sources":["../../../src/components/navbar/navbar.tsx"],"sourcesContent":["import { Dropdown, DropdownTrigger } from \"@askrjs/ui\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { isJsxElement, toChildArray } from \"../_internal/jsx\";\nimport { DropdownContent } from \"../overlays/dropdown-content\";\nimport type { NavBrandProps, NavDropdownProps, NavGroupProps, NavbarProps } from \"./navbar.types\";\n\nconst ASKR_FRAGMENT = Symbol.for(\"askr.fragment\");\nconst LayoutBlock = Block as (props: Record<string, unknown>) => JSX.Element;\n\nfunction flattenNavbarChildren(children: unknown): unknown[] {\n return toChildArray(children).flatMap((child) => {\n if (isJsxElement(child) && child.type === ASKR_FRAGMENT) {\n return flattenNavbarChildren(child.props?.children);\n }\n\n return [child];\n });\n}\n\nfunction isNavBrandChild(child: unknown): boolean {\n return (\n isJsxElement(child) && (child.type === NavBrand || child.props?.[\"data-slot\"] === \"nav-brand\")\n );\n}\n\nfunction hasRenderableChildren(children: readonly unknown[]): boolean {\n return children.some((child) => {\n if (Array.isArray(child)) {\n return hasRenderableChildren(child);\n }\n\n return child !== undefined && child !== null && typeof child !== \"boolean\";\n });\n}\n\nexport function Navbar(props: NavbarProps): JSX.Element {\n const {\n breakpoint,\n children,\n collapseAt = breakpoint ?? false,\n collapseIcon,\n collapseLabel = \"Menu\",\n ...rest\n } = props;\n\n if (!collapseAt) {\n return (\n <LayoutBlock\n as=\"nav\"\n direction=\"row\"\n align=\"center\"\n gap=\"md\"\n width=\"full\"\n {...rest}\n data-slot=\"navbar\"\n >\n {children}\n </LayoutBlock>\n );\n }\n\n const navbarChildren = flattenNavbarChildren(children);\n const brandChildren = navbarChildren.filter(isNavBrandChild);\n const navChildren = navbarChildren.filter((child) => !isNavBrandChild(child));\n const hasNavContent = hasRenderableChildren(navChildren);\n const content = (\n <LayoutBlock direction=\"row\" align=\"center\" gap=\"md\" width=\"full\" data-slot=\"navbar-content\">\n {navChildren}\n </LayoutBlock>\n );\n const collapse = hasNavContent ? (\n <details data-slot=\"navbar-collapse\">\n <summary aria-label={collapseLabel} data-slot=\"navbar-toggle\">\n {collapseIcon}\n <span data-slot=\"navbar-toggle-label\">{collapseLabel}</span>\n </summary>\n {content}\n </details>\n ) : null;\n\n return (\n <LayoutBlock\n as=\"nav\"\n direction=\"row\"\n align=\"center\"\n gap=\"md\"\n width=\"full\"\n {...rest}\n data-collapse-at={collapseAt}\n data-slot=\"navbar\"\n >\n {[...brandChildren, collapse]}\n </LayoutBlock>\n );\n}\n\nexport function NavBrand(props: NavBrandProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <LayoutBlock\n direction=\"row\"\n align=\"center\"\n gap=\"sm\"\n shrink={false}\n {...rest}\n data-slot=\"nav-brand\"\n >\n {children}\n </LayoutBlock>\n );\n}\n\nexport function NavGroup(props: NavGroupProps): JSX.Element {\n const { align, children, label, title = label, ...rest } = props;\n\n return (\n <LayoutBlock align={align} gap=\"sm\" {...rest} data-align={align} data-slot=\"nav-group\">\n {title !== undefined ? <div data-slot=\"nav-group-label\">{title}</div> : null}\n <LayoutBlock gap=\"xs\" data-slot=\"nav-group-body\">\n {children}\n </LayoutBlock>\n </LayoutBlock>\n );\n}\n\nexport function NavDropdown(props: NavDropdownProps): JSX.Element {\n const { align = \"end\", children, label, side = \"bottom\", sideOffset = 6, ...rest } = props;\n\n return (\n <LayoutBlock direction=\"row\" align=\"center\" data-slot=\"nav-dropdown\">\n <Dropdown {...rest}>\n <DropdownTrigger class={classes(\"nav-item\")} data-slot=\"nav-dropdown-trigger\">\n {label}\n </DropdownTrigger>\n <DropdownContent\n align={align}\n class={classes(\"dropdown-content\")}\n data-slot=\"nav-dropdown-content\"\n side={side}\n sideOffset={sideOffset}\n >\n {children}\n </DropdownContent>\n </Dropdown>\n </LayoutBlock>\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAM,gBAAgB,OAAO,IAAI,eAAe;AAChD,MAAM,cAAc;AAEpB,SAAS,sBAAsB,UAA8B;CAC3D,OAAO,aAAa,QAAQ,CAAC,CAAC,SAAS,UAAU;EAC/C,IAAI,aAAa,KAAK,KAAK,MAAM,SAAS,eACxC,OAAO,sBAAsB,MAAM,OAAO,QAAQ;EAGpD,OAAO,CAAC,KAAK;CACf,CAAC;AACH;AAEA,SAAS,gBAAgB,OAAyB;CAChD,OACE,aAAa,KAAK,MAAM,MAAM,SAAS,YAAY,MAAM,QAAQ,iBAAiB;AAEtF;AAEA,SAAS,sBAAsB,UAAuC;CACpE,OAAO,SAAS,MAAM,UAAU;EAC9B,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,sBAAsB,KAAK;EAGpC,OAAO,UAAU,KAAA,KAAa,UAAU,QAAQ,OAAO,UAAU;CACnE,CAAC;AACH;AAEA,SAAgB,OAAO,OAAiC;CACtD,MAAM,EACJ,YACA,UACA,aAAa,cAAc,OAC3B,cACA,gBAAgB,QAChB,GAAG,SACD;CAEJ,IAAI,CAAC,YACH,OACE,oBAAC,aAAD;EACE,IAAG;EACH,WAAU;EACV,OAAM;EACN,KAAI;EACJ,OAAM;EACN,GAAI;EACJ,aAAU;EAET;CACU,CAAA;CAIjB,MAAM,iBAAiB,sBAAsB,QAAQ;CACrD,MAAM,gBAAgB,eAAe,OAAO,eAAe;CAC3D,MAAM,cAAc,eAAe,QAAQ,UAAU,CAAC,gBAAgB,KAAK,CAAC;CAO5E,MAAM,WANgB,sBAAsB,WAMf,IAC3B,qBAAC,WAAD;EAAS,aAAU;YAAnB,CACE,qBAAC,WAAD;GAAS,cAAY;GAAe,aAAU;aAA9C,CACG,cACD,oBAAC,QAAD;IAAM,aAAU;cAAuB;GAAoB,CAAA,CACpD;MACR,oBAVF,aAAD;GAAa,WAAU;GAAM,OAAM;GAAS,KAAI;GAAK,OAAM;GAAO,aAAU;aACzE;EACU,CAQJ,CACA;MACP;CAEJ,OACE,oBAAC,aAAD;EACE,IAAG;EACH,WAAU;EACV,OAAM;EACN,KAAI;EACJ,OAAM;EACN,GAAI;EACJ,oBAAkB;EAClB,aAAU;YAET,CAAC,GAAG,eAAe,QAAQ;CACjB,CAAA;AAEjB;AAEA,SAAgB,SAAS,OAAmC;CAC1D,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,aAAD;EACE,WAAU;EACV,OAAM;EACN,KAAI;EACJ,QAAQ;EACR,GAAI;EACJ,aAAU;EAET;CACU,CAAA;AAEjB;AAEA,SAAgB,SAAS,OAAmC;CAC1D,MAAM,EAAE,OAAO,UAAU,OAAO,QAAQ,OAAO,GAAG,SAAS;CAE3D,OACE,qBAAC,aAAD;EAAoB;EAAO,KAAI;EAAK,GAAI;EAAM,cAAY;EAAO,aAAU;YAA3E,CACG,UAAU,KAAA,IAAY,oBAAC,OAAD;GAAK,aAAU;aAAmB;EAAW,CAAA,IAAI,MACxE,oBAAC,aAAD;GAAa,KAAI;GAAK,aAAU;GAC7B;EACU,CAAA,CACF;;AAEjB;AAEA,SAAgB,YAAY,OAAsC;CAChE,MAAM,EAAE,QAAQ,OAAO,UAAU,OAAO,OAAO,UAAU,aAAa,GAAG,GAAG,SAAS;CAErF,OACE,oBAAC,aAAD;EAAa,WAAU;EAAM,OAAM;EAAS,aAAU;YACpD,qBAAC,UAAD;GAAU,GAAI;aAAd,CACE,oBAAC,iBAAD;IAAiB,OAAO,QAAQ,UAAU;IAAG,aAAU;cACpD;GACc,CAAA,GACjB,oBAACA,mBAAD;IACS;IACP,OAAO,QAAQ,kBAAkB;IACjC,aAAU;IACJ;IACM;IAEX;GACc,CAAA,CACT;;CACC,CAAA;AAEjB"}
@@ -1,6 +1,6 @@
1
1
  import { BlockAsChildProps, BlockDivProps, BlockElementProps } from "../block/block.types.js";
2
+ import "../block/index.js";
2
3
  import { DropdownContentOwnProps, DropdownProps } from "@askrjs/ui";
3
-
4
4
  //#region src/components/navbar/navbar.types.d.ts
5
5
  type NavbarCollapseBreakpoint = "sm" | "md" | "lg" | "xl";
6
6
  type NavbarProps = Omit<BlockElementProps<"nav">, "as" | "direction" | "align"> & {
@@ -1,5 +1,4 @@
1
1
  import { DropdownContentAsChildProps, DropdownContentProps } from "@askrjs/ui";
2
-
3
2
  //#region src/components/overlays/dropdown-content.d.ts
4
3
  declare function DropdownContent$1(props: DropdownContentProps): JSX.Element | null;
5
4
  declare function DropdownContent$1(props: DropdownContentAsChildProps): JSX.Element | null;
@@ -1,2 +1,3 @@
1
1
  import { PageProps } from "./page.types.js";
2
- import { Page } from "./page.js";
2
+ import { Page } from "./page.js";
3
+ export { Page, type PageProps };
@@ -1,5 +1,4 @@
1
1
  import { PageProps } from "./page.types.js";
2
-
3
2
  //#region src/components/page/page.d.ts
4
3
  declare function Page(props: PageProps): JSX.Element;
5
4
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { MainProps } from "../main/main.types.js";
2
+ import "../main/index.js";
2
3
  //#region src/components/page/page.types.d.ts
3
4
  type PageProps = MainProps;
4
5
  //#endregion
@@ -1,2 +1,3 @@
1
1
  import { PageHeaderProps } from "./page-header.types.js";
2
- import { PageHeader } from "./page-header.js";
2
+ import { PageHeader } from "./page-header.js";
3
+ export { PageHeader, type PageHeaderProps };
@@ -1,5 +1,4 @@
1
1
  import { PageHeaderProps } from "./page-header.types.js";
2
-
3
2
  //#region src/components/page-header/page-header.d.ts
4
3
  declare function PageHeader(props: PageHeaderProps): JSX.Element;
5
4
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { BlockDivProps } from "../block/block.types.js";
2
+ import "../block/index.js";
2
3
  //#region src/components/page-header/page-header.types.d.ts
3
4
  type PageHeaderProps = BlockDivProps & {
4
5
  title: unknown;
@@ -1,2 +1,3 @@
1
1
  import { SectionProps } from "./section.types.js";
2
- import { Section } from "./section.js";
2
+ import { Section } from "./section.js";
3
+ export { Section, type SectionProps };
@@ -1,5 +1,4 @@
1
1
  import { SectionProps } from "./section.types.js";
2
-
3
2
  //#region src/components/section/section.d.ts
4
3
  declare function Section(props: SectionProps): JSX.Element;
5
4
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { BlockElementProps } from "../block/block.types.js";
2
+ import "../block/index.js";
2
3
  //#region src/components/section/section.types.d.ts
3
4
  type SectionProps = Omit<BlockElementProps<"section">, "as">;
4
5
  //#endregion
@@ -1,2 +1,3 @@
1
1
  import { SeparatorAsChildProps, SeparatorNativeProps, SeparatorOwnProps, SeparatorProps } from "./separator.types.js";
2
- import { Separator } from "./separator.js";
2
+ import { Separator } from "./separator.js";
3
+ export { Separator, type SeparatorAsChildProps, type SeparatorNativeProps, type SeparatorOwnProps, type SeparatorProps };
@@ -1,5 +1,4 @@
1
1
  import { SeparatorAsChildProps, SeparatorNativeProps } from "./separator.types.js";
2
-
3
2
  //#region src/components/separator/separator.d.ts
4
3
  declare function Separator(props: SeparatorNativeProps): JSX.Element;
5
4
  declare function Separator(props: SeparatorAsChildProps): JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { mergeProps } from "../_internal/merge-props.js";
2
+ import { intrinsicElement } from "../_internal/jsx.js";
2
3
  import { jsx } from "@askrjs/askr/jsx-runtime";
3
4
  import { Slot } from "@askrjs/askr/foundations";
4
5
  //#region src/components/separator/separator.tsx
@@ -16,10 +17,7 @@ function Separator(props) {
16
17
  ...finalProps,
17
18
  children
18
19
  });
19
- return /* @__PURE__ */ jsx("div", {
20
- ...finalProps,
21
- children
22
- });
20
+ return intrinsicElement("div", finalProps, children);
23
21
  }
24
22
  //#endregion
25
23
  export { Separator };
@@ -1 +1 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport type { SeparatorAsChildProps, SeparatorNativeProps } from \"./separator.types\";\n\nexport function Separator(props: SeparatorNativeProps): JSX.Element;\nexport function Separator(props: SeparatorAsChildProps): JSX.Element;\nexport function Separator(props: SeparatorNativeProps | SeparatorAsChildProps) {\n const { asChild, children, decorative = false, orientation = \"horizontal\", ref, ...rest } = props;\n\n const finalProps = mergeProps(rest, {\n ref,\n \"data-slot\": \"separator\",\n \"data-orientation\": orientation,\n role: decorative ? \"presentation\" : \"separator\",\n \"aria-orientation\": decorative ? undefined : orientation,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children} />;\n }\n\n return <div {...finalProps}>{children}</div>;\n}\n"],"mappings":";;;;AAMA,SAAgB,UAAU,OAAqD;CAC7E,MAAM,EAAE,SAAS,UAAU,aAAa,OAAO,cAAc,cAAc,KAAK,GAAG,SAAS;CAE5F,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,aAAa;EACb,oBAAoB;EACpB,MAAM,aAAa,iBAAiB;EACpC,oBAAoB,aAAa,KAAA,IAAY;CAC/C,CAAC;CAED,IAAI,SACF,OAAO,oBAAC,MAAD;EAAM,SAAA;EAAQ,GAAI;EAAsB;CAAW,CAAA;CAG5D,OAAO,oBAAC,OAAD;EAAK,GAAI;EAAa;CAAc,CAAA;AAC7C"}
1
+ {"version":3,"file":"separator.js","names":[],"sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport type { SeparatorAsChildProps, SeparatorNativeProps } from \"./separator.types\";\n\nexport function Separator(props: SeparatorNativeProps): JSX.Element;\nexport function Separator(props: SeparatorAsChildProps): JSX.Element;\nexport function Separator(props: SeparatorNativeProps | SeparatorAsChildProps) {\n const { asChild, children, decorative = false, orientation = \"horizontal\", ref, ...rest } = props;\n\n const finalProps = mergeProps(rest, {\n ref,\n \"data-slot\": \"separator\",\n \"data-orientation\": orientation,\n role: decorative ? \"presentation\" : \"separator\",\n \"aria-orientation\": decorative ? undefined : orientation,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children} />;\n }\n\n return intrinsicElement(\"div\", finalProps, children);\n}\n"],"mappings":";;;;;AAOA,SAAgB,UAAU,OAAqD;CAC7E,MAAM,EAAE,SAAS,UAAU,aAAa,OAAO,cAAc,cAAc,KAAK,GAAG,SAAS;CAE5F,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,aAAa;EACb,oBAAoB;EACpB,MAAM,aAAa,iBAAiB;EACpC,oBAAoB,aAAa,KAAA,IAAY;CAC/C,CAAC;CAED,IAAI,SACF,OAAO,oBAAC,MAAD;EAAM,SAAA;EAAQ,GAAI;EAAsB;CAAW,CAAA;CAG5D,OAAO,iBAAiB,OAAO,YAAY,QAAQ;AACrD"}
@@ -1,6 +1,5 @@
1
1
  import { JSXElement } from "@askrjs/askr/foundations";
2
2
  import { Ref } from "@askrjs/askr/foundations/utilities";
3
-
4
3
  //#region src/components/separator/separator.types.d.ts
5
4
  type SeparatorOwnProps = {
6
5
  decorative?: boolean;
@@ -1,2 +1,3 @@
1
1
  import { SidebarButtonProps, SidebarCollapsible, SidebarPartProps, SidebarProps, SidebarSide, SidebarTooltipSide, SidebarVariant } from "./sidebar.types.js";
2
- import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarRail, SidebarTrigger } from "./sidebar.js";
2
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarRail, SidebarScope, SidebarTrigger } from "./sidebar.js";
3
+ export { Sidebar, type SidebarButtonProps, type SidebarCollapsible, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, type SidebarPartProps, type SidebarProps, SidebarRail, SidebarScope, type SidebarSide, type SidebarTooltipSide, SidebarTrigger, type SidebarVariant };
@@ -1,8 +1,7 @@
1
1
  import { SidebarButtonProps, SidebarPartProps, SidebarProps } from "./sidebar.types.js";
2
-
3
2
  //#region src/components/sidebar/sidebar.d.ts
4
3
  declare function Sidebar(props: SidebarProps): JSX.Element;
5
- declare function SidebarProvider(props: SidebarPartProps): JSX.Element;
4
+ declare function SidebarScope(props: SidebarPartProps): JSX.Element;
6
5
  declare function SidebarInset(props: SidebarPartProps): JSX.Element;
7
6
  declare function SidebarContent(props: SidebarPartProps): JSX.Element;
8
7
  declare function SidebarHeader(props: SidebarPartProps): JSX.Element;
@@ -18,5 +17,5 @@ declare function SidebarMenuBadge(props: SidebarPartProps): JSX.Element;
18
17
  declare function SidebarRail(props: SidebarPartProps): JSX.Element;
19
18
  declare function SidebarTrigger(props: SidebarButtonProps): JSX.Element;
20
19
  //#endregion
21
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarRail, SidebarTrigger };
20
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarRail, SidebarScope, SidebarTrigger };
22
21
  //# sourceMappingURL=sidebar.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { classes } from "../_internal/classes.js";
2
2
  import { mergeProps } from "../_internal/merge-props.js";
3
+ import { intrinsicElement } from "../_internal/jsx.js";
3
4
  import { Block } from "../block/block.js";
4
5
  import { jsx } from "@askrjs/askr/jsx-runtime";
5
6
  import { Slot } from "@askrjs/askr/foundations";
@@ -12,7 +13,6 @@ function sidebarTooltipProps(tooltip, tooltipSide) {
12
13
  }
13
14
  function sidebarPart(props, slot, element = "div") {
14
15
  const { as, asChild, children, class: className, ...rest } = props;
15
- const Element = as ?? element;
16
16
  const finalProps = mergeProps(rest, {
17
17
  class: className,
18
18
  "data-slot": slot
@@ -22,10 +22,7 @@ function sidebarPart(props, slot, element = "div") {
22
22
  ...finalProps,
23
23
  children
24
24
  });
25
- return /* @__PURE__ */ jsx(Element, {
26
- ...finalProps,
27
- children
28
- });
25
+ return intrinsicElement(String(as ?? element), finalProps, children);
29
26
  }
30
27
  function Sidebar(props) {
31
28
  const { children, collapsible = "offcanvas", side = "left", variant = "sidebar", width = "sidebar", shrink = false, ...rest } = props;
@@ -45,8 +42,8 @@ function Sidebar(props) {
45
42
  children
46
43
  });
47
44
  }
48
- function SidebarProvider(props) {
49
- return sidebarPart(props, "sidebar-provider");
45
+ function SidebarScope(props) {
46
+ return sidebarPart(props, "sidebar-scope");
50
47
  }
51
48
  function SidebarInset(props) {
52
49
  return sidebarPart(props, "sidebar-inset", "main");
@@ -127,6 +124,6 @@ function SidebarTrigger(props) {
127
124
  });
128
125
  }
129
126
  //#endregion
130
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarRail, SidebarTrigger };
127
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarRail, SidebarScope, SidebarTrigger };
131
128
 
132
129
  //# sourceMappingURL=sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport type {\n SidebarButtonProps,\n SidebarPartProps,\n SidebarProps,\n SidebarTooltipSide,\n} from \"./sidebar.types\";\n\nfunction sidebarTooltipProps(\n tooltip: string | undefined,\n tooltipSide: SidebarTooltipSide | undefined,\n): Record<string, string | undefined> {\n return {\n \"data-tooltip\": tooltip,\n \"data-tooltip-side\": tooltip ? tooltipSide : undefined,\n };\n}\n\nfunction sidebarPart(\n props: SidebarPartProps,\n slot: string,\n element: keyof JSX.IntrinsicElements = \"div\",\n): JSX.Element {\n const { as, asChild, children, class: className, ...rest } = props;\n const Element = (as ?? element) as \"div\";\n const finalProps = mergeProps(rest, {\n class: className,\n \"data-slot\": slot,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return <Element {...finalProps}>{children}</Element>;\n}\n\nexport function Sidebar(props: SidebarProps): JSX.Element {\n const {\n children,\n collapsible = \"offcanvas\",\n side = \"left\",\n variant = \"sidebar\",\n width = \"sidebar\",\n shrink = false,\n ...rest\n } = props;\n\n return (\n <Block\n as=\"aside\"\n width={width}\n shrink={shrink}\n minHeight=\"screen\"\n padding=\"md\"\n gap=\"lg\"\n borderRight={true}\n {...rest}\n data-collapsible={collapsible}\n data-side={side}\n data-slot=\"sidebar\"\n data-variant={variant}\n >\n {children}\n </Block>\n );\n}\n\nexport function SidebarProvider(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-provider\");\n}\n\nexport function SidebarInset(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-inset\", \"main\");\n}\n\nexport function SidebarContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-content\");\n}\n\nexport function SidebarHeader(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-header\");\n}\n\nexport function SidebarFooter(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-footer\");\n}\n\nexport function SidebarGroup(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group\");\n}\n\nexport function SidebarGroupLabel(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-label\");\n}\n\nexport function SidebarGroupContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-content\");\n}\n\nexport function SidebarMenu(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu\", \"ul\");\n}\n\nexport function SidebarMenuItem(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-item\", \"li\");\n}\n\nexport function SidebarMenuButton(props: SidebarButtonProps): JSX.Element {\n const {\n active,\n asChild,\n children,\n class: className,\n size,\n tooltip,\n tooltipSide,\n type = \"button\",\n variant,\n ...rest\n } = props;\n const finalProps = mergeProps(rest, {\n class: classes(className),\n \"data-active\": active ? \"true\" : undefined,\n \"data-size\": size && size !== \"default\" ? size : undefined,\n \"data-slot\": \"sidebar-menu-button\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n \"data-variant\": variant && variant !== \"default\" ? variant : undefined,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return (\n <button type={type} {...finalProps}>\n {children}\n </button>\n );\n}\n\nexport function SidebarMenuAction(props: SidebarButtonProps): JSX.Element {\n const { children, class: className, tooltip, tooltipSide, type = \"button\", ...rest } = props;\n return (\n <button\n type={type}\n {...mergeProps(rest, {\n class: classes(className),\n \"data-slot\": \"sidebar-menu-action\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n })}\n >\n {children}\n </button>\n );\n}\n\nexport function SidebarMenuBadge(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-badge\", \"span\");\n}\n\nexport function SidebarRail(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-rail\", \"button\");\n}\n\nexport function SidebarTrigger(props: SidebarButtonProps): JSX.Element {\n const { children, class: className, tooltip, tooltipSide, type = \"button\", ...rest } = props;\n return (\n <button\n type={type}\n {...mergeProps(rest, {\n class: classes(\"btn btn-ghost btn-icon\", className),\n \"data-slot\": \"sidebar-trigger\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n })}\n >\n {children}\n </button>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport type {\n SidebarButtonProps,\n SidebarPartProps,\n SidebarProps,\n SidebarTooltipSide,\n} from \"./sidebar.types\";\n\nfunction sidebarTooltipProps(\n tooltip: string | undefined,\n tooltipSide: SidebarTooltipSide | undefined,\n): Record<string, string | undefined> {\n return {\n \"data-tooltip\": tooltip,\n \"data-tooltip-side\": tooltip ? tooltipSide : undefined,\n };\n}\n\nfunction sidebarPart(\n props: SidebarPartProps,\n slot: string,\n element: keyof JSX.IntrinsicElements = \"div\",\n): JSX.Element {\n const { as, asChild, children, class: className, ...rest } = props;\n const finalProps = mergeProps(rest, {\n class: className,\n \"data-slot\": slot,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return intrinsicElement(String(as ?? element), finalProps, children);\n}\n\nexport function Sidebar(props: SidebarProps): JSX.Element {\n const {\n children,\n collapsible = \"offcanvas\",\n side = \"left\",\n variant = \"sidebar\",\n width = \"sidebar\",\n shrink = false,\n ...rest\n } = props;\n\n return (\n <Block\n as=\"aside\"\n width={width}\n shrink={shrink}\n minHeight=\"screen\"\n padding=\"md\"\n gap=\"lg\"\n borderRight={true}\n {...rest}\n data-collapsible={collapsible}\n data-side={side}\n data-slot=\"sidebar\"\n data-variant={variant}\n >\n {children}\n </Block>\n );\n}\n\nexport function SidebarScope(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-scope\");\n}\n\nexport function SidebarInset(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-inset\", \"main\");\n}\n\nexport function SidebarContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-content\");\n}\n\nexport function SidebarHeader(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-header\");\n}\n\nexport function SidebarFooter(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-footer\");\n}\n\nexport function SidebarGroup(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group\");\n}\n\nexport function SidebarGroupLabel(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-label\");\n}\n\nexport function SidebarGroupContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-content\");\n}\n\nexport function SidebarMenu(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu\", \"ul\");\n}\n\nexport function SidebarMenuItem(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-item\", \"li\");\n}\n\nexport function SidebarMenuButton(props: SidebarButtonProps): JSX.Element {\n const {\n active,\n asChild,\n children,\n class: className,\n size,\n tooltip,\n tooltipSide,\n type = \"button\",\n variant,\n ...rest\n } = props;\n const finalProps = mergeProps(rest, {\n class: classes(className),\n \"data-active\": active ? \"true\" : undefined,\n \"data-size\": size && size !== \"default\" ? size : undefined,\n \"data-slot\": \"sidebar-menu-button\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n \"data-variant\": variant && variant !== \"default\" ? variant : undefined,\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n }\n\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\n {children}\n </button>\n );\n}\n\nexport function SidebarMenuAction(props: SidebarButtonProps): JSX.Element {\n const { children, class: className, tooltip, tooltipSide, type = \"button\", ...rest } = props;\n return (\n <button\n type={type as \"button\" | \"submit\" | \"reset\" | undefined}\n {...mergeProps(rest, {\n class: classes(className),\n \"data-slot\": \"sidebar-menu-action\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n })}\n >\n {children}\n </button>\n );\n}\n\nexport function SidebarMenuBadge(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-badge\", \"span\");\n}\n\nexport function SidebarRail(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-rail\", \"button\");\n}\n\nexport function SidebarTrigger(props: SidebarButtonProps): JSX.Element {\n const { children, class: className, tooltip, tooltipSide, type = \"button\", ...rest } = props;\n return (\n <button\n type={type as \"button\" | \"submit\" | \"reset\" | undefined}\n {...mergeProps(rest, {\n class: classes(\"btn btn-ghost btn-icon\", className),\n \"data-slot\": \"sidebar-trigger\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n })}\n >\n {children}\n </button>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { BlockElementProps } from "../block/block.types.js";
2
+ import "../block/index.js";
2
3
  //#region src/components/sidebar/sidebar.types.d.ts
3
4
  type SidebarCollapsible = "offcanvas" | "icon" | "none";
4
5
  type SidebarSide = "left" | "right";
@@ -1,2 +1,3 @@
1
1
  import { SkeletonAsChildProps, SkeletonOwnProps, SkeletonProps } from "./skeleton.types.js";
2
- import { Skeleton } from "./skeleton.js";
2
+ import { Skeleton } from "./skeleton.js";
3
+ export { Skeleton, type SkeletonAsChildProps, type SkeletonOwnProps, type SkeletonProps };
@@ -1,5 +1,4 @@
1
1
  import { SkeletonAsChildProps, SkeletonProps } from "./skeleton.types.js";
2
-
3
2
  //#region src/components/skeleton/skeleton.d.ts
4
3
  declare function Skeleton(props: SkeletonProps): JSX.Element;
5
4
  declare function Skeleton(props: SkeletonAsChildProps): JSX.Element;
@@ -2,6 +2,7 @@ import { classes } from "../_internal/classes.js";
2
2
  import { mergeProps } from "../_internal/merge-props.js";
3
3
  import { styleDeclarationsToClass } from "../_internal/style.js";
4
4
  import { mergeLayoutStyles } from "../_internal/block-layout.js";
5
+ import { intrinsicElement } from "../_internal/jsx.js";
5
6
  import { jsx } from "@askrjs/askr/jsx-runtime";
6
7
  import { Slot } from "@askrjs/askr/foundations";
7
8
  //#region src/components/skeleton/skeleton.tsx
@@ -11,12 +12,14 @@ function resolveSkeletonDimension(value) {
11
12
  }
12
13
  function Skeleton(props) {
13
14
  const { asChild, children, class: classProp, className, height, ref, style, width, ...rest } = props;
15
+ const dimensions = {};
16
+ const blockSize = resolveSkeletonDimension(height);
17
+ const inlineSize = resolveSkeletonDimension(width);
18
+ if (blockSize !== void 0) dimensions.blockSize = blockSize;
19
+ if (inlineSize !== void 0) dimensions.inlineSize = inlineSize;
14
20
  const finalProps = mergeProps(rest, {
15
21
  ref,
16
- class: classes(classProp, className, styleDeclarationsToClass(mergeLayoutStyles({
17
- blockSize: resolveSkeletonDimension(height),
18
- inlineSize: resolveSkeletonDimension(width)
19
- }, style))),
22
+ class: classes(classProp, className, styleDeclarationsToClass(mergeLayoutStyles(dimensions, style))),
20
23
  "data-slot": "skeleton",
21
24
  "data-skeleton": "true",
22
25
  "aria-hidden": "true"
@@ -26,10 +29,7 @@ function Skeleton(props) {
26
29
  ...finalProps,
27
30
  children
28
31
  });
29
- return /* @__PURE__ */ jsx("div", {
30
- ...finalProps,
31
- children
32
- });
32
+ return intrinsicElement("div", finalProps, children);
33
33
  }
34
34
  //#endregion
35
35
  export { Skeleton };
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","names":[],"sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { mergeLayoutStyles } from \"../_internal/block-layout\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { styleDeclarationsToClass } from \"../_internal/style\";\nimport type { SkeletonAsChildProps, SkeletonProps } from \"./skeleton.types\";\n\nfunction resolveSkeletonDimension(value: string | number | undefined): string | undefined {\n if (typeof value === \"number\") return `${value}px`;\n return value;\n}\n\nexport function Skeleton(props: SkeletonProps): JSX.Element;\nexport function Skeleton(props: SkeletonAsChildProps): JSX.Element;\nexport function Skeleton(props: SkeletonProps | SkeletonAsChildProps) {\n const {\n asChild,\n children,\n class: classProp,\n className,\n height,\n ref,\n style,\n width,\n ...rest\n } = props as (SkeletonProps | SkeletonAsChildProps) & {\n class?: unknown;\n className?: unknown;\n style?: unknown;\n };\n const layoutClass = styleDeclarationsToClass(\n mergeLayoutStyles(\n {\n blockSize: resolveSkeletonDimension(height),\n inlineSize: resolveSkeletonDimension(width),\n },\n style,\n ),\n );\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(classProp, className, layoutClass),\n \"data-slot\": \"skeleton\",\n \"data-skeleton\": \"true\",\n \"aria-hidden\": \"true\",\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children} />;\n }\n\n return <div {...finalProps}>{children}</div>;\n}\n"],"mappings":";;;;;;;AAOA,SAAS,yBAAyB,OAAwD;CACxF,IAAI,OAAO,UAAU,UAAU,OAAO,GAAG,MAAM;CAC/C,OAAO;AACT;AAIA,SAAgB,SAAS,OAA6C;CACpE,MAAM,EACJ,SACA,UACA,OAAO,WACP,WACA,QACA,KACA,OACA,OACA,GAAG,SACD;CAcJ,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,WAAW,WAXR,yBAClB,kBACE;GACE,WAAW,yBAAyB,MAAM;GAC1C,YAAY,yBAAyB,KAAK;EAC5C,GACA,KACF,CAI+C,CAAC;EAChD,aAAa;EACb,iBAAiB;EACjB,eAAe;CACjB,CAAC;CAED,IAAI,SACF,OAAO,oBAAC,MAAD;EAAM,SAAA;EAAQ,GAAI;EAAsB;CAAW,CAAA;CAG5D,OAAO,oBAAC,OAAD;EAAK,GAAI;EAAa;CAAc,CAAA;AAC7C"}
1
+ {"version":3,"file":"skeleton.js","names":[],"sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import { Slot } from \"@askrjs/askr/foundations\";\nimport { mergeLayoutStyles } from \"../_internal/block-layout\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport { styleDeclarationsToClass } from \"../_internal/style\";\nimport type { SkeletonAsChildProps, SkeletonProps } from \"./skeleton.types\";\n\nfunction resolveSkeletonDimension(value: string | number | undefined): string | undefined {\n if (typeof value === \"number\") return `${value}px`;\n return value;\n}\n\nexport function Skeleton(props: SkeletonProps): JSX.Element;\nexport function Skeleton(props: SkeletonAsChildProps): JSX.Element;\nexport function Skeleton(props: SkeletonProps | SkeletonAsChildProps) {\n const {\n asChild,\n children,\n class: classProp,\n className,\n height,\n ref,\n style,\n width,\n ...rest\n } = props as (SkeletonProps | SkeletonAsChildProps) & {\n class?: unknown;\n className?: unknown;\n style?: unknown;\n };\n const dimensions: Record<string, string | number> = {};\n const blockSize = resolveSkeletonDimension(height);\n const inlineSize = resolveSkeletonDimension(width);\n if (blockSize !== undefined) dimensions.blockSize = blockSize;\n if (inlineSize !== undefined) dimensions.inlineSize = inlineSize;\n const layoutClass = styleDeclarationsToClass(mergeLayoutStyles(dimensions, style));\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(classProp, className, layoutClass),\n \"data-slot\": \"skeleton\",\n \"data-skeleton\": \"true\",\n \"aria-hidden\": \"true\",\n });\n\n if (asChild) {\n return <Slot asChild {...finalProps} children={children} />;\n }\n\n return intrinsicElement(\"div\", finalProps, children);\n}\n"],"mappings":";;;;;;;;AAQA,SAAS,yBAAyB,OAAwD;CACxF,IAAI,OAAO,UAAU,UAAU,OAAO,GAAG,MAAM;CAC/C,OAAO;AACT;AAIA,SAAgB,SAAS,OAA6C;CACpE,MAAM,EACJ,SACA,UACA,OAAO,WACP,WACA,QACA,KACA,OACA,OACA,GAAG,SACD;CAKJ,MAAM,aAA8C,CAAC;CACrD,MAAM,YAAY,yBAAyB,MAAM;CACjD,MAAM,aAAa,yBAAyB,KAAK;CACjD,IAAI,cAAc,KAAA,GAAW,WAAW,YAAY;CACpD,IAAI,eAAe,KAAA,GAAW,WAAW,aAAa;CAEtD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,WAAW,WAHR,yBAAyB,kBAAkB,YAAY,KAAK,CAG/B,CAAC;EAChD,aAAa;EACb,iBAAiB;EACjB,eAAe;CACjB,CAAC;CAED,IAAI,SACF,OAAO,oBAAC,MAAD;EAAM,SAAA;EAAQ,GAAI;EAAsB;CAAW,CAAA;CAG5D,OAAO,iBAAiB,OAAO,YAAY,QAAQ;AACrD"}
@@ -1,6 +1,5 @@
1
1
  import { JSXElement } from "@askrjs/askr/foundations";
2
2
  import { Ref } from "@askrjs/askr/foundations/utilities";
3
-
4
3
  //#region src/components/skeleton/skeleton.types.d.ts
5
4
  type SkeletonOwnProps = {
6
5
  children?: unknown;
@@ -1,2 +1,3 @@
1
1
  import { SpinnerOwnProps, SpinnerProps, SpinnerSize } from "./spinner.types.js";
2
- import { Spinner } from "./spinner.js";
2
+ import { Spinner } from "./spinner.js";
3
+ export { Spinner, type SpinnerOwnProps, type SpinnerProps, type SpinnerSize };
@@ -1,5 +1,4 @@
1
1
  import { SpinnerProps } from "./spinner.types.js";
2
-
3
2
  //#region src/components/spinner/spinner.d.ts
4
3
  declare function Spinner(props: SpinnerProps): JSX.Element;
5
4
  //#endregion
@@ -1,5 +1,4 @@
1
1
  import { ProgressCircleProps } from "@askrjs/ui";
2
-
3
2
  //#region src/components/spinner/spinner.types.d.ts
4
3
  type SpinnerSize = "sm" | "md" | "lg";
5
4
  type SpinnerOwnProps = Omit<ProgressCircleProps, "value" | "getValueLabel"> & {
@@ -1,2 +1,3 @@
1
1
  import { StatDescriptionProps, StatLabelProps, StatProps, StatValueProps } from "./stat.types.js";
2
- import { Stat, StatDescription, StatLabel, StatValue } from "./stat.js";
2
+ import { Stat, StatDescription, StatLabel, StatValue } from "./stat.js";
3
+ export { Stat, StatDescription, type StatDescriptionProps, StatLabel, type StatLabelProps, type StatProps, StatValue, type StatValueProps };
@@ -1,5 +1,4 @@
1
1
  import { StatDescriptionProps, StatLabelProps, StatProps, StatValueProps } from "./stat.types.js";
2
-
3
2
  //#region src/components/stat/stat.d.ts
4
3
  declare function Stat(props: StatProps): JSX.Element;
5
4
  declare function StatLabel(props: StatLabelProps): JSX.Element;
@@ -1,5 +1,4 @@
1
1
  import { Ref } from "@askrjs/askr/foundations/utilities";
2
-
3
2
  //#region src/components/stat/stat.types.d.ts
4
3
  type DivProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref">;
5
4
  type ParagraphProps = Omit<JSX.IntrinsicElements["p"], "children" | "ref">;
@@ -1,2 +1,3 @@
1
1
  import { TextElement, TextFont, TextNumeric, TextProps, TextSize, TextTone, TextWeight, TextWrap } from "./text.types.js";
2
- import { Text } from "./text.js";
2
+ import { Text } from "./text.js";
3
+ export { Text, type TextElement, type TextFont, type TextNumeric, type TextProps, type TextSize, type TextTone, type TextWeight, type TextWrap };
@@ -1,5 +1,4 @@
1
1
  import { TextElement, TextProps } from "./text.types.js";
2
-
3
2
  //#region src/components/text/text.d.ts
4
3
  declare function Text<TElement extends TextElement = "p">(props: TextProps<TElement>): JSX.Element;
5
4
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { classes } from "../_internal/classes.js";
2
2
  import { mergeProps } from "../_internal/merge-props.js";
3
- import { jsx } from "@askrjs/askr/jsx-runtime";
3
+ import { intrinsicElement } from "../_internal/jsx.js";
4
4
  //#region src/components/text/text.tsx
5
5
  const DEFAULT_ELEMENT = "p";
6
6
  function Text(props) {
@@ -17,10 +17,7 @@ function Text(props) {
17
17
  "data-wrap": wrap,
18
18
  "data-truncate": truncate ? "true" : void 0
19
19
  });
20
- return /* @__PURE__ */ jsx(as ?? DEFAULT_ELEMENT, {
21
- ...finalProps,
22
- children
23
- });
20
+ return intrinsicElement(as ?? DEFAULT_ELEMENT, finalProps, children);
24
21
  }
25
22
  //#endregion
26
23
  export { Text };