@askrjs/themes 0.0.25 → 0.0.28

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 (189) hide show
  1. package/dist/components/_internal/style.js +2 -1
  2. package/dist/components/_internal/style.js.map +1 -1
  3. package/dist/components/alert/alert.d.ts +5 -0
  4. package/dist/components/alert/alert.js +5 -0
  5. package/dist/components/alert/alert.js.map +1 -1
  6. package/dist/components/alert/alert.types.d.ts +3 -0
  7. package/dist/components/aside/aside.d.ts +1 -0
  8. package/dist/components/aside/aside.js +1 -0
  9. package/dist/components/aside/aside.js.map +1 -1
  10. package/dist/components/aside/aside.types.d.ts +1 -0
  11. package/dist/components/aspect-ratio/aspect-ratio.d.ts +5 -0
  12. package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -1
  13. package/dist/components/aspect-ratio/aspect-ratio.types.d.ts +3 -0
  14. package/dist/components/badge/badge.d.ts +1 -0
  15. package/dist/components/badge/badge.js.map +1 -1
  16. package/dist/components/badge/badge.types.d.ts +4 -0
  17. package/dist/components/block/block.d.ts +6 -0
  18. package/dist/components/block/block.js.map +1 -1
  19. package/dist/components/block/block.types.d.ts +8 -0
  20. package/dist/components/brand/brand.d.ts +3 -0
  21. package/dist/components/brand/brand.js +3 -0
  22. package/dist/components/brand/brand.js.map +1 -1
  23. package/dist/components/brand/brand.types.d.ts +6 -0
  24. package/dist/components/button-group/button-group.d.ts +1 -0
  25. package/dist/components/button-group/button-group.js +1 -0
  26. package/dist/components/button-group/button-group.js.map +1 -1
  27. package/dist/components/button-group/button-group.types.d.ts +2 -0
  28. package/dist/components/card/card.d.ts +7 -0
  29. package/dist/components/card/card.js +7 -0
  30. package/dist/components/card/card.js.map +1 -1
  31. package/dist/components/card/card.types.d.ts +9 -0
  32. package/dist/components/catalog.d.ts +122 -0
  33. package/dist/components/catalog.js +118 -0
  34. package/dist/components/catalog.js.map +1 -1
  35. package/dist/components/close/close.d.ts +1 -0
  36. package/dist/components/close/close.js.map +1 -1
  37. package/dist/components/close/close.types.d.ts +2 -0
  38. package/dist/components/command-palette/command-palette.d.ts +14 -0
  39. package/dist/components/command-palette/command-palette.js +13 -0
  40. package/dist/components/command-palette/command-palette.js.map +1 -1
  41. package/dist/components/command-palette/command-palette.types.d.ts +6 -0
  42. package/dist/components/container/container.d.ts +1 -0
  43. package/dist/components/container/container.js +1 -0
  44. package/dist/components/container/container.js.map +1 -1
  45. package/dist/components/container/container.types.d.ts +1 -0
  46. package/dist/components/empty-state/empty-state.d.ts +1 -0
  47. package/dist/components/empty-state/empty-state.js +1 -0
  48. package/dist/components/empty-state/empty-state.js.map +1 -1
  49. package/dist/components/empty-state/empty-state.types.d.ts +2 -0
  50. package/dist/components/field/field.d.ts +3 -0
  51. package/dist/components/field/field.js +3 -0
  52. package/dist/components/field/field.js.map +1 -1
  53. package/dist/components/field/field.types.d.ts +3 -0
  54. package/dist/components/footer/footer.d.ts +7 -0
  55. package/dist/components/footer/footer.js +7 -0
  56. package/dist/components/footer/footer.js.map +1 -1
  57. package/dist/components/footer/footer.types.d.ts +7 -0
  58. package/dist/components/grid/grid.d.ts +1 -0
  59. package/dist/components/grid/grid.js +1 -0
  60. package/dist/components/grid/grid.js.map +1 -1
  61. package/dist/components/grid/grid.types.d.ts +4 -0
  62. package/dist/components/header/header.d.ts +1 -0
  63. package/dist/components/header/header.js +1 -0
  64. package/dist/components/header/header.js.map +1 -1
  65. package/dist/components/header/header.types.d.ts +1 -0
  66. package/dist/components/input-group/input-group.d.ts +2 -0
  67. package/dist/components/input-group/input-group.js +1 -0
  68. package/dist/components/input-group/input-group.js.map +1 -1
  69. package/dist/components/input-group/input-group.types.d.ts +4 -0
  70. package/dist/components/main/main.d.ts +1 -0
  71. package/dist/components/main/main.js +1 -0
  72. package/dist/components/main/main.js.map +1 -1
  73. package/dist/components/main/main.types.d.ts +1 -0
  74. package/dist/components/nav/nav.d.ts +6 -0
  75. package/dist/components/nav/nav.js +3 -0
  76. package/dist/components/nav/nav.js.map +1 -1
  77. package/dist/components/nav/nav.types.d.ts +14 -0
  78. package/dist/components/navbar/navbar.d.ts +8 -0
  79. package/dist/components/navbar/navbar.js +8 -0
  80. package/dist/components/navbar/navbar.js.map +1 -1
  81. package/dist/components/navbar/navbar.types.d.ts +5 -0
  82. package/dist/components/overlays/dropdown-content.d.ts +5 -0
  83. package/dist/components/overlays/dropdown-content.js.map +1 -1
  84. package/dist/components/page/page.d.ts +1 -0
  85. package/dist/components/page/page.js +1 -0
  86. package/dist/components/page/page.js.map +1 -1
  87. package/dist/components/page/page.types.d.ts +1 -0
  88. package/dist/components/page-header/page-header.d.ts +1 -0
  89. package/dist/components/page-header/page-header.js +1 -0
  90. package/dist/components/page-header/page-header.js.map +1 -1
  91. package/dist/components/page-header/page-header.types.d.ts +1 -0
  92. package/dist/components/section/section.d.ts +1 -0
  93. package/dist/components/section/section.js +1 -0
  94. package/dist/components/section/section.js.map +1 -1
  95. package/dist/components/section/section.types.d.ts +1 -0
  96. package/dist/components/separator/separator.d.ts +5 -0
  97. package/dist/components/separator/separator.js.map +1 -1
  98. package/dist/components/separator/separator.types.d.ts +4 -0
  99. package/dist/components/sidebar/sidebar.d.ts +16 -0
  100. package/dist/components/sidebar/sidebar.js +16 -0
  101. package/dist/components/sidebar/sidebar.js.map +1 -1
  102. package/dist/components/sidebar/sidebar.types.d.ts +8 -0
  103. package/dist/components/skeleton/skeleton.d.ts +1 -0
  104. package/dist/components/skeleton/skeleton.js.map +1 -1
  105. package/dist/components/skeleton/skeleton.types.d.ts +3 -0
  106. package/dist/components/spinner/spinner.d.ts +1 -0
  107. package/dist/components/spinner/spinner.js +1 -0
  108. package/dist/components/spinner/spinner.js.map +1 -1
  109. package/dist/components/spinner/spinner.types.d.ts +3 -0
  110. package/dist/components/stat/stat.d.ts +4 -0
  111. package/dist/components/stat/stat.js +4 -0
  112. package/dist/components/stat/stat.js.map +1 -1
  113. package/dist/components/stat/stat.types.d.ts +4 -0
  114. package/dist/components/text/text.d.ts +1 -0
  115. package/dist/components/text/text.js +1 -0
  116. package/dist/components/text/text.js.map +1 -1
  117. package/dist/components/text/text.types.d.ts +8 -0
  118. package/dist/components/theme/theme.d.ts +25 -0
  119. package/dist/components/theme/theme.js +22 -3
  120. package/dist/components/theme/theme.js.map +1 -1
  121. package/dist/components/toolbar/toolbar.d.ts +1 -0
  122. package/dist/components/toolbar/toolbar.js +1 -0
  123. package/dist/components/toolbar/toolbar.js.map +1 -1
  124. package/dist/components/toolbar/toolbar.types.d.ts +1 -0
  125. package/package.json +1 -1
  126. package/src/components/_internal/style.ts +8 -1
  127. package/src/components/alert/alert.tsx +5 -0
  128. package/src/components/alert/alert.types.ts +3 -0
  129. package/src/components/aside/aside.tsx +1 -0
  130. package/src/components/aside/aside.types.ts +1 -0
  131. package/src/components/aspect-ratio/aspect-ratio.tsx +5 -0
  132. package/src/components/aspect-ratio/aspect-ratio.types.ts +3 -0
  133. package/src/components/badge/badge.tsx +1 -0
  134. package/src/components/badge/badge.types.ts +4 -0
  135. package/src/components/block/block.tsx +6 -0
  136. package/src/components/block/block.types.ts +8 -0
  137. package/src/components/brand/brand.tsx +3 -0
  138. package/src/components/brand/brand.types.ts +6 -0
  139. package/src/components/button-group/button-group.tsx +1 -0
  140. package/src/components/button-group/button-group.types.ts +2 -0
  141. package/src/components/card/card.tsx +7 -0
  142. package/src/components/card/card.types.ts +9 -0
  143. package/src/components/catalog.tsx +122 -0
  144. package/src/components/close/close.tsx +1 -0
  145. package/src/components/close/close.types.ts +2 -0
  146. package/src/components/command-palette/command-palette.tsx +14 -0
  147. package/src/components/command-palette/command-palette.types.ts +6 -0
  148. package/src/components/container/container.tsx +1 -0
  149. package/src/components/container/container.types.ts +1 -0
  150. package/src/components/empty-state/empty-state.tsx +1 -0
  151. package/src/components/empty-state/empty-state.types.ts +2 -0
  152. package/src/components/field/field.tsx +3 -0
  153. package/src/components/field/field.types.ts +3 -0
  154. package/src/components/footer/footer.tsx +7 -0
  155. package/src/components/footer/footer.types.ts +7 -0
  156. package/src/components/grid/grid.tsx +1 -0
  157. package/src/components/grid/grid.types.ts +4 -0
  158. package/src/components/header/header.tsx +1 -0
  159. package/src/components/header/header.types.ts +1 -0
  160. package/src/components/input-group/input-group.tsx +2 -0
  161. package/src/components/input-group/input-group.types.ts +4 -0
  162. package/src/components/main/main.tsx +1 -0
  163. package/src/components/main/main.types.ts +1 -0
  164. package/src/components/nav/nav.tsx +6 -0
  165. package/src/components/nav/nav.types.ts +14 -0
  166. package/src/components/navbar/navbar.tsx +8 -0
  167. package/src/components/navbar/navbar.types.ts +5 -0
  168. package/src/components/overlays/dropdown-content.tsx +5 -0
  169. package/src/components/page/page.tsx +1 -0
  170. package/src/components/page/page.types.ts +1 -0
  171. package/src/components/page-header/page-header.tsx +1 -0
  172. package/src/components/page-header/page-header.types.ts +1 -0
  173. package/src/components/section/section.tsx +1 -0
  174. package/src/components/section/section.types.ts +1 -0
  175. package/src/components/separator/separator.tsx +5 -0
  176. package/src/components/separator/separator.types.ts +4 -0
  177. package/src/components/sidebar/sidebar.tsx +16 -0
  178. package/src/components/sidebar/sidebar.types.ts +8 -0
  179. package/src/components/skeleton/skeleton.tsx +1 -0
  180. package/src/components/skeleton/skeleton.types.ts +3 -0
  181. package/src/components/spinner/spinner.tsx +1 -0
  182. package/src/components/spinner/spinner.types.ts +3 -0
  183. package/src/components/stat/stat.tsx +4 -0
  184. package/src/components/stat/stat.types.ts +4 -0
  185. package/src/components/text/text.tsx +1 -0
  186. package/src/components/text/text.types.ts +8 -0
  187. package/src/components/theme/theme.tsx +35 -2
  188. package/src/components/toolbar/toolbar.tsx +1 -0
  189. package/src/components/toolbar/toolbar.types.ts +1 -0
@@ -1,6 +1,7 @@
1
1
  import { PageProps } from "./page.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/page/page.d.ts
4
+ /** Top-level page wrapper: a growing `<main>` containing a {@link Container} with vertical page padding and content spacing. */
4
5
  declare function Page(props: PageProps): JSX.Element;
5
6
  //#endregion
6
7
  export { Page };
@@ -2,6 +2,7 @@ import { Block } from "../block/block.js";
2
2
  import { Container } from "../container/container.js";
3
3
  import { jsx } from "@askrjs/askr/jsx-runtime";
4
4
  //#region src/components/page/page.tsx
5
+ /** Top-level page wrapper: a growing `<main>` containing a {@link Container} with vertical page padding and content spacing. */
5
6
  function Page(props) {
6
7
  const { children, ...rest } = props;
7
8
  return /* @__PURE__ */ jsx(Block, {
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","names":[],"sources":["../../../src/components/page/page.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport { Container } from \"../container\";\nimport type { PageProps } from \"./page.types\";\n\nexport function Page(props: PageProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <Block as=\"main\" grow {...rest} data-slot=\"page\">\n <Container>\n <Block paddingY=\"xl\" gap=\"lg\">\n {children}\n </Block>\n </Container>\n </Block>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,KAAK,OAA+B;CAClD,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,OAAD;EAAO,IAAG;EAAO,MAAA;EAAK,GAAI;EAAM,aAAU;EACxC,UAAA,oBAAC,WAAD,EAAA,UACE,oBAAC,OAAD;GAAO,UAAS;GAAK,KAAI;GACtB;EACI,CAAA,EACE,CAAA;CACN,CAAA;AAEX"}
1
+ {"version":3,"file":"page.js","names":[],"sources":["../../../src/components/page/page.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport { Container } from \"../container\";\nimport type { PageProps } from \"./page.types\";\n\n/** Top-level page wrapper: a growing `<main>` containing a {@link Container} with vertical page padding and content spacing. */\nexport function Page(props: PageProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <Block as=\"main\" grow {...rest} data-slot=\"page\">\n <Container>\n <Block paddingY=\"xl\" gap=\"lg\">\n {children}\n </Block>\n </Container>\n </Block>\n );\n}\n"],"mappings":";;;;;AAMA,SAAgB,KAAK,OAA+B;CAClD,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,OAAD;EAAO,IAAG;EAAO,MAAA;EAAK,GAAI;EAAM,aAAU;EACxC,UAAA,oBAAC,WAAD,EAAA,UACE,oBAAC,OAAD;GAAO,UAAS;GAAK,KAAI;GACtB;EACI,CAAA,EACE,CAAA;CACN,CAAA;AAEX"}
@@ -1,6 +1,7 @@
1
1
  import { MainProps } from "../main/main.types.js";
2
2
  import "../main/index.js";
3
3
  //#region src/components/page/page.types.d.ts
4
+ /** Props for the {@link Page} component. */
4
5
  type PageProps = MainProps;
5
6
  //#endregion
6
7
  export { PageProps };
@@ -1,6 +1,7 @@
1
1
  import { PageHeaderProps } from "./page-header.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/page-header/page-header.d.ts
4
+ /** Page-level header with a title, optional description, and an actions row that wraps to a new line on small screens. */
4
5
  declare function PageHeader(props: PageHeaderProps): JSX.Element;
5
6
  //#endregion
6
7
  export { PageHeader };
@@ -1,6 +1,7 @@
1
1
  import { Block } from "../block/block.js";
2
2
  import { jsx, jsxs } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/page-header/page-header.tsx
4
+ /** Page-level header with a title, optional description, and an actions row that wraps to a new line on small screens. */
4
5
  function PageHeader(props) {
5
6
  const { title, description, actions, ...rest } = props;
6
7
  return /* @__PURE__ */ jsxs(Block, {
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.js","names":[],"sources":["../../../src/components/page-header/page-header.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport type { PageHeaderProps } from \"./page-header.types\";\n\nexport function PageHeader(props: PageHeaderProps): JSX.Element {\n const { title, description, actions, ...rest } = props;\n\n return (\n <Block\n rowFrom=\"md\"\n align={{ base: \"start\", md: \"center\" }}\n justify=\"between\"\n gap=\"lg\"\n {...rest}\n data-slot=\"page-header\"\n >\n <Block gap=\"xs\" data-slot=\"page-header-copy\">\n <h1 data-slot=\"page-header-title\">{title}</h1>\n {description !== undefined ? (\n <p data-slot=\"page-header-description\">{description}</p>\n ) : null}\n </Block>\n {actions !== undefined ? (\n <Block direction=\"row\" gap=\"sm\" data-slot=\"page-header-actions\">\n {actions}\n </Block>\n ) : null}\n </Block>\n );\n}\n"],"mappings":";;;AAIA,SAAgB,WAAW,OAAqC;CAC9D,MAAM,EAAE,OAAO,aAAa,SAAS,GAAG,SAAS;CAEjD,OACE,qBAAC,OAAD;EACE,SAAQ;EACR,OAAO;GAAE,MAAM;GAAS,IAAI;EAAS;EACrC,SAAQ;EACR,KAAI;EACJ,GAAI;EACJ,aAAU;EANZ,UAAA,CAQE,qBAAC,OAAD;GAAO,KAAI;GAAK,aAAU;GAA1B,UAAA,CACE,oBAAC,MAAD;IAAI,aAAU;IAAqB,UAAA;GAAU,CAAA,GAC5C,gBAAgB,KAAA,IACf,oBAAC,KAAD;IAAG,aAAU;IAA2B,UAAA;GAAe,CAAA,IACrD,IACC;EACN,CAAA,GAAA,YAAY,KAAA,IACX,oBAAC,OAAD;GAAO,WAAU;GAAM,KAAI;GAAK,aAAU;GACvC,UAAA;EACI,CAAA,IACL,IACC;;AAEX"}
1
+ {"version":3,"file":"page-header.js","names":[],"sources":["../../../src/components/page-header/page-header.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport type { PageHeaderProps } from \"./page-header.types\";\n\n/** Page-level header with a title, optional description, and an actions row that wraps to a new line on small screens. */\nexport function PageHeader(props: PageHeaderProps): JSX.Element {\n const { title, description, actions, ...rest } = props;\n\n return (\n <Block\n rowFrom=\"md\"\n align={{ base: \"start\", md: \"center\" }}\n justify=\"between\"\n gap=\"lg\"\n {...rest}\n data-slot=\"page-header\"\n >\n <Block gap=\"xs\" data-slot=\"page-header-copy\">\n <h1 data-slot=\"page-header-title\">{title}</h1>\n {description !== undefined ? (\n <p data-slot=\"page-header-description\">{description}</p>\n ) : null}\n </Block>\n {actions !== undefined ? (\n <Block direction=\"row\" gap=\"sm\" data-slot=\"page-header-actions\">\n {actions}\n </Block>\n ) : null}\n </Block>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,WAAW,OAAqC;CAC9D,MAAM,EAAE,OAAO,aAAa,SAAS,GAAG,SAAS;CAEjD,OACE,qBAAC,OAAD;EACE,SAAQ;EACR,OAAO;GAAE,MAAM;GAAS,IAAI;EAAS;EACrC,SAAQ;EACR,KAAI;EACJ,GAAI;EACJ,aAAU;EANZ,UAAA,CAQE,qBAAC,OAAD;GAAO,KAAI;GAAK,aAAU;GAA1B,UAAA,CACE,oBAAC,MAAD;IAAI,aAAU;IAAqB,UAAA;GAAU,CAAA,GAC5C,gBAAgB,KAAA,IACf,oBAAC,KAAD;IAAG,aAAU;IAA2B,UAAA;GAAe,CAAA,IACrD,IACC;EACN,CAAA,GAAA,YAAY,KAAA,IACX,oBAAC,OAAD;GAAO,WAAU;GAAM,KAAI;GAAK,aAAU;GACvC,UAAA;EACI,CAAA,IACL,IACC;;AAEX"}
@@ -1,6 +1,7 @@
1
1
  import { BlockDivProps } from "../block/block.types.js";
2
2
  import "../block/index.js";
3
3
  //#region src/components/page-header/page-header.types.d.ts
4
+ /** Props for the {@link PageHeader} component. */
4
5
  type PageHeaderProps = BlockDivProps & {
5
6
  title: unknown;
6
7
  description?: unknown;
@@ -1,6 +1,7 @@
1
1
  import { SectionProps } from "./section.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/section/section.d.ts
4
+ /** Renders a `<section>`-element {@link Block} with vertical spacing between children and page padding. */
4
5
  declare function Section(props: SectionProps): JSX.Element;
5
6
  //#endregion
6
7
  export { Section };
@@ -1,6 +1,7 @@
1
1
  import { Block } from "../block/block.js";
2
2
  import { jsx } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/section/section.tsx
4
+ /** Renders a `<section>`-element {@link Block} with vertical spacing between children and page padding. */
4
5
  function Section(props) {
5
6
  const { children, ...rest } = props;
6
7
  return /* @__PURE__ */ jsx(Block, {
@@ -1 +1 @@
1
- {"version":3,"file":"section.js","names":[],"sources":["../../../src/components/section/section.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport type { SectionProps } from \"./section.types\";\n\nexport function Section(props: SectionProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <Block as=\"section\" gap=\"lg\" paddingY=\"xl\" {...rest} data-slot=\"section\">\n {children}\n </Block>\n );\n}\n"],"mappings":";;;AAIA,SAAgB,QAAQ,OAAkC;CACxD,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,OAAD;EAAO,IAAG;EAAU,KAAI;EAAK,UAAS;EAAK,GAAI;EAAM,aAAU;EAC5D;CACI,CAAA;AAEX"}
1
+ {"version":3,"file":"section.js","names":[],"sources":["../../../src/components/section/section.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Block } from \"../block\";\nimport type { SectionProps } from \"./section.types\";\n\n/** Renders a `<section>`-element {@link Block} with vertical spacing between children and page padding. */\nexport function Section(props: SectionProps): JSX.Element {\n const { children, ...rest } = props;\n\n return (\n <Block as=\"section\" gap=\"lg\" paddingY=\"xl\" {...rest} data-slot=\"section\">\n {children}\n </Block>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,QAAQ,OAAkC;CACxD,MAAM,EAAE,UAAU,GAAG,SAAS;CAE9B,OACE,oBAAC,OAAD;EAAO,IAAG;EAAU,KAAI;EAAK,UAAS;EAAK,GAAI;EAAM,aAAU;EAC5D;CACI,CAAA;AAEX"}
@@ -1,6 +1,7 @@
1
1
  import { BlockElementProps } from "../block/block.types.js";
2
2
  import "../block/index.js";
3
3
  //#region src/components/section/section.types.d.ts
4
+ /** Props for the {@link Section} component. */
4
5
  type SectionProps = Omit<BlockElementProps<"section">, "as">;
5
6
  //#endregion
6
7
  export { SectionProps };
@@ -1,6 +1,11 @@
1
1
  import { SeparatorAsChildProps, SeparatorNativeProps } from "./separator.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/separator/separator.d.ts
4
+ /**
5
+ * Visual divider, defaulting to horizontal `role="separator"`; pass
6
+ * `decorative` to drop the semantic role, or `asChild` to merge onto a
7
+ * single child element.
8
+ */
4
9
  declare function Separator(props: SeparatorNativeProps): JSX.Element;
5
10
  declare function Separator(props: SeparatorAsChildProps): JSX.Element;
6
11
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { 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":";;;;;AAQA,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
+ {"version":3,"file":"separator.js","names":[],"sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Slot } from \"@askrjs/askr/foundations\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport type { SeparatorAsChildProps, SeparatorNativeProps } from \"./separator.types\";\n\n/**\n * Visual divider, defaulting to horizontal `role=\"separator\"`; pass\n * `decorative` to drop the semantic role, or `asChild` to merge onto a\n * single child element.\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":";;;;;AAaA,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"}
@@ -2,20 +2,24 @@ import { JSX } from "@askrjs/askr/jsx-runtime";
2
2
  import { JSXElement } from "@askrjs/askr/foundations";
3
3
  import { Ref } from "@askrjs/askr/foundations/utilities";
4
4
  //#region src/components/separator/separator.types.d.ts
5
+ /** Props shared by both {@link Separator} call signatures. */
5
6
  type SeparatorOwnProps = {
6
7
  decorative?: boolean;
7
8
  orientation?: "horizontal" | "vertical";
8
9
  children?: unknown;
9
10
  };
11
+ /** Props for {@link Separator} rendered as its default `<div>` element. */
10
12
  type SeparatorNativeProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> & SeparatorOwnProps & {
11
13
  asChild?: false;
12
14
  ref?: Ref<HTMLDivElement>;
13
15
  };
16
+ /** Props for {@link Separator} rendered with `asChild`, merging its attributes onto a single child element. */
14
17
  type SeparatorAsChildProps = SeparatorOwnProps & {
15
18
  asChild: true;
16
19
  children: JSXElement;
17
20
  ref?: Ref<unknown>;
18
21
  };
22
+ /** Union of all prop shapes accepted by {@link Separator}. */
19
23
  type SeparatorProps = SeparatorNativeProps | SeparatorAsChildProps;
20
24
  //#endregion
21
25
  export { SeparatorAsChildProps, SeparatorNativeProps, SeparatorOwnProps, SeparatorProps };
@@ -1,21 +1,37 @@
1
1
  import { SidebarButtonProps, SidebarPartProps, SidebarProps } from "./sidebar.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/sidebar/sidebar.d.ts
4
+ /** Root `<aside>` sidebar layout with configurable width, side, collapse behavior, and visual variant, exposed as data attributes for CSS. */
4
5
  declare function Sidebar(props: SidebarProps): JSX.Element;
6
+ /** Scoping wrapper that establishes the sidebar's CSS/context boundary. */
5
7
  declare function SidebarScope(props: SidebarPartProps): JSX.Element;
8
+ /** Renders the `<main>` content area beside the {@link Sidebar}. */
6
9
  declare function SidebarInset(props: SidebarPartProps): JSX.Element;
10
+ /** Renders the scrollable content region of a {@link Sidebar}. */
7
11
  declare function SidebarContent(props: SidebarPartProps): JSX.Element;
12
+ /** Renders the header region of a {@link Sidebar}. */
8
13
  declare function SidebarHeader(props: SidebarPartProps): JSX.Element;
14
+ /** Renders the footer region of a {@link Sidebar}. */
9
15
  declare function SidebarFooter(props: SidebarPartProps): JSX.Element;
16
+ /** Groups related {@link SidebarMenu} items together. */
10
17
  declare function SidebarGroup(props: SidebarPartProps): JSX.Element;
18
+ /** Renders the label for a {@link SidebarGroup}. */
11
19
  declare function SidebarGroupLabel(props: SidebarPartProps): JSX.Element;
20
+ /** Renders the content region of a {@link SidebarGroup}. */
12
21
  declare function SidebarGroupContent(props: SidebarPartProps): JSX.Element;
22
+ /** Renders a `<ul>` list of {@link SidebarMenuItem}s. */
13
23
  declare function SidebarMenu(props: SidebarPartProps): JSX.Element;
24
+ /** Renders a single `<li>` entry within a {@link SidebarMenu}. */
14
25
  declare function SidebarMenuItem(props: SidebarPartProps): JSX.Element;
26
+ /** Clickable menu button within a {@link SidebarMenuItem}; supports `active`/`size`/`variant` state and an optional tooltip. */
15
27
  declare function SidebarMenuButton(props: SidebarButtonProps): JSX.Element;
28
+ /** Renders a secondary action button attached to a {@link SidebarMenuItem}, with an optional tooltip. */
16
29
  declare function SidebarMenuAction(props: SidebarButtonProps): JSX.Element;
30
+ /** Renders a status badge attached to a {@link SidebarMenuItem}. */
17
31
  declare function SidebarMenuBadge(props: SidebarPartProps): JSX.Element;
32
+ /** Renders a draggable/clickable rail along the sidebar's edge for resizing or toggling it. */
18
33
  declare function SidebarRail(props: SidebarButtonProps): JSX.Element;
34
+ /** Icon button that toggles the {@link Sidebar}'s open/collapsed state, with an optional tooltip. */
19
35
  declare function SidebarTrigger(props: SidebarButtonProps): JSX.Element;
20
36
  //#endregion
21
37
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarRail, SidebarScope, SidebarTrigger };
@@ -24,6 +24,7 @@ function sidebarPart(props, slot, element = "div") {
24
24
  });
25
25
  return intrinsicElement(String(as ?? element), finalProps, children);
26
26
  }
27
+ /** Root `<aside>` sidebar layout with configurable width, side, collapse behavior, and visual variant, exposed as data attributes for CSS. */
27
28
  function Sidebar(props) {
28
29
  const { children, collapsible = "offcanvas", side = "left", variant = "sidebar", width = "sidebar", shrink = false, ...rest } = props;
29
30
  return /* @__PURE__ */ jsx(Block, {
@@ -42,36 +43,47 @@ function Sidebar(props) {
42
43
  children
43
44
  });
44
45
  }
46
+ /** Scoping wrapper that establishes the sidebar's CSS/context boundary. */
45
47
  function SidebarScope(props) {
46
48
  return sidebarPart(props, "sidebar-scope");
47
49
  }
50
+ /** Renders the `<main>` content area beside the {@link Sidebar}. */
48
51
  function SidebarInset(props) {
49
52
  return sidebarPart(props, "sidebar-inset", "main");
50
53
  }
54
+ /** Renders the scrollable content region of a {@link Sidebar}. */
51
55
  function SidebarContent(props) {
52
56
  return sidebarPart(props, "sidebar-content");
53
57
  }
58
+ /** Renders the header region of a {@link Sidebar}. */
54
59
  function SidebarHeader(props) {
55
60
  return sidebarPart(props, "sidebar-header");
56
61
  }
62
+ /** Renders the footer region of a {@link Sidebar}. */
57
63
  function SidebarFooter(props) {
58
64
  return sidebarPart(props, "sidebar-footer");
59
65
  }
66
+ /** Groups related {@link SidebarMenu} items together. */
60
67
  function SidebarGroup(props) {
61
68
  return sidebarPart(props, "sidebar-group");
62
69
  }
70
+ /** Renders the label for a {@link SidebarGroup}. */
63
71
  function SidebarGroupLabel(props) {
64
72
  return sidebarPart(props, "sidebar-group-label");
65
73
  }
74
+ /** Renders the content region of a {@link SidebarGroup}. */
66
75
  function SidebarGroupContent(props) {
67
76
  return sidebarPart(props, "sidebar-group-content");
68
77
  }
78
+ /** Renders a `<ul>` list of {@link SidebarMenuItem}s. */
69
79
  function SidebarMenu(props) {
70
80
  return sidebarPart(props, "sidebar-menu", "ul");
71
81
  }
82
+ /** Renders a single `<li>` entry within a {@link SidebarMenu}. */
72
83
  function SidebarMenuItem(props) {
73
84
  return sidebarPart(props, "sidebar-menu-item", "li");
74
85
  }
86
+ /** Clickable menu button within a {@link SidebarMenuItem}; supports `active`/`size`/`variant` state and an optional tooltip. */
75
87
  function SidebarMenuButton(props) {
76
88
  const { active, asChild, children, class: className, size, tooltip, tooltipSide, type = "button", variant, ...rest } = props;
77
89
  const finalProps = mergeProps(normalizeAriaProps(rest), {
@@ -93,6 +105,7 @@ function SidebarMenuButton(props) {
93
105
  children
94
106
  });
95
107
  }
108
+ /** Renders a secondary action button attached to a {@link SidebarMenuItem}, with an optional tooltip. */
96
109
  function SidebarMenuAction(props) {
97
110
  const { asChild, children, class: className, tooltip, tooltipSide, type = "button", ...rest } = props;
98
111
  const finalProps = mergeProps(normalizeAriaProps(rest), {
@@ -111,9 +124,11 @@ function SidebarMenuAction(props) {
111
124
  children
112
125
  });
113
126
  }
127
+ /** Renders a status badge attached to a {@link SidebarMenuItem}. */
114
128
  function SidebarMenuBadge(props) {
115
129
  return sidebarPart(props, "sidebar-menu-badge", "span");
116
130
  }
131
+ /** Renders a draggable/clickable rail along the sidebar's edge for resizing or toggling it. */
117
132
  function SidebarRail(props) {
118
133
  const { asChild, children, class: className, type = "button", ...rest } = props;
119
134
  const finalProps = mergeProps(normalizeAriaProps(rest), {
@@ -131,6 +146,7 @@ function SidebarRail(props) {
131
146
  children
132
147
  });
133
148
  }
149
+ /** Icon button that toggles the {@link Sidebar}'s open/collapsed state, with an optional tooltip. */
134
150
  function SidebarTrigger(props) {
135
151
  const { asChild, children, class: className, tooltip, tooltipSide, type = "button", ...rest } = props;
136
152
  const finalProps = mergeProps(normalizeAriaProps(rest), {
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Slot } from \"@askrjs/askr/foundations\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement, normalizeAriaProps } 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(normalizeAriaProps(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(normalizeAriaProps(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 {\n asChild,\n children,\n class: className,\n tooltip,\n tooltipSide,\n type = \"button\",\n ...rest\n } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(className),\n \"data-slot\": \"sidebar-menu-action\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\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: SidebarButtonProps): JSX.Element {\n const { asChild, children, class: className, type = \"button\", ...rest } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(className),\n \"data-slot\": \"sidebar-rail\",\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\n {children}\n </button>\n );\n}\n\nexport function SidebarTrigger(props: SidebarButtonProps): JSX.Element {\n const {\n asChild,\n children,\n class: className,\n tooltip,\n tooltipSide,\n type = \"button\",\n ...rest\n } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(\"btn btn-ghost btn-icon\", className),\n \"data-slot\": \"sidebar-trigger\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\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 type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { Slot } from \"@askrjs/askr/foundations\";\nimport { Block } from \"../block\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement, normalizeAriaProps } 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(normalizeAriaProps(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\n/** Root `<aside>` sidebar layout with configurable width, side, collapse behavior, and visual variant, exposed as data attributes for CSS. */\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\n/** Scoping wrapper that establishes the sidebar's CSS/context boundary. */\nexport function SidebarScope(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-scope\");\n}\n\n/** Renders the `<main>` content area beside the {@link Sidebar}. */\nexport function SidebarInset(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-inset\", \"main\");\n}\n\n/** Renders the scrollable content region of a {@link Sidebar}. */\nexport function SidebarContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-content\");\n}\n\n/** Renders the header region of a {@link Sidebar}. */\nexport function SidebarHeader(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-header\");\n}\n\n/** Renders the footer region of a {@link Sidebar}. */\nexport function SidebarFooter(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-footer\");\n}\n\n/** Groups related {@link SidebarMenu} items together. */\nexport function SidebarGroup(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group\");\n}\n\n/** Renders the label for a {@link SidebarGroup}. */\nexport function SidebarGroupLabel(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-label\");\n}\n\n/** Renders the content region of a {@link SidebarGroup}. */\nexport function SidebarGroupContent(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-group-content\");\n}\n\n/** Renders a `<ul>` list of {@link SidebarMenuItem}s. */\nexport function SidebarMenu(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu\", \"ul\");\n}\n\n/** Renders a single `<li>` entry within a {@link SidebarMenu}. */\nexport function SidebarMenuItem(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-item\", \"li\");\n}\n\n/** Clickable menu button within a {@link SidebarMenuItem}; supports `active`/`size`/`variant` state and an optional tooltip. */\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(normalizeAriaProps(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\n/** Renders a secondary action button attached to a {@link SidebarMenuItem}, with an optional tooltip. */\nexport function SidebarMenuAction(props: SidebarButtonProps): JSX.Element {\n const {\n asChild,\n children,\n class: className,\n tooltip,\n tooltipSide,\n type = \"button\",\n ...rest\n } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(className),\n \"data-slot\": \"sidebar-menu-action\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\n {children}\n </button>\n );\n}\n\n/** Renders a status badge attached to a {@link SidebarMenuItem}. */\nexport function SidebarMenuBadge(props: SidebarPartProps): JSX.Element {\n return sidebarPart(props, \"sidebar-menu-badge\", \"span\");\n}\n\n/** Renders a draggable/clickable rail along the sidebar's edge for resizing or toggling it. */\nexport function SidebarRail(props: SidebarButtonProps): JSX.Element {\n const { asChild, children, class: className, type = \"button\", ...rest } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(className),\n \"data-slot\": \"sidebar-rail\",\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\n {children}\n </button>\n );\n}\n\n/** Icon button that toggles the {@link Sidebar}'s open/collapsed state, with an optional tooltip. */\nexport function SidebarTrigger(props: SidebarButtonProps): JSX.Element {\n const {\n asChild,\n children,\n class: className,\n tooltip,\n tooltipSide,\n type = \"button\",\n ...rest\n } = props;\n const finalProps = mergeProps(normalizeAriaProps(rest), {\n class: classes(\"btn btn-ghost btn-icon\", className),\n \"data-slot\": \"sidebar-trigger\",\n ...sidebarTooltipProps(tooltip, tooltipSide),\n });\n if (asChild) return <Slot asChild {...finalProps} children={children as JSX.Element} />;\n return (\n <button type={type as \"button\" | \"submit\" | \"reset\" | undefined} {...finalProps}>\n {children}\n </button>\n );\n}\n"],"mappings":"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"}
@@ -2,10 +2,15 @@ import { BlockElementProps } from "../block/block.types.js";
2
2
  import "../block/index.js";
3
3
  import { JSX } from "@askrjs/askr/jsx-runtime";
4
4
  //#region src/components/sidebar/sidebar.types.d.ts
5
+ /** How a {@link Sidebar} collapses: fully off-canvas, down to icons only, or not at all. */
5
6
  type SidebarCollapsible = "offcanvas" | "icon" | "none";
7
+ /** Which edge of the viewport a {@link Sidebar} is docked to. */
6
8
  type SidebarSide = "left" | "right";
9
+ /** Side a sidebar button's tooltip is positioned on. */
7
10
  type SidebarTooltipSide = "top" | "bottom" | "left" | "right";
11
+ /** Visual style of a {@link Sidebar}. */
8
12
  type SidebarVariant = "sidebar" | "floating" | "inset";
13
+ /** Props for the {@link Sidebar} component. */
9
14
  type SidebarProps = Omit<BlockElementProps<"aside">, "as" | "width" | "shrink"> & {
10
15
  collapsible?: SidebarCollapsible;
11
16
  side?: SidebarSide;
@@ -13,10 +18,12 @@ type SidebarProps = Omit<BlockElementProps<"aside">, "as" | "width" | "shrink">
13
18
  width?: BlockElementProps<"aside">["width"];
14
19
  shrink?: BlockElementProps<"aside">["shrink"];
15
20
  };
21
+ /** Props shared by the generic {@link Sidebar} structural parts (content, header, footer, group, etc.). */
16
22
  type SidebarPartProps = JSX.IntrinsicElements["div"] & {
17
23
  as?: keyof JSX.IntrinsicElements;
18
24
  asChild?: boolean;
19
25
  };
26
+ /** Props shared by the interactive {@link Sidebar} button parts (menu button, action, trigger). */
20
27
  type SidebarButtonProps = JSX.IntrinsicElements["button"] & {
21
28
  active?: boolean;
22
29
  asChild?: boolean;
@@ -25,6 +32,7 @@ type SidebarButtonProps = JSX.IntrinsicElements["button"] & {
25
32
  tooltipSide?: SidebarTooltipSide;
26
33
  variant?: "default" | "outline";
27
34
  };
35
+ /** Props for the {@link SidebarRail} component. */
28
36
  type SidebarRailProps = SidebarButtonProps;
29
37
  //#endregion
30
38
  export { SidebarButtonProps, SidebarCollapsible, SidebarPartProps, SidebarProps, SidebarRailProps, SidebarSide, SidebarTooltipSide, SidebarVariant };
@@ -1,6 +1,7 @@
1
1
  import { SkeletonAsChildProps, SkeletonProps } from "./skeleton.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/skeleton/skeleton.d.ts
4
+ /** Loading placeholder block with configurable `width`/`height`, hidden from assistive tech via `aria-hidden`, rendered as a `<div>` or merged onto a child via `asChild`. */
4
5
  declare function Skeleton(props: SkeletonProps): JSX.Element;
5
6
  declare function Skeleton(props: SkeletonAsChildProps): JSX.Element;
6
7
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","names":[],"sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { 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":";;;;;;;;AASA,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;CACtD,MAAM,cAAc,yBAAyB,kBAAkB,YAAY,KAAK,CAAC;CACjF,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,WAAW,WAAW,WAAW;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
+ {"version":3,"file":"skeleton.js","names":[],"sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { 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\n/** Loading placeholder block with configurable `width`/`height`, hidden from assistive tech via `aria-hidden`, rendered as a `<div>` or merged onto a child via `asChild`. */\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":";;;;;;;;AASA,SAAS,yBAAyB,OAAwD;CACxF,IAAI,OAAO,UAAU,UAAU,OAAO,GAAG,MAAM;CAC/C,OAAO;AACT;AAKA,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;CACtD,MAAM,cAAc,yBAAyB,kBAAkB,YAAY,KAAK,CAAC;CACjF,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,WAAW,WAAW,WAAW;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"}
@@ -2,15 +2,18 @@ import { JSX } from "@askrjs/askr/jsx-runtime";
2
2
  import { JSXElement } from "@askrjs/askr/foundations";
3
3
  import { Ref } from "@askrjs/askr/foundations/utilities";
4
4
  //#region src/components/skeleton/skeleton.types.d.ts
5
+ /** Props shared by both {@link Skeleton} call signatures. */
5
6
  type SkeletonOwnProps = {
6
7
  children?: unknown;
7
8
  height?: string | number;
8
9
  width?: string | number;
9
10
  };
11
+ /** Props for {@link Skeleton} rendered as its default `<div>` element. */
10
12
  type SkeletonProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> & SkeletonOwnProps & {
11
13
  asChild?: false;
12
14
  ref?: Ref<HTMLDivElement>;
13
15
  };
16
+ /** Props for {@link Skeleton} rendered with `asChild`, merging its attributes onto a single child element. */
14
17
  type SkeletonAsChildProps = SkeletonOwnProps & {
15
18
  asChild: true;
16
19
  children: JSXElement;
@@ -1,6 +1,7 @@
1
1
  import { SpinnerProps } from "./spinner.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/spinner/spinner.d.ts
4
+ /** Indeterminate loading spinner built on `ProgressCircle`, with an accessible label (defaults to `"Loading"`) and a `size` modifier. */
4
5
  declare function Spinner(props: SpinnerProps): JSX.Element;
5
6
  //#endregion
6
7
  export { Spinner };
@@ -1,6 +1,7 @@
1
1
  import { ProgressCircle, ProgressCircleIndicator } from "@askrjs/ui";
2
2
  import { jsx } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/spinner/spinner.tsx
4
+ /** Indeterminate loading spinner built on `ProgressCircle`, with an accessible label (defaults to `"Loading"`) and a `size` modifier. */
4
5
  function Spinner(props) {
5
6
  const { label, size, "aria-label": ariaLabel, ...rest } = props;
6
7
  return /* @__PURE__ */ jsx(ProgressCircle, {
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { ProgressCircle, ProgressCircleIndicator } from \"@askrjs/ui\";\nimport type { SpinnerProps } from \"./spinner.types\";\n\nexport function Spinner(props: SpinnerProps): JSX.Element {\n const {\n label,\n size,\n \"aria-label\": ariaLabel,\n ...rest\n } = props as SpinnerProps & {\n \"aria-label\"?: string;\n };\n\n return (\n <ProgressCircle\n {...rest}\n aria-label={ariaLabel ?? label ?? \"Loading\"}\n data-spinner=\"true\"\n data-size={size && size !== \"md\" ? size : undefined}\n value={null}\n getValueLabel={() => label ?? \"Loading\"}\n >\n <ProgressCircleIndicator />\n </ProgressCircle>\n );\n}\n"],"mappings":";;;AAIA,SAAgB,QAAQ,OAAkC;CACxD,MAAM,EACJ,OACA,MACA,cAAc,WACd,GAAG,SACD;CAIJ,OACE,oBAAC,gBAAD;EACE,GAAI;EACJ,cAAY,aAAa,SAAS;EAClC,gBAAa;EACb,aAAW,QAAQ,SAAS,OAAO,OAAO,KAAA;EAC1C,OAAO;EACP,qBAAqB,SAAS;EAE9B,UAAA,oBAAC,yBAAD,CAA0B,CAAA;CACZ,CAAA;AAEpB"}
1
+ {"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { ProgressCircle, ProgressCircleIndicator } from \"@askrjs/ui\";\nimport type { SpinnerProps } from \"./spinner.types\";\n\n/** Indeterminate loading spinner built on `ProgressCircle`, with an accessible label (defaults to `\"Loading\"`) and a `size` modifier. */\nexport function Spinner(props: SpinnerProps): JSX.Element {\n const {\n label,\n size,\n \"aria-label\": ariaLabel,\n ...rest\n } = props as SpinnerProps & {\n \"aria-label\"?: string;\n };\n\n return (\n <ProgressCircle\n {...rest}\n aria-label={ariaLabel ?? label ?? \"Loading\"}\n data-spinner=\"true\"\n data-size={size && size !== \"md\" ? size : undefined}\n value={null}\n getValueLabel={() => label ?? \"Loading\"}\n >\n <ProgressCircleIndicator />\n </ProgressCircle>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,QAAQ,OAAkC;CACxD,MAAM,EACJ,OACA,MACA,cAAc,WACd,GAAG,SACD;CAIJ,OACE,oBAAC,gBAAD;EACE,GAAI;EACJ,cAAY,aAAa,SAAS;EAClC,gBAAa;EACb,aAAW,QAAQ,SAAS,OAAO,OAAO,KAAA;EAC1C,OAAO;EACP,qBAAqB,SAAS;EAE9B,UAAA,oBAAC,yBAAD,CAA0B,CAAA;CACZ,CAAA;AAEpB"}
@@ -1,10 +1,13 @@
1
1
  import { ProgressCircleProps } from "@askrjs/ui";
2
2
  //#region src/components/spinner/spinner.types.d.ts
3
+ /** Size modifier for {@link Spinner}. */
3
4
  type SpinnerSize = "sm" | "md" | "lg";
5
+ /** Props specific to {@link Spinner}, layered on top of `ProgressCircleProps`. */
4
6
  type SpinnerOwnProps = Omit<ProgressCircleProps, "value" | "getValueLabel"> & {
5
7
  label?: string;
6
8
  size?: SpinnerSize;
7
9
  };
10
+ /** Props for the {@link Spinner} component. */
8
11
  type SpinnerProps = SpinnerOwnProps;
9
12
  //#endregion
10
13
  export { SpinnerOwnProps, SpinnerProps, SpinnerSize };
@@ -1,9 +1,13 @@
1
1
  import { StatDescriptionProps, StatLabelProps, StatProps, StatValueProps } from "./stat.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/stat/stat.d.ts
4
+ /** Container for a labeled statistic (label, value, description). */
4
5
  declare function Stat(props: StatProps): JSX.Element;
6
+ /** Renders the label of a {@link Stat}. */
5
7
  declare function StatLabel(props: StatLabelProps): JSX.Element;
8
+ /** Renders the primary value of a {@link Stat}. */
6
9
  declare function StatValue(props: StatValueProps): JSX.Element;
10
+ /** Renders supporting description text for a {@link Stat}. */
7
11
  declare function StatDescription(props: StatDescriptionProps): JSX.Element;
8
12
  //#endregion
9
13
  export { Stat, StatDescription, StatLabel, StatValue };
@@ -2,6 +2,7 @@ import { classes } from "../_internal/classes.js";
2
2
  import { mergeProps } from "../_internal/merge-props.js";
3
3
  import { jsx } from "@askrjs/askr/jsx-runtime";
4
4
  //#region src/components/stat/stat.tsx
5
+ /** Container for a labeled statistic (label, value, description). */
5
6
  function Stat(props) {
6
7
  const { children, class: className, ref, ...rest } = props;
7
8
  const finalProps = mergeProps(rest, {
@@ -14,6 +15,7 @@ function Stat(props) {
14
15
  children
15
16
  });
16
17
  }
18
+ /** Renders the label of a {@link Stat}. */
17
19
  function StatLabel(props) {
18
20
  const { children, class: className, ref, ...rest } = props;
19
21
  const finalProps = mergeProps(rest, {
@@ -26,6 +28,7 @@ function StatLabel(props) {
26
28
  children
27
29
  });
28
30
  }
31
+ /** Renders the primary value of a {@link Stat}. */
29
32
  function StatValue(props) {
30
33
  const { children, class: className, ref, ...rest } = props;
31
34
  const finalProps = mergeProps(rest, {
@@ -38,6 +41,7 @@ function StatValue(props) {
38
41
  children
39
42
  });
40
43
  }
44
+ /** Renders supporting description text for a {@link Stat}. */
41
45
  function StatDescription(props) {
42
46
  const { children, class: className, ref, ...rest } = props;
43
47
  const finalProps = mergeProps(rest, {
@@ -1 +1 @@
1
- {"version":3,"file":"stat.js","names":[],"sources":["../../../src/components/stat/stat.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport type { StatDescriptionProps, StatLabelProps, StatProps, StatValueProps } from \"./stat.types\";\n\nexport function Stat(props: StatProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat\", className),\n \"data-slot\": \"stat\",\n });\n\n return <div {...finalProps}>{children}</div>;\n}\n\nexport function StatLabel(props: StatLabelProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-label\", className),\n \"data-slot\": \"stat-label\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n\nexport function StatValue(props: StatValueProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-value\", className),\n \"data-slot\": \"stat-value\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n\nexport function StatDescription(props: StatDescriptionProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-description\", className),\n \"data-slot\": \"stat-description\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n"],"mappings":";;;;AAKA,SAAgB,KAAK,OAA+B;CAClD,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,QAAQ,SAAS;EAChC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,OAAD;EAAK,GAAI;EAAa;CAAc,CAAA;AAC7C;AAEA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,cAAc,SAAS;EACtC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC;AAEA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,cAAc,SAAS;EACtC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC;AAEA,SAAgB,gBAAgB,OAA0C;CACxE,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,oBAAoB,SAAS;EAC5C,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC"}
1
+ {"version":3,"file":"stat.js","names":[],"sources":["../../../src/components/stat/stat.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport type { StatDescriptionProps, StatLabelProps, StatProps, StatValueProps } from \"./stat.types\";\n\n/** Container for a labeled statistic (label, value, description). */\nexport function Stat(props: StatProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat\", className),\n \"data-slot\": \"stat\",\n });\n\n return <div {...finalProps}>{children}</div>;\n}\n\n/** Renders the label of a {@link Stat}. */\nexport function StatLabel(props: StatLabelProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-label\", className),\n \"data-slot\": \"stat-label\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n\n/** Renders the primary value of a {@link Stat}. */\nexport function StatValue(props: StatValueProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-value\", className),\n \"data-slot\": \"stat-value\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n\n/** Renders supporting description text for a {@link Stat}. */\nexport function StatDescription(props: StatDescriptionProps): JSX.Element {\n const { children, class: className, ref, ...rest } = props;\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"stat-description\", className),\n \"data-slot\": \"stat-description\",\n });\n\n return <p {...finalProps}>{children}</p>;\n}\n"],"mappings":";;;;;AAMA,SAAgB,KAAK,OAA+B;CAClD,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,QAAQ,SAAS;EAChC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,OAAD;EAAK,GAAI;EAAa;CAAc,CAAA;AAC7C;;AAGA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,cAAc,SAAS;EACtC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC;;AAGA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,cAAc,SAAS;EACtC,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC;;AAGA,SAAgB,gBAAgB,OAA0C;CACxE,MAAM,EAAE,UAAU,OAAO,WAAW,KAAK,GAAG,SAAS;CACrD,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,oBAAoB,SAAS;EAC5C,aAAa;CACf,CAAC;CAED,OAAO,oBAAC,KAAD;EAAG,GAAI;EAAa;CAAY,CAAA;AACzC"}
@@ -3,18 +3,22 @@ import { Ref } from "@askrjs/askr/foundations/utilities";
3
3
  //#region src/components/stat/stat.types.d.ts
4
4
  type DivProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref">;
5
5
  type ParagraphProps = Omit<JSX.IntrinsicElements["p"], "children" | "ref">;
6
+ /** Props for the {@link Stat} component. */
6
7
  type StatProps = DivProps & {
7
8
  children?: unknown;
8
9
  ref?: Ref<HTMLDivElement>;
9
10
  };
11
+ /** Props for the {@link StatLabel} component. */
10
12
  type StatLabelProps = ParagraphProps & {
11
13
  children?: unknown;
12
14
  ref?: Ref<HTMLParagraphElement>;
13
15
  };
16
+ /** Props for the {@link StatValue} component. */
14
17
  type StatValueProps = ParagraphProps & {
15
18
  children?: unknown;
16
19
  ref?: Ref<HTMLParagraphElement>;
17
20
  };
21
+ /** Props for the {@link StatDescription} component. */
18
22
  type StatDescriptionProps = ParagraphProps & {
19
23
  children?: unknown;
20
24
  ref?: Ref<HTMLParagraphElement>;
@@ -1,6 +1,7 @@
1
1
  import { TextElement, TextProps } from "./text.types.js";
2
2
  import { JSX } from "@askrjs/askr/jsx-runtime";
3
3
  //#region src/components/text/text.d.ts
4
+ /** Typography primitive: renders any {@link TextElement} (default `<p>`) and turns `size`/`tone`/`weight`/`font`/`numeric`/`wrap`/`truncate` into data attributes for CSS styling. */
4
5
  declare function Text<TElement extends TextElement = "p">(props: TextProps<TElement>): JSX.Element;
5
6
  //#endregion
6
7
  export { Text };
@@ -3,6 +3,7 @@ import { mergeProps } from "../_internal/merge-props.js";
3
3
  import { intrinsicElement } from "../_internal/jsx.js";
4
4
  //#region src/components/text/text.tsx
5
5
  const DEFAULT_ELEMENT = "p";
6
+ /** Typography primitive: renders any {@link TextElement} (default `<p>`) and turns `size`/`tone`/`weight`/`font`/`numeric`/`wrap`/`truncate` into data attributes for CSS styling. */
6
7
  function Text(props) {
7
8
  const { as, size = "md", tone = "default", weight, font, numeric, wrap, truncate, children, class: classProp, className, ref, ...rest } = props;
8
9
  const finalProps = mergeProps(rest, {
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","names":[],"sources":["../../../src/components/text/text.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport type { TextElement, TextProps } from \"./text.types\";\n\nconst DEFAULT_ELEMENT = \"p\";\n\nexport function Text<TElement extends TextElement = \"p\">(props: TextProps<TElement>): JSX.Element {\n const {\n as,\n size = \"md\",\n tone = \"default\",\n weight,\n font,\n numeric,\n wrap,\n truncate,\n children,\n class: classProp,\n className,\n ref,\n ...rest\n } = props as TextProps<TextElement> & { class?: unknown; className?: unknown };\n\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"text\", classProp, className),\n \"data-slot\": \"text\",\n \"data-size\": size,\n \"data-tone\": tone,\n \"data-weight\": weight,\n \"data-font\": font && font !== \"body\" ? font : undefined,\n \"data-numeric\": numeric && numeric !== \"normal\" ? numeric : undefined,\n \"data-wrap\": wrap,\n \"data-truncate\": truncate ? \"true\" : undefined,\n });\n\n return intrinsicElement(as ?? DEFAULT_ELEMENT, finalProps, children);\n}\n"],"mappings":";;;;AAMA,MAAM,kBAAkB;AAExB,SAAgB,KAAyC,OAAyC;CAChG,MAAM,EACJ,IACA,OAAO,MACP,OAAO,WACP,QACA,MACA,SACA,MACA,UACA,UACA,OAAO,WACP,WACA,KACA,GAAG,SACD;CAEJ,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,QAAQ,WAAW,SAAS;EAC3C,aAAa;EACb,aAAa;EACb,aAAa;EACb,eAAe;EACf,aAAa,QAAQ,SAAS,SAAS,OAAO,KAAA;EAC9C,gBAAgB,WAAW,YAAY,WAAW,UAAU,KAAA;EAC5D,aAAa;EACb,iBAAiB,WAAW,SAAS,KAAA;CACvC,CAAC;CAED,OAAO,iBAAiB,MAAM,iBAAiB,YAAY,QAAQ;AACrE"}
1
+ {"version":3,"file":"text.js","names":[],"sources":["../../../src/components/text/text.tsx"],"sourcesContent":["import type { JSX } from \"@askrjs/askr/jsx-runtime\";\nimport { classes } from \"../_internal/classes\";\nimport { mergeProps } from \"../_internal/merge-props\";\nimport { intrinsicElement } from \"../_internal/jsx\";\nimport type { TextElement, TextProps } from \"./text.types\";\n\nconst DEFAULT_ELEMENT = \"p\";\n\n/** Typography primitive: renders any {@link TextElement} (default `<p>`) and turns `size`/`tone`/`weight`/`font`/`numeric`/`wrap`/`truncate` into data attributes for CSS styling. */\nexport function Text<TElement extends TextElement = \"p\">(props: TextProps<TElement>): JSX.Element {\n const {\n as,\n size = \"md\",\n tone = \"default\",\n weight,\n font,\n numeric,\n wrap,\n truncate,\n children,\n class: classProp,\n className,\n ref,\n ...rest\n } = props as TextProps<TextElement> & { class?: unknown; className?: unknown };\n\n const finalProps = mergeProps(rest, {\n ref,\n class: classes(\"text\", classProp, className),\n \"data-slot\": \"text\",\n \"data-size\": size,\n \"data-tone\": tone,\n \"data-weight\": weight,\n \"data-font\": font && font !== \"body\" ? font : undefined,\n \"data-numeric\": numeric && numeric !== \"normal\" ? numeric : undefined,\n \"data-wrap\": wrap,\n \"data-truncate\": truncate ? \"true\" : undefined,\n });\n\n return intrinsicElement(as ?? DEFAULT_ELEMENT, finalProps, children);\n}\n"],"mappings":";;;;AAMA,MAAM,kBAAkB;;AAGxB,SAAgB,KAAyC,OAAyC;CAChG,MAAM,EACJ,IACA,OAAO,MACP,OAAO,WACP,QACA,MACA,SACA,MACA,UACA,UACA,OAAO,WACP,WACA,KACA,GAAG,SACD;CAEJ,MAAM,aAAa,WAAW,MAAM;EAClC;EACA,OAAO,QAAQ,QAAQ,WAAW,SAAS;EAC3C,aAAa;EACb,aAAa;EACb,aAAa;EACb,eAAe;EACf,aAAa,QAAQ,SAAS,SAAS,OAAO,KAAA;EAC9C,gBAAgB,WAAW,YAAY,WAAW,UAAU,KAAA;EAC5D,aAAa;EACb,iBAAiB,WAAW,SAAS,KAAA;CACvC,CAAC;CAED,OAAO,iBAAiB,MAAM,iBAAiB,YAAY,QAAQ;AACrE"}
@@ -1,14 +1,22 @@
1
1
  import { JSX } from "@askrjs/askr/jsx-runtime";
2
2
  import { Ref } from "@askrjs/askr/foundations/utilities";
3
3
  //#region src/components/text/text.types.d.ts
4
+ /** Element tags {@link Text} can render as via its `as` prop. */
4
5
  type TextElement = "p" | "span" | "div" | "strong";
6
+ /** Font size modifier for {@link Text}. */
5
7
  type TextSize = "sm" | "md" | "lg";
8
+ /** Color tone modifier for {@link Text}. */
6
9
  type TextTone = "default" | "muted" | "subtle" | "inverse" | "success" | "warning" | "danger" | "info";
10
+ /** Font weight modifier for {@link Text}. */
7
11
  type TextWeight = "normal" | "medium" | "semibold" | "bold";
12
+ /** Font family modifier for {@link Text}. */
8
13
  type TextFont = "body" | "mono";
14
+ /** Numeric glyph variant (e.g. tabular figures) for {@link Text}. */
9
15
  type TextNumeric = "normal" | "tabular";
16
+ /** White-space wrapping behavior for {@link Text}. */
10
17
  type TextWrap = "normal" | "nowrap" | "anywhere";
11
18
  type TextIntrinsicProps<TElement extends TextElement> = Omit<JSX.IntrinsicElements[TElement], "children" | "ref">;
19
+ /** Props for the {@link Text} component, specialized for a given {@link TextElement} `TElement`. */
12
20
  type TextProps<TElement extends TextElement = "p"> = TextIntrinsicProps<TElement> & {
13
21
  as?: TElement;
14
22
  size?: TextSize;