tembro 2.1.11 → 2.1.13
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.
- package/dist/components/charts/charts.cjs +1 -1
- package/dist/components/charts/charts.d.ts +8 -3
- package/dist/components/charts/charts.js +79 -51
- package/dist/components/charts/horizontal-bar-chart.cjs +1 -1
- package/dist/components/charts/horizontal-bar-chart.d.ts +3 -1
- package/dist/components/charts/horizontal-bar-chart.js +12 -7
- package/dist/components/charts/index.cjs +1 -1
- package/dist/components/charts/index.js +5 -5
- package/dist/components/charts/public.cjs +1 -1
- package/dist/components/charts/public.js +2 -2
- package/dist/components/data-table/demo.cjs +1 -1
- package/dist/components/data-table/demo.d.ts +2 -6
- package/dist/components/data-table/demo.js +27 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +41 -41
- package/dist/showcase/create-demo.cjs +2 -138
- package/dist/showcase/create-demo.js +37 -52
- package/dist/showcase/demo-snippets/actions/index.cjs +64 -0
- package/dist/showcase/demo-snippets/actions/index.d.ts +1 -0
- package/dist/showcase/demo-snippets/actions/index.js +10 -0
- package/dist/showcase/demo-snippets/forms/index.cjs +26 -0
- package/dist/showcase/demo-snippets/forms/index.d.ts +1 -0
- package/dist/showcase/demo-snippets/forms/index.js +9 -0
- package/dist/showcase/demo-snippets/index.cjs +1 -0
- package/dist/showcase/demo-snippets/index.d.ts +1 -0
- package/dist/showcase/demo-snippets/index.js +13 -0
- package/dist/showcase/demo-snippets/layout/index.cjs +45 -0
- package/dist/showcase/demo-snippets/layout/index.d.ts +1 -0
- package/dist/showcase/demo-snippets/layout/index.js +9 -0
- package/dist/showcase/demo-snippets/upload/index.cjs +5 -0
- package/dist/showcase/demo-snippets/upload/index.d.ts +1 -0
- package/dist/showcase/demo-snippets/upload/index.js +4 -0
- package/dist/showcase/package-meta.cjs +1 -1
- package/dist/showcase/package-meta.d.ts +3 -3
- package/dist/showcase/package-meta.js +1 -1
- package/dist/showcase/premium/accordion/mock.cjs +1 -1
- package/dist/showcase/premium/accordion/mock.js +1 -1
- package/dist/showcase/premium/avatar/mock.cjs +1 -1
- package/dist/showcase/premium/avatar/mock.js +1 -1
- package/dist/showcase/premium/button/mock.cjs +1 -1
- package/dist/showcase/premium/button/mock.js +1 -1
- package/dist/showcase/premium/calendar-scheduler/mock.cjs +1 -1
- package/dist/showcase/premium/calendar-scheduler/mock.js +1 -1
- package/dist/showcase/premium/carousel/mock.cjs +1 -1
- package/dist/showcase/premium/carousel/mock.js +1 -1
- package/dist/showcase/premium/code-block/mock.cjs +1 -1
- package/dist/showcase/premium/code-block/mock.js +1 -1
- package/dist/showcase/premium/command-bar/mock.cjs +1 -1
- package/dist/showcase/premium/command-bar/mock.js +1 -1
- package/dist/showcase/premium/confirm-dialog/mock.cjs +1 -1
- package/dist/showcase/premium/confirm-dialog/mock.js +1 -1
- package/dist/showcase/premium/copy-button/mock.cjs +1 -1
- package/dist/showcase/premium/copy-button/mock.js +1 -1
- package/dist/showcase/premium/copy-field/mock.cjs +1 -1
- package/dist/showcase/premium/copy-field/mock.js +1 -1
- package/dist/showcase/premium/data-state/mock.cjs +1 -1
- package/dist/showcase/premium/data-state/mock.js +1 -1
- package/dist/showcase/premium/date-picker/mock.cjs +1 -1
- package/dist/showcase/premium/date-picker/mock.js +1 -1
- package/dist/showcase/premium/date-range-picker/mock.cjs +1 -1
- package/dist/showcase/premium/date-range-picker/mock.js +1 -1
- package/dist/showcase/premium/descriptions/mock.cjs +1 -1
- package/dist/showcase/premium/descriptions/mock.js +1 -1
- package/dist/showcase/premium/dialog/mock.cjs +1 -1
- package/dist/showcase/premium/dialog/mock.js +1 -1
- package/dist/showcase/premium/divider/mock.cjs +1 -1
- package/dist/showcase/premium/divider/mock.js +1 -1
- package/dist/showcase/premium/dual-list-picker/mock.cjs +1 -1
- package/dist/showcase/premium/dual-list-picker/mock.js +1 -1
- package/dist/showcase/premium/file-upload/mock.cjs +1 -1
- package/dist/showcase/premium/file-upload/mock.js +1 -1
- package/dist/showcase/premium/image-upload/mock.cjs +1 -1
- package/dist/showcase/premium/image-upload/mock.js +1 -1
- package/dist/showcase/premium/index.cjs +1 -1
- package/dist/showcase/premium/index.js +278 -278
- package/dist/showcase/premium/json-input/mock.cjs +1 -1
- package/dist/showcase/premium/json-input/mock.js +1 -1
- package/dist/showcase/premium/kanban-board/mock.cjs +1 -1
- package/dist/showcase/premium/kanban-board/mock.js +1 -1
- package/dist/showcase/premium/list/mock.cjs +1 -1
- package/dist/showcase/premium/list/mock.js +1 -1
- package/dist/showcase/premium/menubar/mock.cjs +1 -1
- package/dist/showcase/premium/menubar/mock.js +1 -1
- package/dist/showcase/premium/modal-shell/mock.cjs +1 -1
- package/dist/showcase/premium/modal-shell/mock.js +1 -1
- package/dist/showcase/premium/navigation-menu/mock.cjs +1 -1
- package/dist/showcase/premium/navigation-menu/mock.js +1 -1
- package/dist/showcase/premium/property-grid/mock.cjs +1 -1
- package/dist/showcase/premium/property-grid/mock.js +1 -1
- package/dist/showcase/premium/qr-code/mock.cjs +1 -1
- package/dist/showcase/premium/qr-code/mock.js +1 -1
- package/dist/showcase/premium/radio-group/mock.cjs +1 -1
- package/dist/showcase/premium/radio-group/mock.js +1 -1
- package/dist/showcase/premium/resizable-panel/mock.cjs +1 -1
- package/dist/showcase/premium/resizable-panel/mock.js +1 -1
- package/dist/showcase/premium/rich-text-editor/mock.cjs +1 -1
- package/dist/showcase/premium/rich-text-editor/mock.js +1 -1
- package/dist/showcase/premium/saved-filter-select/mock.cjs +1 -1
- package/dist/showcase/premium/saved-filter-select/mock.js +1 -1
- package/dist/showcase/premium/section/mock.cjs +1 -1
- package/dist/showcase/premium/section/mock.js +1 -1
- package/dist/showcase/premium/segmented-control/mock.cjs +1 -1
- package/dist/showcase/premium/segmented-control/mock.js +1 -1
- package/dist/showcase/premium/sheet-shell/mock.cjs +1 -1
- package/dist/showcase/premium/sheet-shell/mock.js +1 -1
- package/dist/showcase/premium/skeleton/mock.cjs +1 -1
- package/dist/showcase/premium/skeleton/mock.js +1 -1
- package/dist/showcase/premium/spinner/mock.cjs +1 -1
- package/dist/showcase/premium/spinner/mock.js +1 -1
- package/dist/showcase/premium/statistic/mock.cjs +1 -1
- package/dist/showcase/premium/statistic/mock.js +1 -1
- package/dist/showcase/premium/sticky-footer-bar/mock.cjs +1 -1
- package/dist/showcase/premium/sticky-footer-bar/mock.js +1 -1
- package/dist/showcase/premium/tag/mock.cjs +1 -1
- package/dist/showcase/premium/tag/mock.js +1 -1
- package/dist/showcase/premium/time-picker/mock.cjs +1 -1
- package/dist/showcase/premium/time-picker/mock.js +1 -1
- package/dist/showcase/premium/tour/mock.cjs +1 -1
- package/dist/showcase/premium/tour/mock.js +1 -1
- package/dist/showcase/premium/tree-view/mock.cjs +1 -1
- package/dist/showcase/premium/tree-view/mock.js +1 -1
- package/dist/showcase/premium/typography/mock.cjs +1 -1
- package/dist/showcase/premium/typography/mock.js +1 -1
- package/dist/showcase/site-data.cjs +1 -1
- package/dist/showcase/site-data.js +1 -1
- package/dist/showcase/tembro-registry.json.cjs +1 -1
- package/dist/showcase/tembro-registry.json.js +1 -1
- package/package.json +6 -1
- package/packages/cli/dist/index.cjs +36 -36
- package/packages/cli/vendor/src/components/charts/charts.tsx +59 -22
- package/packages/cli/vendor/src/components/charts/horizontal-bar-chart.tsx +34 -20
- package/packages/cli/vendor/src/components/data-table/demo.tsx +31 -2
- package/packages/cli/vendor/src/showcase/create-demo.tsx +8 -160
- package/packages/cli/vendor/src/showcase/demo-snippets/actions/index.ts +70 -0
- package/packages/cli/vendor/src/showcase/demo-snippets/forms/index.ts +31 -0
- package/packages/cli/vendor/src/showcase/demo-snippets/index.ts +11 -0
- package/packages/cli/vendor/src/showcase/demo-snippets/layout/index.ts +50 -0
- package/packages/cli/vendor/src/showcase/demo-snippets/upload/index.ts +7 -0
- package/packages/cli/vendor/src/showcase/package-meta.ts +2 -2
- package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/avatar/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/button/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/calendar-scheduler/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/carousel/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/code-block/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/command-bar/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/confirm-dialog/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/copy-button/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/copy-field/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/data-state/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/date-picker/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/date-range-picker/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/descriptions/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/dialog/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/divider/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/dual-list-picker/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/file-upload/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/image-upload/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/json-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/kanban-board/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/list/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/menubar/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/modal-shell/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/navigation-menu/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/property-grid/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/qr-code/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/radio-group/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/resizable-panel/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/rich-text-editor/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/saved-filter-select/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/section/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/segmented-control/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/sheet-shell/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/skeleton/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/spinner/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/statistic/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/sticky-footer-bar/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/tag/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/time-picker/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/tour/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/tree-view/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/typography/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
- package/registry.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { JsonInput } from "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 \"
|
|
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 "
|
|
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 (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/spinner/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { LoadingOverlay, Spinner } from \"
|
|
3
|
+
code: "import { LoadingOverlay, Spinner } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-4\">\n <Spinner size=\"sm\" label=\"Refreshing\" />\n\n <LoadingOverlay loading label=\"Saving changes\">\n <div className=\"rounded-xl border p-6\">Content under save</div>\n </LoadingOverlay>\n </div>\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add spinner",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Inline spinner plus overlay mode from the same export",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Statistic, StatisticCard, StatisticGrid } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Statistic, StatisticCard, StatisticGrid } from "tembro"
|
|
2
2
|
|
|
3
3
|
export function Example() {
|
|
4
4
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/statistic/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Statistic, StatisticCard, StatisticGrid } from \"
|
|
3
|
+
code: "import { Statistic, StatisticCard, StatisticGrid } from \"tembro\"\n\nexport function Example() {\n return (\n <StatisticGrid columns={3}>\n <StatisticCard label=\"Revenue\" value=\"$24.8k\" change=\"+12.4%\" trend=\"up\" />\n <StatisticCard label=\"Errors\" value=\"14\" change=\"-3.1%\" trend=\"down\" />\n <StatisticCard label=\"Conversion\" value=\"6.3%\" description=\"vs last 30 days\" />\n </StatisticGrid>\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add statistic",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Single statistic, statistic card and grid exports work together",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, StickyFooterBar } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, StickyFooterBar } from "tembro"
|
|
2
2
|
|
|
3
3
|
export function Example() {
|
|
4
4
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/sticky-footer-bar/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Button, StickyFooterBar } from \"
|
|
3
|
+
code: "import { Button, StickyFooterBar } from \"tembro\"\n\nexport function Example() {\n return (\n <StickyFooterBar\n start={<span className=\"text-sm\">Unsaved changes</span>}\n end={\n <>\n <Button size=\"sm\" variant=\"outline\">Discard</Button>\n <Button size=\"sm\">Save</Button>\n </>\n }\n />\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add sticky-footer-bar",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Sticky bottom action bar with start/end slots",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/tag/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Tag } from \"
|
|
3
|
+
code: "import { Tag } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"flex flex-wrap gap-2\">\n <Tag tone=\"success\">Online</Tag>\n <Tag tone=\"warning\">Review</Tag>\n <Tag tone=\"danger\" removable>\n Remove me\n </Tag>\n </div>\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add tag",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Semantic tones for state and status information",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DateTimePicker, TimePicker, TimeRangePicker } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { DateTimePicker, TimePicker, TimeRangePicker } from "tembro"
|
|
2
2
|
|
|
3
3
|
export function Example() {
|
|
4
4
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/time-picker/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { DateTimePicker, TimePicker, TimeRangePicker } from \"
|
|
3
|
+
code: "import { DateTimePicker, TimePicker, TimeRangePicker } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-2\">\n <TimePicker label=\"Start\" value=\"08:30\" />\n <DateTimePicker label=\"Planned at\" value=\"2026-07-07T08:30\" />\n <TimeRangePicker from=\"09:00\" to=\"17:00\" />\n </div>\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add time-picker",
|
|
5
5
|
highlights: ["Time, datetime, and range pickers in one family", "Native input controls with consistent style"],
|
|
6
6
|
scenarios: [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, Tour } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Button, Tour } from "tembro"
|
|
2
2
|
import { useState } from "react"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/tour/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Button, Tour } from \"
|
|
3
|
+
code: "import { Button, Tour } from \"tembro\"\nimport { useState } from \"react\"\n\nexport function Example() {\n const [open, setOpen] = useState(true)\n const [index, setIndex] = useState(0)\n\n return (\n <Tour\n steps={[\n { title: \"Welcome\", description: \"Intro your app flow.\" },\n { title: \"Next\", description: \"Continue to another key step.\" },\n ]}\n index={index}\n onIndexChange={setIndex}\n onClose={() => setOpen(false)}\n />\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add tour",
|
|
5
5
|
highlights: ["Controlled tour state with index-driven steps", "Built-in close handling"],
|
|
6
6
|
scenarios: [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { TreeView } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { TreeView } from "tembro"
|
|
2
2
|
|
|
3
3
|
export function Example() {
|
|
4
4
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/tree-view/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { TreeView } from \"
|
|
3
|
+
code: "import { TreeView } from \"tembro\"\n\nexport function Example() {\n return (\n <TreeView\n items={[\n {\n key: \"ui\",\n label: \"UI\",\n children: [\n { key: \"buttons\", label: \"Buttons\" },\n { key: \"inputs\", label: \"Inputs\" },\n ],\n },\n ]}\n defaultExpandedKeys={[\"ui\"]}\n />\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add tree-view",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Tree data model with nested children",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Blockquote, Heading, Mark, Text } from "
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Blockquote, Heading, Mark, Text } from "tembro"
|
|
2
2
|
|
|
3
3
|
export function Example() {
|
|
4
4
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/typography/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Blockquote, Heading, Mark, Text } from \"
|
|
3
|
+
code: "import { Blockquote, Heading, Mark, Text } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-2\">\n <Heading level={3}>Product page</Heading>\n <Text muted>\n <Mark>Typography</Mark> is part of every polished UI.\n </Text>\n <Blockquote>Keep hierarchy tight, readable, and reusable.</Blockquote>\n </div>\n )\n}",
|
|
4
4
|
cliCommand: "npx tembro add typography",
|
|
5
5
|
highlights: [
|
|
6
6
|
"Heading hierarchy",
|