tembro 2.1.10 → 2.1.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 (147) hide show
  1. package/dist/components/calendar/calendar.cjs +1 -1
  2. package/dist/components/calendar/calendar.js +141 -142
  3. package/dist/components/ui/radio-group/index.cjs +1 -1
  4. package/dist/components/ui/radio-group/index.js +0 -1
  5. package/dist/showcase/package-meta.cjs +1 -1
  6. package/dist/showcase/package-meta.d.ts +3 -3
  7. package/dist/showcase/package-meta.js +1 -1
  8. package/dist/showcase/premium/accordion/mock.cjs +1 -1
  9. package/dist/showcase/premium/accordion/mock.js +1 -1
  10. package/dist/showcase/premium/avatar/mock.cjs +1 -1
  11. package/dist/showcase/premium/avatar/mock.js +1 -1
  12. package/dist/showcase/premium/button/mock.cjs +1 -1
  13. package/dist/showcase/premium/button/mock.js +1 -1
  14. package/dist/showcase/premium/calendar-scheduler/mock.cjs +1 -1
  15. package/dist/showcase/premium/calendar-scheduler/mock.js +1 -1
  16. package/dist/showcase/premium/carousel/mock.cjs +1 -1
  17. package/dist/showcase/premium/carousel/mock.js +1 -1
  18. package/dist/showcase/premium/code-block/mock.cjs +1 -1
  19. package/dist/showcase/premium/code-block/mock.js +1 -1
  20. package/dist/showcase/premium/command-bar/mock.cjs +1 -1
  21. package/dist/showcase/premium/command-bar/mock.js +1 -1
  22. package/dist/showcase/premium/confirm-dialog/mock.cjs +1 -1
  23. package/dist/showcase/premium/confirm-dialog/mock.js +1 -1
  24. package/dist/showcase/premium/copy-button/mock.cjs +1 -1
  25. package/dist/showcase/premium/copy-button/mock.js +1 -1
  26. package/dist/showcase/premium/copy-field/mock.cjs +1 -1
  27. package/dist/showcase/premium/copy-field/mock.js +1 -1
  28. package/dist/showcase/premium/data-state/mock.cjs +1 -1
  29. package/dist/showcase/premium/data-state/mock.js +1 -1
  30. package/dist/showcase/premium/date-picker/mock.cjs +1 -1
  31. package/dist/showcase/premium/date-picker/mock.js +1 -1
  32. package/dist/showcase/premium/date-range-picker/mock.cjs +1 -1
  33. package/dist/showcase/premium/date-range-picker/mock.js +1 -1
  34. package/dist/showcase/premium/descriptions/mock.cjs +1 -1
  35. package/dist/showcase/premium/descriptions/mock.js +1 -1
  36. package/dist/showcase/premium/dialog/mock.cjs +1 -1
  37. package/dist/showcase/premium/dialog/mock.js +1 -1
  38. package/dist/showcase/premium/divider/mock.cjs +1 -1
  39. package/dist/showcase/premium/divider/mock.js +1 -1
  40. package/dist/showcase/premium/dual-list-picker/mock.cjs +1 -1
  41. package/dist/showcase/premium/dual-list-picker/mock.js +1 -1
  42. package/dist/showcase/premium/file-upload/mock.cjs +1 -1
  43. package/dist/showcase/premium/file-upload/mock.js +1 -1
  44. package/dist/showcase/premium/image-upload/mock.cjs +1 -1
  45. package/dist/showcase/premium/image-upload/mock.js +1 -1
  46. package/dist/showcase/premium/json-input/mock.cjs +1 -1
  47. package/dist/showcase/premium/json-input/mock.js +1 -1
  48. package/dist/showcase/premium/kanban-board/mock.cjs +1 -1
  49. package/dist/showcase/premium/kanban-board/mock.js +1 -1
  50. package/dist/showcase/premium/list/mock.cjs +1 -1
  51. package/dist/showcase/premium/list/mock.js +1 -1
  52. package/dist/showcase/premium/menubar/mock.cjs +1 -1
  53. package/dist/showcase/premium/menubar/mock.js +1 -1
  54. package/dist/showcase/premium/modal-shell/mock.cjs +1 -1
  55. package/dist/showcase/premium/modal-shell/mock.js +1 -1
  56. package/dist/showcase/premium/navigation-menu/mock.cjs +1 -1
  57. package/dist/showcase/premium/navigation-menu/mock.js +1 -1
  58. package/dist/showcase/premium/property-grid/mock.cjs +1 -1
  59. package/dist/showcase/premium/property-grid/mock.js +1 -1
  60. package/dist/showcase/premium/qr-code/mock.cjs +1 -1
  61. package/dist/showcase/premium/qr-code/mock.js +1 -1
  62. package/dist/showcase/premium/radio-group/mock.cjs +1 -1
  63. package/dist/showcase/premium/radio-group/mock.js +1 -1
  64. package/dist/showcase/premium/resizable-panel/mock.cjs +1 -1
  65. package/dist/showcase/premium/resizable-panel/mock.js +1 -1
  66. package/dist/showcase/premium/rich-text-editor/mock.cjs +1 -1
  67. package/dist/showcase/premium/rich-text-editor/mock.js +1 -1
  68. package/dist/showcase/premium/saved-filter-select/mock.cjs +1 -1
  69. package/dist/showcase/premium/saved-filter-select/mock.js +1 -1
  70. package/dist/showcase/premium/section/mock.cjs +1 -1
  71. package/dist/showcase/premium/section/mock.js +1 -1
  72. package/dist/showcase/premium/segmented-control/mock.cjs +1 -1
  73. package/dist/showcase/premium/segmented-control/mock.js +1 -1
  74. package/dist/showcase/premium/sheet-shell/mock.cjs +1 -1
  75. package/dist/showcase/premium/sheet-shell/mock.js +1 -1
  76. package/dist/showcase/premium/skeleton/mock.cjs +1 -1
  77. package/dist/showcase/premium/skeleton/mock.js +1 -1
  78. package/dist/showcase/premium/spinner/mock.cjs +1 -1
  79. package/dist/showcase/premium/spinner/mock.js +1 -1
  80. package/dist/showcase/premium/statistic/mock.cjs +1 -1
  81. package/dist/showcase/premium/statistic/mock.js +1 -1
  82. package/dist/showcase/premium/sticky-footer-bar/mock.cjs +1 -1
  83. package/dist/showcase/premium/sticky-footer-bar/mock.js +1 -1
  84. package/dist/showcase/premium/tag/mock.cjs +1 -1
  85. package/dist/showcase/premium/tag/mock.js +1 -1
  86. package/dist/showcase/premium/time-picker/mock.cjs +1 -1
  87. package/dist/showcase/premium/time-picker/mock.js +1 -1
  88. package/dist/showcase/premium/tour/mock.cjs +1 -1
  89. package/dist/showcase/premium/tour/mock.js +1 -1
  90. package/dist/showcase/premium/tree-view/mock.cjs +1 -1
  91. package/dist/showcase/premium/tree-view/mock.js +1 -1
  92. package/dist/showcase/premium/typography/mock.cjs +1 -1
  93. package/dist/showcase/premium/typography/mock.js +1 -1
  94. package/dist/showcase/site-data.cjs +1 -1
  95. package/dist/showcase/site-data.js +1 -1
  96. package/dist/showcase/tembro-registry.json.cjs +1 -1
  97. package/dist/showcase/tembro-registry.json.js +1 -1
  98. package/package.json +6 -1
  99. package/packages/cli/dist/index.cjs +1 -1
  100. package/packages/cli/vendor/src/components/calendar/calendar.tsx +0 -1
  101. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +0 -1
  102. package/packages/cli/vendor/src/showcase/package-meta.ts +2 -2
  103. package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +1 -1
  104. package/packages/cli/vendor/src/showcase/premium/avatar/mock.ts +1 -1
  105. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +1 -1
  106. package/packages/cli/vendor/src/showcase/premium/calendar-scheduler/mock.ts +1 -1
  107. package/packages/cli/vendor/src/showcase/premium/carousel/mock.ts +1 -1
  108. package/packages/cli/vendor/src/showcase/premium/code-block/mock.ts +1 -1
  109. package/packages/cli/vendor/src/showcase/premium/command-bar/mock.ts +1 -1
  110. package/packages/cli/vendor/src/showcase/premium/confirm-dialog/mock.ts +1 -1
  111. package/packages/cli/vendor/src/showcase/premium/copy-button/mock.ts +1 -1
  112. package/packages/cli/vendor/src/showcase/premium/copy-field/mock.ts +1 -1
  113. package/packages/cli/vendor/src/showcase/premium/data-state/mock.ts +1 -1
  114. package/packages/cli/vendor/src/showcase/premium/date-picker/mock.ts +1 -1
  115. package/packages/cli/vendor/src/showcase/premium/date-range-picker/mock.ts +1 -1
  116. package/packages/cli/vendor/src/showcase/premium/descriptions/mock.ts +1 -1
  117. package/packages/cli/vendor/src/showcase/premium/dialog/mock.ts +1 -1
  118. package/packages/cli/vendor/src/showcase/premium/divider/mock.ts +1 -1
  119. package/packages/cli/vendor/src/showcase/premium/dual-list-picker/mock.ts +1 -1
  120. package/packages/cli/vendor/src/showcase/premium/file-upload/mock.ts +1 -1
  121. package/packages/cli/vendor/src/showcase/premium/image-upload/mock.ts +1 -1
  122. package/packages/cli/vendor/src/showcase/premium/json-input/mock.ts +1 -1
  123. package/packages/cli/vendor/src/showcase/premium/kanban-board/mock.ts +1 -1
  124. package/packages/cli/vendor/src/showcase/premium/list/mock.ts +1 -1
  125. package/packages/cli/vendor/src/showcase/premium/menubar/mock.ts +1 -1
  126. package/packages/cli/vendor/src/showcase/premium/modal-shell/mock.ts +1 -1
  127. package/packages/cli/vendor/src/showcase/premium/navigation-menu/mock.ts +1 -1
  128. package/packages/cli/vendor/src/showcase/premium/property-grid/mock.ts +1 -1
  129. package/packages/cli/vendor/src/showcase/premium/qr-code/mock.ts +1 -1
  130. package/packages/cli/vendor/src/showcase/premium/radio-group/mock.ts +1 -1
  131. package/packages/cli/vendor/src/showcase/premium/resizable-panel/mock.ts +1 -1
  132. package/packages/cli/vendor/src/showcase/premium/rich-text-editor/mock.ts +1 -1
  133. package/packages/cli/vendor/src/showcase/premium/saved-filter-select/mock.ts +1 -1
  134. package/packages/cli/vendor/src/showcase/premium/section/mock.ts +1 -1
  135. package/packages/cli/vendor/src/showcase/premium/segmented-control/mock.ts +1 -1
  136. package/packages/cli/vendor/src/showcase/premium/sheet-shell/mock.ts +1 -1
  137. package/packages/cli/vendor/src/showcase/premium/skeleton/mock.ts +1 -1
  138. package/packages/cli/vendor/src/showcase/premium/spinner/mock.ts +1 -1
  139. package/packages/cli/vendor/src/showcase/premium/statistic/mock.ts +1 -1
  140. package/packages/cli/vendor/src/showcase/premium/sticky-footer-bar/mock.ts +1 -1
  141. package/packages/cli/vendor/src/showcase/premium/tag/mock.ts +1 -1
  142. package/packages/cli/vendor/src/showcase/premium/time-picker/mock.ts +1 -1
  143. package/packages/cli/vendor/src/showcase/premium/tour/mock.ts +1 -1
  144. package/packages/cli/vendor/src/showcase/premium/tree-view/mock.ts +1 -1
  145. package/packages/cli/vendor/src/showcase/premium/typography/mock.ts +1 -1
  146. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  147. package/registry.json +1 -1
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/carousel/mock.ts
2
2
  var e = {
3
- code: "import { Carousel, CarouselItem } from \"@/index\"\n\nexport function Example() {\n return (\n <Carousel defaultIndex={0} showDots showArrows>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 1</div></CarouselItem>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 2</div></CarouselItem>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 3</div></CarouselItem>\n </Carousel>\n )\n}",
3
+ code: "import { Carousel, CarouselItem } from \"tembro\"\n\nexport function Example() {\n return (\n <Carousel defaultIndex={0} showDots showArrows>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 1</div></CarouselItem>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 2</div></CarouselItem>\n <CarouselItem><div className=\"rounded-xl bg-card p-4\">Card 3</div></CarouselItem>\n </Carousel>\n )\n}",
4
4
  cliCommand: "npx tembro add carousel",
5
5
  highlights: [
6
6
  "Keyboard and control-aware slider",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CodeBlock } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CodeBlock } from "tembro"
2
2
 
3
3
  const snippet = \`npx tembro add button select\`
4
4
 
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/code-block/mock.ts
2
2
  var e = {
3
- code: "import { CodeBlock } from \"@/index\"\n\nconst snippet = `npx tembro add button select`\n\nexport function Example() {\n return <CodeBlock title=\"CLI\" language=\"bash\" code={snippet} />\n}",
3
+ code: "import { CodeBlock } from \"tembro\"\n\nconst snippet = `npx tembro add button select`\n\nexport function Example() {\n return <CodeBlock title=\"CLI\" language=\"bash\" code={snippet} />\n}",
4
4
  cliCommand: "npx tembro add code-block",
5
5
  highlights: [
6
6
  "Header with title, language and built-in copy action",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CommandBar, Kbd, Button } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CommandBar, Kbd, Button } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/command-bar/mock.ts
2
2
  var e = {
3
- code: "import { CommandBar, Kbd, Button } from \"@/index\"\n\nexport function Example() {\n return (\n <CommandBar>\n <Kbd>G</Kbd>\n <Button size=\"sm\" variant=\"ghost\">Go to dashboard</Button>\n <Button size=\"sm\">Publish</Button>\n </CommandBar>\n )\n}",
3
+ code: "import { CommandBar, Kbd, Button } from \"tembro\"\n\nexport function Example() {\n return (\n <CommandBar>\n <Kbd>G</Kbd>\n <Button size=\"sm\" variant=\"ghost\">Go to dashboard</Button>\n <Button size=\"sm\">Publish</Button>\n </CommandBar>\n )\n}",
4
4
  cliCommand: "npx tembro add command-bar",
5
5
  highlights: [
6
6
  "Floating action rail for global shortcuts or workflow actions",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { Button, ConfirmDialog } from "@/index"
2
+ import { Button, ConfirmDialog } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [open, setOpen] = useState(false)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/confirm-dialog/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { Button, ConfirmDialog } from \"@/index\"\n\nexport function Example() {\n const [open, setOpen] = useState(false)\n const [busy, setBusy] = useState(false)\n\n async function handleConfirm() {\n setBusy(true)\n await new Promise((resolve) => setTimeout(resolve, 900))\n setBusy(false)\n setOpen(false)\n }\n\n return (\n <div className=\"space-y-3\">\n <Button onClick={() => setOpen(true)} variant=\"destructive\">\n Delete project\n </Button>\n <ConfirmDialog\n open={open}\n onOpenChange={setOpen}\n title=\"Delete project?\"\n description=\"This action cannot be undone. Team members will lose access immediately.\"\n confirmText=\"Delete forever\"\n confirmVariant=\"destructive\"\n isLoading={busy}\n onCancel={() => setOpen(false)}\n onConfirm={handleConfirm}\n />\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { Button, ConfirmDialog } from \"tembro\"\n\nexport function Example() {\n const [open, setOpen] = useState(false)\n const [busy, setBusy] = useState(false)\n\n async function handleConfirm() {\n setBusy(true)\n await new Promise((resolve) => setTimeout(resolve, 900))\n setBusy(false)\n setOpen(false)\n }\n\n return (\n <div className=\"space-y-3\">\n <Button onClick={() => setOpen(true)} variant=\"destructive\">\n Delete project\n </Button>\n <ConfirmDialog\n open={open}\n onOpenChange={setOpen}\n title=\"Delete project?\"\n description=\"This action cannot be undone. Team members will lose access immediately.\"\n confirmText=\"Delete forever\"\n confirmVariant=\"destructive\"\n isLoading={busy}\n onCancel={() => setOpen(false)}\n onConfirm={handleConfirm}\n />\n </div>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"confirm-trigger\">Delete project</button>",
5
5
  cliCommand: "npx tembro add confirm-dialog",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CopyButton } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CopyButton } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/copy-button/mock.ts
2
2
  var e = {
3
- code: "import { CopyButton } from \"@/index\"\n\nexport function Example() {\n return (\n <CopyButton\n value=\"sk_live_demo_123\"\n copyLabel=\"Copy token\"\n copiedLabel=\"Copied\"\n variant=\"outline\"\n size=\"sm\"\n />\n )\n}",
3
+ code: "import { CopyButton } from \"tembro\"\n\nexport function Example() {\n return (\n <CopyButton\n value=\"sk_live_demo_123\"\n copyLabel=\"Copy token\"\n copiedLabel=\"Copied\"\n variant=\"outline\"\n size=\"sm\"\n />\n )\n}",
4
4
  cliCommand: "npx tembro add copy-button",
5
5
  highlights: [
6
6
  "Built-in copied feedback state",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CopyField } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CopyField } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/copy-field/mock.ts
2
2
  var e = {
3
- code: "import { CopyField } from \"@/index\"\n\nexport function Example() {\n return (\n <CopyField\n label=\"Webhook signing secret\"\n description=\"Use on the server only.\"\n value=\"whsec_demo_value_123\"\n />\n )\n}",
3
+ code: "import { CopyField } from \"tembro\"\n\nexport function Example() {\n return (\n <CopyField\n label=\"Webhook signing secret\"\n description=\"Use on the server only.\"\n value=\"whsec_demo_value_123\"\n />\n )\n}",
4
4
  cliCommand: "npx tembro add copy-field",
5
5
  highlights: [
6
6
  "Label, helper text, value surface, and copy action in one unit",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DataState } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DataState } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/data-state/mock.ts
2
2
  var e = {
3
- code: "import { DataState } from \"@/index\"\n\nexport function Example() {\n return (\n <DataState\n status=\"error\"\n title=\"Unable to load rows\"\n description=\"Try again after refreshing the request.\"\n onRetry={() => {}}\n />\n )\n}",
3
+ code: "import { DataState } from \"tembro\"\n\nexport function Example() {\n return (\n <DataState\n status=\"error\"\n title=\"Unable to load rows\"\n description=\"Try again after refreshing the request.\"\n onRetry={() => {}}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add data-state",
5
5
  highlights: [
6
6
  "Idle, loading, empty, error and success state surface",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { DatePicker } from "@/index"
2
+ import { DatePicker } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState("2026-06-19")
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/date-picker/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { DatePicker } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState(\"2026-06-19\")\n\n return (\n <DatePicker\n value={value}\n onValueChange={setValue}\n min=\"2026-06-01\"\n max=\"2026-12-31\"\n disabledDates={[\"2026-06-21\"]}\n />\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { DatePicker } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"2026-06-19\")\n\n return (\n <DatePicker\n value={value}\n onValueChange={setValue}\n min=\"2026-06-01\"\n max=\"2026-12-31\"\n disabledDates={[\"2026-06-21\"]}\n />\n )\n}",
4
4
  htmlCode: "<label for=\"date-picker\">Date</label><input id=\"date-picker\" type=\"text\" value=\"2026-06-19\" />",
5
5
  cliCommand: "npx tembro add date-picker",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { DateRangePicker } from "@/index"
2
+ import { DateRangePicker } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState({ from: "2026-06-01", to: "2026-06-07" })
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/date-range-picker/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { DateRangePicker } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState({ from: \"2026-06-01\", to: \"2026-06-07\" })\n\n return (\n <DateRangePicker\n value={value}\n onValueChange={(nextValue) => setValue({ from: nextValue.from ?? \"\", to: nextValue.to ?? \"\" })}\n min=\"2026-06-01\"\n max=\"2026-12-31\"\n disabledDates={[\"2026-06-21\", \"2026-06-22\"]}\n />\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { DateRangePicker } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState({ from: \"2026-06-01\", to: \"2026-06-07\" })\n\n return (\n <DateRangePicker\n value={value}\n onValueChange={(nextValue) => setValue({ from: nextValue.from ?? \"\", to: nextValue.to ?? \"\" })}\n min=\"2026-06-01\"\n max=\"2026-12-31\"\n disabledDates={[\"2026-06-21\", \"2026-06-22\"]}\n />\n )\n}",
4
4
  htmlCode: "<label for=\"date-range-picker\">Date range</label><input id=\"date-range-picker\" type=\"text\" value=\"2026-06-01 to 2026-06-07\" />",
5
5
  cliCommand: "npx tembro add date-range-picker",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Descriptions } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Descriptions } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/descriptions/mock.ts
2
2
  var e = {
3
- code: "import { Descriptions } from \"@/index\"\n\nexport function Example() {\n return (\n <Descriptions\n title=\"Project profile\"\n extra={<span className=\"text-sm text-muted-foreground\">Draft</span>}\n items={[\n { key: \"owner\", label: \"Owner\", value: \"Azamat UI Team\" },\n { key: \"status\", label: \"Status\", value: \"In review\" },\n { key: \"release\", label: \"Release\", value: \"v0.3.27\", span: 2 },\n { key: \"stack\", label: \"Tech\", value: \"React + Tailwind\" },\n ]}\n />\n )\n}",
3
+ code: "import { Descriptions } from \"tembro\"\n\nexport function Example() {\n return (\n <Descriptions\n title=\"Project profile\"\n extra={<span className=\"text-sm text-muted-foreground\">Draft</span>}\n items={[\n { key: \"owner\", label: \"Owner\", value: \"Azamat UI Team\" },\n { key: \"status\", label: \"Status\", value: \"In review\" },\n { key: \"release\", label: \"Release\", value: \"v0.3.27\", span: 2 },\n { key: \"stack\", label: \"Tech\", value: \"React + Tailwind\" },\n ]}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add descriptions",
5
5
  highlights: [
6
6
  "Title and metadata layout in a compact two-axis grid",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import * as React from "react"
2
- import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/index"
2
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [open, setOpen] = React.useState(false)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/dialog/mock.ts
2
2
  var e = {
3
- code: "import * as React from \"react\"\nimport { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"@/index\"\n\nexport function Example() {\n const [open, setOpen] = React.useState(false)\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger render={<Button>Publish</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Publish update</DialogTitle>\n <DialogDescription>\n Confirm that these notes are final before moving to production.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button>Publish</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}",
3
+ code: "import * as React from \"react\"\nimport { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"tembro\"\n\nexport function Example() {\n const [open, setOpen] = React.useState(false)\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger render={<Button>Publish</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Publish update</DialogTitle>\n <DialogDescription>\n Confirm that these notes are final before moving to production.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button>Publish</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"dialog-trigger\">Open dialog</button>",
5
5
  cliCommand: "npx tembro add dialog",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Divider } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Divider } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/divider/mock.ts
2
2
  var e = {
3
- code: "import { Divider } from \"@/index\"\n\nexport function Example() {\n return (\n <div className=\"space-y-6\">\n <Divider label=\"Sections\" />\n <Divider orientation=\"horizontal\" dashed label=\"Dashed\" />\n <Divider dashed orientation=\"vertical\" />\n </div>\n )\n}",
3
+ code: "import { Divider } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-6\">\n <Divider label=\"Sections\" />\n <Divider orientation=\"horizontal\" dashed label=\"Dashed\" />\n <Divider dashed orientation=\"vertical\" />\n </div>\n )\n}",
4
4
  cliCommand: "npx tembro add divider",
5
5
  highlights: [
6
6
  "Horizontal divider as labeled group boundary",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DualListPicker } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DualListPicker } from "tembro"
2
2
 
3
3
  const items = [
4
4
  { label: "Analytics", value: "analytics" },
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/dual-list-picker/mock.ts
2
2
  var e = {
3
- code: "import { DualListPicker } from \"@/index\"\n\nconst items = [\n { label: \"Analytics\", value: \"analytics\" },\n { label: \"Reports\", value: \"reports\" },\n]\n\nexport function Example() {\n const [picked, setPicked] = useState([\"analytics\"])\n\n return (\n <DualListPicker\n items={items}\n picked={picked}\n onPickedChange={setPicked}\n availableTitle=\"Available\"\n pickedTitle=\"Selected\"\n />\n )\n}",
3
+ code: "import { DualListPicker } from \"tembro\"\n\nconst items = [\n { label: \"Analytics\", value: \"analytics\" },\n { label: \"Reports\", value: \"reports\" },\n]\n\nexport function Example() {\n const [picked, setPicked] = useState([\"analytics\"])\n\n return (\n <DualListPicker\n items={items}\n picked={picked}\n onPickedChange={setPicked}\n availableTitle=\"Available\"\n pickedTitle=\"Selected\"\n />\n )\n}",
4
4
  cliCommand: "npx tembro add dual-list-picker",
5
5
  highlights: [
6
6
  "Move items between available/selected lists",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { FileUpload } from "@/index"
2
+ import { FileUpload } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [files, setFiles] = useState<File[]>([])
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/file-upload/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { FileUpload } from \"@/index\"\n\nexport function Example() {\n const [files, setFiles] = useState<File[]>([])\n\n return (\n <FileUpload\n files={files}\n onFilesChange={setFiles}\n accept=\".pdf,.docx,.png\"\n maxFiles={4}\n maxSize={4 * 1024 * 1024}\n helperText=\"Supports PDF, DOCX and PNG up to 4 MB.\"\n />\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { FileUpload } from \"tembro\"\n\nexport function Example() {\n const [files, setFiles] = useState<File[]>([])\n\n return (\n <FileUpload\n files={files}\n onFilesChange={setFiles}\n accept=\".pdf,.docx,.png\"\n maxFiles={4}\n maxSize={4 * 1024 * 1024}\n helperText=\"Supports PDF, DOCX and PNG up to 4 MB.\"\n />\n )\n}",
4
4
  cliCommand: "npx tembro add file-upload",
5
5
  highlights: [
6
6
  "Reusable dropzone and file list",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { ImageUpload } from "@/index"
2
+ import { ImageUpload } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [files, setFiles] = useState<File[]>([])
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/image-upload/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { ImageUpload } from \"@/index\"\n\nexport function Example() {\n const [files, setFiles] = useState<File[]>([])\n\n return (\n <ImageUpload\n files={files}\n onFilesChange={setFiles}\n maxFiles={3}\n helperText=\"Upload hero illustrations or block thumbnails.\"\n />\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { ImageUpload } from \"tembro\"\n\nexport function Example() {\n const [files, setFiles] = useState<File[]>([])\n\n return (\n <ImageUpload\n files={files}\n onFilesChange={setFiles}\n maxFiles={3}\n helperText=\"Upload hero illustrations or block thumbnails.\"\n />\n )\n}",
4
4
  cliCommand: "npx tembro add image-upload",
5
5
  highlights: [
6
6
  "Image preview support",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { JsonInput } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { JsonInput } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return <JsonInput value='{"name":"tembro"}' />
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/json-input/mock.ts
2
2
  var e = {
3
- code: "import { JsonInput } from \"@/index\"\n\nexport function Example() {\n return <JsonInput value='{\"name\":\"tembro\"}' />\n}",
3
+ code: "import { JsonInput } from \"tembro\"\n\nexport function Example() {\n return <JsonInput value='{\"name\":\"tembro\"}' />\n}",
4
4
  cliCommand: "npx tembro add json-input",
5
5
  highlights: [
6
6
  "Validates JSON on edit",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { KanbanBoard } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { KanbanBoard } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/kanban-board/mock.ts
2
2
  var e = {
3
- code: "import { KanbanBoard } from \"@/index\"\n\nexport function Example() {\n return (\n <KanbanBoard\n columns={[\n {\n key: \"todo\",\n title: \"To Do\",\n cards: [\n { key: \"a\", title: \"Prototype\", description: \"Build initial modal flow.\" },\n { key: \"b\", title: \"Audit\", description: \"Review token contrast.\" },\n ],\n },\n {\n key: \"progress\",\n title: \"In progress\",\n cards: [{ key: \"c\", title: \"Implement\", description: \"Add demo variants.\" }],\n },\n ]}\n />\n )\n}",
3
+ code: "import { KanbanBoard } from \"tembro\"\n\nexport function Example() {\n return (\n <KanbanBoard\n columns={[\n {\n key: \"todo\",\n title: \"To Do\",\n cards: [\n { key: \"a\", title: \"Prototype\", description: \"Build initial modal flow.\" },\n { key: \"b\", title: \"Audit\", description: \"Review token contrast.\" },\n ],\n },\n {\n key: \"progress\",\n title: \"In progress\",\n cards: [{ key: \"c\", title: \"Implement\", description: \"Add demo variants.\" }],\n },\n ]}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add kanban",
5
5
  highlights: [
6
6
  "Horizontal scrollable board layout",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Avatar, Badge, List } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Avatar, Badge, List } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/list/mock.ts
2
2
  var e = {
3
- code: "import { Avatar, Badge, List } from \"@/index\"\n\nexport function Example() {\n return (\n <List\n items={[\n {\n key: \"invoice\",\n title: \"Invoice review\",\n description: \"Pending finance approval\",\n avatar: <Avatar name=\"Finance\" size=\"sm\" />,\n extra: <Badge variant=\"outline\">Pending</Badge>,\n },\n ]}\n />\n )\n}",
3
+ code: "import { Avatar, Badge, List } from \"tembro\"\n\nexport function Example() {\n return (\n <List\n items={[\n {\n key: \"invoice\",\n title: \"Invoice review\",\n description: \"Pending finance approval\",\n avatar: <Avatar name=\"Finance\" size=\"sm\" />,\n extra: <Badge variant=\"outline\">Pending</Badge>,\n },\n ]}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add list",
5
5
  highlights: [
6
6
  "Compact title/description rows with optional avatar and extra slot",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Menubar, MenubarContent, MenubarItem, MenubarMenu, MenubarTrigger } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Menubar, MenubarContent, MenubarItem, MenubarMenu, MenubarTrigger } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/menubar/mock.ts
2
2
  var e = {
3
- code: "import { Menubar, MenubarContent, MenubarItem, MenubarMenu, MenubarTrigger } from \"@/index\"\n\nexport function Example() {\n return (\n <Menubar>\n <MenubarMenu>\n <MenubarTrigger>File</MenubarTrigger>\n <MenubarContent>\n <MenubarItem>New project</MenubarItem>\n <MenubarItem>Open</MenubarItem>\n </MenubarContent>\n </MenubarMenu>\n </Menubar>\n )\n}",
3
+ code: "import { Menubar, MenubarContent, MenubarItem, MenubarMenu, MenubarTrigger } from \"tembro\"\n\nexport function Example() {\n return (\n <Menubar>\n <MenubarMenu>\n <MenubarTrigger>File</MenubarTrigger>\n <MenubarContent>\n <MenubarItem>New project</MenubarItem>\n <MenubarItem>Open</MenubarItem>\n </MenubarContent>\n </MenubarMenu>\n </Menubar>\n )\n}",
4
4
  cliCommand: "npx tembro add menubar",
5
5
  highlights: ["Composable menubar surfaces with grouped actions", "Trigger + content + item primitives"],
6
6
  scenarios: [{
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { Badge, Button, Input, ModalShell } from "@/index"
2
+ import { Badge, Button, Input, ModalShell } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [open, setOpen] = useState(false)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/modal-shell/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { Badge, Button, Input, ModalShell } from \"@/index\"\n\nexport function Example() {\n const [open, setOpen] = useState(false)\n\n return (\n <div>\n <Button onClick={() => setOpen(true)}>Create workspace</Button>\n <ModalShell\n open={open}\n onOpenChange={setOpen}\n title=\"Create workspace\"\n description=\"Collect a name and visibility before generating a share token.\"\n size=\"md\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button onClick={() => setOpen(false)}>Create</Button>\n </div>\n }\n >\n <label className=\"space-y-2 text-sm aui-text-subtle\">\n <span>Workspace name</span>\n <Input defaultValue=\"Marketing portal\" />\n </label>\n </ModalShell>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { Badge, Button, Input, ModalShell } from \"tembro\"\n\nexport function Example() {\n const [open, setOpen] = useState(false)\n\n return (\n <div>\n <Button onClick={() => setOpen(true)}>Create workspace</Button>\n <ModalShell\n open={open}\n onOpenChange={setOpen}\n title=\"Create workspace\"\n description=\"Collect a name and visibility before generating a share token.\"\n size=\"md\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button onClick={() => setOpen(false)}>Create</Button>\n </div>\n }\n >\n <label className=\"space-y-2 text-sm aui-text-subtle\">\n <span>Workspace name</span>\n <Input defaultValue=\"Marketing portal\" />\n </label>\n </ModalShell>\n </div>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"modal-shell-trigger\">Open modal</button>",
5
5
  cliCommand: "npx tembro add modal-shell",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/navigation-menu/mock.ts
2
2
  var e = {
3
- code: "import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList } from \"@/index\"\n\nexport function Example() {\n return (\n <NavigationMenu>\n <NavigationMenuList>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\" active>Home</NavigationMenuLink>\n </NavigationMenuItem>\n </NavigationMenuList>\n </NavigationMenu>\n )\n}",
3
+ code: "import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList } from \"tembro\"\n\nexport function Example() {\n return (\n <NavigationMenu>\n <NavigationMenuList>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\" active>Home</NavigationMenuLink>\n </NavigationMenuItem>\n </NavigationMenuList>\n </NavigationMenu>\n )\n}",
4
4
  cliCommand: "npx tembro add navigation-menu",
5
5
  highlights: [
6
6
  "Accessible anchor-style navigation links",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { PropertyGrid } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { PropertyGrid } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/property-grid/mock.ts
2
2
  var e = {
3
- code: "import { PropertyGrid } from \"@/index\"\n\nexport function Example() {\n return (\n <PropertyGrid\n columns={3}\n items={[\n { key: \"owner\", label: \"Owner\", value: \"Azamat Jurayev\" },\n { key: \"status\", label: \"Status\", value: \"Ready for review\" },\n { key: \"version\", label: \"Version\", value: \"0.3.27\" },\n ]}\n />\n )\n}",
3
+ code: "import { PropertyGrid } from \"tembro\"\n\nexport function Example() {\n return (\n <PropertyGrid\n columns={3}\n items={[\n { key: \"owner\", label: \"Owner\", value: \"Azamat Jurayev\" },\n { key: \"status\", label: \"Status\", value: \"Ready for review\" },\n { key: \"version\", label: \"Version\", value: \"0.3.27\" },\n ]}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add property-grid",
5
5
  highlights: [
6
6
  "Dense key/value metadata layout",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { QRCode } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { QRCode } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return <QRCode value="https://azamat-ui.vercel.app" alt="Azamat UI" />
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/qr-code/mock.ts
2
2
  var e = {
3
- code: "import { QRCode } from \"@/index\"\n\nexport function Example() {\n return <QRCode value=\"https://azamat-ui.vercel.app\" alt=\"Azamat UI\" />\n}",
3
+ code: "import { QRCode } from \"tembro\"\n\nexport function Example() {\n return <QRCode value=\"https://azamat-ui.vercel.app\" alt=\"Azamat UI\" />\n}",
4
4
  cliCommand: "npx tembro add qr-code",
5
5
  highlights: [
6
6
  "Fallback SVG renderer if no image is provided",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { RadioGroup } from "@/index"
2
+ import { RadioGroup } from "tembro"
3
3
 
4
4
  const planOptions = [
5
5
  { value: "starter", label: "Starter", description: "Good for single workspace setup." },
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/radio-group/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { RadioGroup } from \"@/index\"\n\nconst planOptions = [\n { value: \"starter\", label: \"Starter\", description: \"Good for single workspace setup.\" },\n { value: \"growth\", label: \"Growth\", description: \"Adds more seats and team workflows.\" },\n { value: \"enterprise\", label: \"Enterprise\", description: \"Advanced controls and support.\" },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"growth\")\n\n return <RadioGroup value={value} onValueChange={setValue} options={planOptions} />\n}",
3
+ code: "import { useState } from \"react\"\nimport { RadioGroup } from \"tembro\"\n\nconst planOptions = [\n { value: \"starter\", label: \"Starter\", description: \"Good for single workspace setup.\" },\n { value: \"growth\", label: \"Growth\", description: \"Adds more seats and team workflows.\" },\n { value: \"enterprise\", label: \"Enterprise\", description: \"Advanced controls and support.\" },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"growth\")\n\n return <RadioGroup value={value} onValueChange={setValue} options={planOptions} />\n}",
4
4
  htmlCode: "<div data-slot=\"radio-group\" role=\"radiogroup\"></div>",
5
5
  cliCommand: "npx tembro add radio-group",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/resizable-panel/mock.ts
2
2
  var e = {
3
- code: "import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"@/index\"\n\nexport function Example() {\n return (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={30}>Catalog</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel defaultSize={70}>Details</ResizablePanel>\n </ResizablePanelGroup>\n )\n}",
3
+ code: "import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"tembro\"\n\nexport function Example() {\n return (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={30}>Catalog</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel defaultSize={70}>Details</ResizablePanel>\n </ResizablePanelGroup>\n )\n}",
4
4
  cliCommand: "npx tembro add resizable-panel",
5
5
  highlights: [
6
6
  "Declarative split layout with customizable handles",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { RichTextEditor } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { RichTextEditor } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  const [value, setValue] = useState("<p>Start writing...</p>")
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/rich-text-editor/mock.ts
2
2
  var e = {
3
- code: "import { RichTextEditor } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState(\"<p>Start writing...</p>\")\n\n return <RichTextEditor value={value} onValueChange={setValue} />\n}",
3
+ code: "import { RichTextEditor } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"<p>Start writing...</p>\")\n\n return <RichTextEditor value={value} onValueChange={setValue} />\n}",
4
4
  cliCommand: "npx tembro add rich-text-editor",
5
5
  highlights: [
6
6
  "Inline editable content block",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { SavedFilterSelect } from "@/index"
2
+ import { SavedFilterSelect } from "tembro"
3
3
 
4
4
  const filters = [
5
5
  { value: "billing", label: "Billing", description: "Invoices and payment status" },
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/saved-filter-select/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { SavedFilterSelect } from \"@/index\"\n\nconst filters = [\n { value: \"billing\", label: \"Billing\", description: \"Invoices and payment status\" },\n { value: \"ops\", label: \"Operations\", description: \"Queues and workload\" },\n { value: \"owners\", label: \"Owner: Azamat\", description: \"Assigned records only\" },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"billing\")\n\n return (\n <SavedFilterSelect\n value={value}\n onValueChange={setValue}\n filters={filters}\n onSave={() => undefined}\n onDelete={() => undefined}\n />\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { SavedFilterSelect } from \"tembro\"\n\nconst filters = [\n { value: \"billing\", label: \"Billing\", description: \"Invoices and payment status\" },\n { value: \"ops\", label: \"Operations\", description: \"Queues and workload\" },\n { value: \"owners\", label: \"Owner: Azamat\", description: \"Assigned records only\" },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"billing\")\n\n return (\n <SavedFilterSelect\n value={value}\n onValueChange={setValue}\n filters={filters}\n onSave={() => undefined}\n onDelete={() => undefined}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add saved-filter-select",
5
5
  highlights: [
6
6
  "Named view switching",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, Section } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, Section } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/section/mock.ts
2
2
  var e = {
3
- code: "import { Button, Section } from \"@/index\"\n\nexport function Example() {\n return (\n <Section\n title=\"Team members\"\n description=\"Manage who sees this workspace.\"\n bordered\n actions={<Button size=\"sm\">Manage</Button>}\n >\n <div>Row content</div>\n </Section>\n )\n}",
3
+ code: "import { Button, Section } from \"tembro\"\n\nexport function Example() {\n return (\n <Section\n title=\"Team members\"\n description=\"Manage who sees this workspace.\"\n bordered\n actions={<Button size=\"sm\">Manage</Button>}\n >\n <div>Row content</div>\n </Section>\n )\n}",
4
4
  cliCommand: "npx tembro add section",
5
5
  highlights: [
6
6
  "Header, description and actions in one wrapper",
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import * as React from "react"
2
2
  import { LayoutGridIcon, Rows3Icon, Table2Icon } from "lucide-react"
3
- import { SegmentedControl } from "@/index"
3
+ import { SegmentedControl } from "tembro"
4
4
 
5
5
  const options = [
6
6
  { value: "board", label: "Board", icon: <LayoutGridIcon className="size-4" /> },
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/segmented-control/mock.ts
2
2
  var e = {
3
- code: "import * as React from \"react\"\nimport { LayoutGridIcon, Rows3Icon, Table2Icon } from \"lucide-react\"\nimport { SegmentedControl } from \"@/index\"\n\nconst options = [\n { value: \"board\", label: \"Board\", icon: <LayoutGridIcon className=\"size-4\" /> },\n { value: \"list\", label: \"List\", icon: <Rows3Icon className=\"size-4\" /> },\n { value: \"table\", label: \"Table\", icon: <Table2Icon className=\"size-4\" /> },\n]\n\nexport function Example() {\n const [value, setValue] = React.useState(\"board\")\n\n return <SegmentedControl value={value} onValueChange={setValue} options={options} />\n}",
3
+ code: "import * as React from \"react\"\nimport { LayoutGridIcon, Rows3Icon, Table2Icon } from \"lucide-react\"\nimport { SegmentedControl } from \"tembro\"\n\nconst options = [\n { value: \"board\", label: \"Board\", icon: <LayoutGridIcon className=\"size-4\" /> },\n { value: \"list\", label: \"List\", icon: <Rows3Icon className=\"size-4\" /> },\n { value: \"table\", label: \"Table\", icon: <Table2Icon className=\"size-4\" /> },\n]\n\nexport function Example() {\n const [value, setValue] = React.useState(\"board\")\n\n return <SegmentedControl value={value} onValueChange={setValue} options={options} />\n}",
4
4
  htmlCode: "<div data-slot=\"segmented-control\">\n <button role=\"radio\" aria-checked=\"true\">Board</button>\n <button role=\"radio\" aria-checked=\"false\">List</button>\n</div>",
5
5
  cliCommand: "npx tembro add segmented-control",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { Button, SheetShell } from "@/index"
2
+ import { Button, SheetShell } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [openRight, setOpenRight] = useState(false)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/sheet-shell/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { Button, SheetShell } from \"@/index\"\n\nexport function Example() {\n const [openRight, setOpenRight] = useState(false)\n const [openBottom, setOpenBottom] = useState(false)\n\n return (\n <div className=\"space-y-3\">\n <Button onClick={() => setOpenRight(true)}>Open right sheet</Button>\n <Button variant=\"outline\" onClick={() => setOpenBottom(true)}>Open bottom sheet</Button>\n <SheetShell\n open={openRight}\n onOpenChange={setOpenRight}\n side=\"right\"\n title=\"Workspace editor\"\n description=\"Use a sheet for dense action rows without taking full screen.\"\n footer={<Button onClick={() => setOpenRight(false)}>Done</Button>}\n >\n <p className=\"text-sm aui-text-muted\">Compact editor surface stays close to the source context.</p>\n </SheetShell>\n <SheetShell\n open={openBottom}\n onOpenChange={setOpenBottom}\n side=\"bottom\"\n title=\"Mobile actions\"\n description=\"Use mobile-friendly sheet for quick row actions.\"\n footer={<Button variant=\"outline\" onClick={() => setOpenBottom(false)}>Close</Button>}\n >\n <p className=\"text-sm aui-text-muted\">Bottom sheets fit long lists and quick actions on narrow viewports.</p>\n </SheetShell>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { Button, SheetShell } from \"tembro\"\n\nexport function Example() {\n const [openRight, setOpenRight] = useState(false)\n const [openBottom, setOpenBottom] = useState(false)\n\n return (\n <div className=\"space-y-3\">\n <Button onClick={() => setOpenRight(true)}>Open right sheet</Button>\n <Button variant=\"outline\" onClick={() => setOpenBottom(true)}>Open bottom sheet</Button>\n <SheetShell\n open={openRight}\n onOpenChange={setOpenRight}\n side=\"right\"\n title=\"Workspace editor\"\n description=\"Use a sheet for dense action rows without taking full screen.\"\n footer={<Button onClick={() => setOpenRight(false)}>Done</Button>}\n >\n <p className=\"text-sm aui-text-muted\">Compact editor surface stays close to the source context.</p>\n </SheetShell>\n <SheetShell\n open={openBottom}\n onOpenChange={setOpenBottom}\n side=\"bottom\"\n title=\"Mobile actions\"\n description=\"Use mobile-friendly sheet for quick row actions.\"\n footer={<Button variant=\"outline\" onClick={() => setOpenBottom(false)}>Close</Button>}\n >\n <p className=\"text-sm aui-text-muted\">Bottom sheets fit long lists and quick actions on narrow viewports.</p>\n </SheetShell>\n </div>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"sheet-shell-trigger\">Open sheet</button>",
5
5
  cliCommand: "npx tembro add sheet-shell",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Skeleton, SkeletonCard, SkeletonText } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Skeleton, SkeletonCard, SkeletonText } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/skeleton/mock.ts
2
2
  var e = {
3
- code: "import { Skeleton, SkeletonCard, SkeletonText } from \"@/index\"\n\nexport function Example() {\n return (\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10 w-48\" />\n <SkeletonText rows={3} />\n <SkeletonCard avatar rows={4} />\n </div>\n )\n}",
3
+ code: "import { Skeleton, SkeletonCard, SkeletonText } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-4\">\n <Skeleton className=\"h-10 w-48\" />\n <SkeletonText rows={3} />\n <SkeletonCard avatar rows={4} />\n </div>\n )\n}",
4
4
  cliCommand: "npx tembro add skeleton",
5
5
  highlights: [
6
6
  "Base line/block placeholder plus text and card presets",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { LoadingOverlay, Spinner } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { LoadingOverlay, Spinner } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (