tembro 2.1.7 → 2.1.9

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 (192) hide show
  1. package/dist/components/form/form-date-range-input.cjs +1 -1
  2. package/dist/components/form/form-date-range-input.d.ts +1 -1
  3. package/dist/components/form/form-date-range-input.js +1 -1
  4. package/dist/components/form/form-input.cjs +1 -1
  5. package/dist/components/form/form-input.d.ts +7 -7
  6. package/dist/components/form/form-input.js +11 -11
  7. package/dist/components/inputs/index.cjs +1 -1
  8. package/dist/components/inputs/index.d.ts +0 -14
  9. package/dist/components/inputs/index.js +9 -23
  10. package/dist/components/inputs/public.cjs +1 -1
  11. package/dist/components/inputs/public.d.ts +0 -14
  12. package/dist/components/inputs/public.js +9 -23
  13. package/dist/components/ui/input/chrome.cjs +1 -0
  14. package/dist/components/{inputs/input-chrome.js → ui/input/chrome.js} +2 -2
  15. package/dist/components/ui/input/clearable.cjs +1 -0
  16. package/dist/components/{inputs/clearable-input.d.ts → ui/input/clearable.d.ts} +1 -1
  17. package/dist/components/{inputs/clearable-input.js → ui/input/clearable.js} +4 -4
  18. package/dist/components/{inputs/date-range-input.cjs → ui/input/date-range.cjs} +1 -1
  19. package/dist/components/{inputs/date-range-input.d.ts → ui/input/date-range.d.ts} +1 -1
  20. package/dist/components/{inputs/date-range-input.js → ui/input/date-range.js} +3 -3
  21. package/dist/components/ui/input/date.cjs +1 -0
  22. package/dist/components/{inputs/date-input.d.ts → ui/input/date.d.ts} +1 -1
  23. package/dist/components/{inputs/date-input.js → ui/input/date.js} +3 -3
  24. package/dist/components/ui/input/decorator.cjs +1 -0
  25. package/dist/components/{inputs/input-decorator.js → ui/input/decorator.js} +3 -3
  26. package/dist/components/ui/input/index.cjs +1 -1
  27. package/dist/components/ui/input/index.d.ts +10 -10
  28. package/dist/components/ui/input/index.js +13 -13
  29. package/dist/components/ui/input/masked.cjs +1 -0
  30. package/dist/components/{inputs/masked-input.d.ts → ui/input/masked.d.ts} +1 -1
  31. package/dist/components/{inputs/masked-input.js → ui/input/masked.js} +3 -3
  32. package/dist/components/ui/input/money.cjs +1 -0
  33. package/dist/components/{inputs/money-input.js → ui/input/money.js} +5 -5
  34. package/dist/components/ui/input/number.cjs +1 -0
  35. package/dist/components/{inputs/number-input.d.ts → ui/input/number.d.ts} +1 -1
  36. package/dist/components/{inputs/number-input.js → ui/input/number.js} +3 -3
  37. package/dist/components/{inputs → ui/input}/numeric-value.js +1 -1
  38. package/dist/components/ui/input/password.cjs +1 -0
  39. package/dist/components/{inputs/password-input.d.ts → ui/input/password.d.ts} +1 -1
  40. package/dist/components/{inputs/password-input.js → ui/input/password.js} +2 -2
  41. package/dist/components/ui/input/phone.cjs +1 -0
  42. package/dist/components/{inputs/phone-input.d.ts → ui/input/phone.d.ts} +1 -1
  43. package/dist/components/{inputs/phone-input.js → ui/input/phone.js} +2 -2
  44. package/dist/components/ui/input/quantity.cjs +1 -0
  45. package/dist/components/{inputs/quantity-input.js → ui/input/quantity.js} +6 -6
  46. package/dist/components/ui/input/search.cjs +1 -0
  47. package/dist/components/{inputs/search-input.d.ts → ui/input/search.d.ts} +1 -1
  48. package/dist/components/{inputs/search-input.js → ui/input/search.js} +2 -2
  49. package/dist/components/{inputs/input-value.js → ui/input/value.js} +1 -1
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.js +124 -138
  52. package/dist/public-component-surface.cjs +1 -1
  53. package/dist/public-component-surface.js +0 -5
  54. package/dist/showcase/fallback.cjs +3 -3
  55. package/dist/showcase/fallback.js +119 -118
  56. package/dist/showcase/premium/combobox/mock.cjs +4 -3
  57. package/dist/showcase/premium/combobox/mock.js +2 -2
  58. package/dist/showcase/premium/combobox/showcase.cjs +1 -1
  59. package/dist/showcase/premium/combobox/showcase.js +2 -2
  60. package/dist/showcase/premium/date-input/mock.cjs +4 -3
  61. package/dist/showcase/premium/date-input/mock.js +2 -2
  62. package/dist/showcase/premium/date-input/showcase.cjs +1 -1
  63. package/dist/showcase/premium/date-input/showcase.js +2 -1
  64. package/dist/showcase/premium/date-range-input/mock.cjs +4 -3
  65. package/dist/showcase/premium/date-range-input/mock.js +2 -2
  66. package/dist/showcase/premium/date-range-input/showcase.cjs +1 -1
  67. package/dist/showcase/premium/date-range-input/showcase.js +2 -1
  68. package/dist/showcase/premium/masked-input/mock.cjs +4 -3
  69. package/dist/showcase/premium/masked-input/mock.js +2 -2
  70. package/dist/showcase/premium/masked-input/showcase.cjs +1 -1
  71. package/dist/showcase/premium/masked-input/showcase.js +2 -1
  72. package/dist/showcase/premium/money-input/mock.cjs +4 -3
  73. package/dist/showcase/premium/money-input/mock.js +2 -2
  74. package/dist/showcase/premium/money-input/showcase.cjs +1 -1
  75. package/dist/showcase/premium/money-input/showcase.js +2 -1
  76. package/dist/showcase/premium/number-input/mock.cjs +5 -7
  77. package/dist/showcase/premium/number-input/mock.js +2 -2
  78. package/dist/showcase/premium/number-input/showcase.cjs +1 -1
  79. package/dist/showcase/premium/number-input/showcase.js +2 -1
  80. package/dist/showcase/premium/password-input/mock.cjs +3 -2
  81. package/dist/showcase/premium/password-input/mock.js +1 -1
  82. package/dist/showcase/premium/password-input/showcase.cjs +1 -1
  83. package/dist/showcase/premium/password-input/showcase.js +2 -1
  84. package/dist/showcase/premium/phone-input/mock.cjs +5 -4
  85. package/dist/showcase/premium/phone-input/mock.js +2 -2
  86. package/dist/showcase/premium/phone-input/showcase.cjs +1 -1
  87. package/dist/showcase/premium/phone-input/showcase.js +2 -1
  88. package/dist/showcase/premium/quantity-input/mock.cjs +4 -3
  89. package/dist/showcase/premium/quantity-input/mock.js +2 -2
  90. package/dist/showcase/premium/quantity-input/showcase.cjs +1 -1
  91. package/dist/showcase/premium/quantity-input/showcase.js +2 -1
  92. package/dist/showcase/premium/search-input/mock.cjs +3 -2
  93. package/dist/showcase/premium/search-input/mock.js +1 -1
  94. package/dist/showcase/premium/search-input/showcase.cjs +1 -1
  95. package/dist/showcase/premium/search-input/showcase.js +2 -1
  96. package/dist/showcase/premium/simple-select/mock.cjs +3 -3
  97. package/dist/showcase/premium/simple-select/mock.js +2 -2
  98. package/dist/showcase/premium/simple-select/showcase.cjs +1 -1
  99. package/dist/showcase/premium/simple-select/showcase.js +1 -1
  100. package/dist/showcase/registry-specific.cjs +1 -1
  101. package/dist/showcase/registry-specific.js +92 -92
  102. package/dist/showcase/render-registry-preview.cjs +1 -1
  103. package/dist/showcase/render-registry-preview.js +214 -215
  104. package/dist/showcase/site-data.cjs +1 -1
  105. package/dist/showcase/site-data.js +1 -24
  106. package/dist/showcase/tembro-registry.json.cjs +1 -1
  107. package/dist/showcase/tembro-registry.json.js +20 -16
  108. package/package.json +1 -1
  109. package/packages/cli/dist/index.cjs +43 -43
  110. package/packages/cli/vendor/src/components/form/form-date-range-input.tsx +5 -5
  111. package/packages/cli/vendor/src/components/form/form-input.tsx +7 -7
  112. package/packages/cli/vendor/src/components/inputs/index.ts +0 -14
  113. package/packages/cli/vendor/src/components/inputs/public.ts +0 -19
  114. package/packages/cli/vendor/src/components/{inputs/clearable-input.tsx → ui/input/clearable.tsx} +2 -2
  115. package/packages/cli/vendor/src/components/{inputs/date-range-input.tsx → ui/input/date-range.tsx} +1 -1
  116. package/packages/cli/vendor/src/components/{inputs/date-input.tsx → ui/input/date.tsx} +2 -2
  117. package/packages/cli/vendor/src/components/ui/input/index.tsx +11 -11
  118. package/packages/cli/vendor/src/components/{inputs/masked-input.tsx → ui/input/masked.tsx} +2 -2
  119. package/packages/cli/vendor/src/components/{inputs/money-input.tsx → ui/input/money.tsx} +3 -3
  120. package/packages/cli/vendor/src/components/{inputs/number-input.tsx → ui/input/number.tsx} +3 -3
  121. package/packages/cli/vendor/src/components/{inputs/password-input.tsx → ui/input/password.tsx} +1 -1
  122. package/packages/cli/vendor/src/components/{inputs/phone-input.tsx → ui/input/phone.tsx} +1 -1
  123. package/packages/cli/vendor/src/components/{inputs/quantity-input.tsx → ui/input/quantity.tsx} +3 -3
  124. package/packages/cli/vendor/src/components/{inputs/search-input.tsx → ui/input/search.tsx} +1 -1
  125. package/packages/cli/vendor/src/public-component-surface.ts +0 -1
  126. package/packages/cli/vendor/src/showcase/fallback.tsx +4 -6
  127. package/packages/cli/vendor/src/showcase/premium/combobox/mock.ts +4 -3
  128. package/packages/cli/vendor/src/showcase/premium/combobox/showcase.tsx +3 -3
  129. package/packages/cli/vendor/src/showcase/premium/date-input/mock.ts +4 -3
  130. package/packages/cli/vendor/src/showcase/premium/date-input/showcase.tsx +3 -2
  131. package/packages/cli/vendor/src/showcase/premium/date-range-input/mock.ts +4 -3
  132. package/packages/cli/vendor/src/showcase/premium/date-range-input/showcase.tsx +3 -2
  133. package/packages/cli/vendor/src/showcase/premium/masked-input/mock.ts +4 -3
  134. package/packages/cli/vendor/src/showcase/premium/masked-input/showcase.tsx +3 -2
  135. package/packages/cli/vendor/src/showcase/premium/money-input/mock.ts +4 -3
  136. package/packages/cli/vendor/src/showcase/premium/money-input/showcase.tsx +3 -2
  137. package/packages/cli/vendor/src/showcase/premium/number-input/mock.ts +5 -7
  138. package/packages/cli/vendor/src/showcase/premium/number-input/showcase.tsx +2 -2
  139. package/packages/cli/vendor/src/showcase/premium/password-input/mock.ts +3 -2
  140. package/packages/cli/vendor/src/showcase/premium/password-input/showcase.tsx +3 -2
  141. package/packages/cli/vendor/src/showcase/premium/phone-input/mock.ts +5 -4
  142. package/packages/cli/vendor/src/showcase/premium/phone-input/showcase.tsx +4 -3
  143. package/packages/cli/vendor/src/showcase/premium/quantity-input/mock.ts +4 -3
  144. package/packages/cli/vendor/src/showcase/premium/quantity-input/showcase.tsx +3 -2
  145. package/packages/cli/vendor/src/showcase/premium/search-input/mock.ts +3 -2
  146. package/packages/cli/vendor/src/showcase/premium/search-input/showcase.tsx +3 -2
  147. package/packages/cli/vendor/src/showcase/premium/simple-select/mock.ts +3 -3
  148. package/packages/cli/vendor/src/showcase/premium/simple-select/showcase.tsx +3 -3
  149. package/packages/cli/vendor/src/showcase/registry-specific.tsx +1 -2
  150. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +2 -4
  151. package/packages/cli/vendor/src/showcase/site-data.tsx +26 -0
  152. package/packages/cli/vendor/src/showcase/tembro-registry.json +18 -12
  153. package/registry.json +18 -12
  154. package/dist/components/inputs/clearable-input.cjs +0 -1
  155. package/dist/components/inputs/color-input.cjs +0 -1
  156. package/dist/components/inputs/color-input.d.ts +0 -11
  157. package/dist/components/inputs/color-input.js +0 -42
  158. package/dist/components/inputs/combobox.cjs +0 -1
  159. package/dist/components/inputs/combobox.d.ts +0 -29
  160. package/dist/components/inputs/combobox.js +0 -113
  161. package/dist/components/inputs/date-input.cjs +0 -1
  162. package/dist/components/inputs/input-chrome.cjs +0 -1
  163. package/dist/components/inputs/input-decorator.cjs +0 -1
  164. package/dist/components/inputs/masked-input.cjs +0 -1
  165. package/dist/components/inputs/money-input.cjs +0 -1
  166. package/dist/components/inputs/number-input.cjs +0 -1
  167. package/dist/components/inputs/password-input.cjs +0 -1
  168. package/dist/components/inputs/phone-input.cjs +0 -1
  169. package/dist/components/inputs/quantity-input.cjs +0 -1
  170. package/dist/components/inputs/quantity-stepper.cjs +0 -1
  171. package/dist/components/inputs/quantity-stepper.d.ts +0 -12
  172. package/dist/components/inputs/quantity-stepper.js +0 -52
  173. package/dist/components/inputs/search-input.cjs +0 -1
  174. package/dist/components/inputs/simple-select.cjs +0 -1
  175. package/dist/components/inputs/simple-select.d.ts +0 -13
  176. package/dist/components/inputs/simple-select.js +0 -8
  177. package/packages/cli/vendor/src/components/inputs/color-input.tsx +0 -49
  178. package/packages/cli/vendor/src/components/inputs/combobox.tsx +0 -180
  179. package/packages/cli/vendor/src/components/inputs/quantity-stepper.tsx +0 -51
  180. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +0 -23
  181. /package/dist/components/{inputs/input-chrome.d.ts → ui/input/chrome.d.ts} +0 -0
  182. /package/dist/components/{inputs/input-decorator.d.ts → ui/input/decorator.d.ts} +0 -0
  183. /package/dist/components/{inputs/money-input.d.ts → ui/input/money.d.ts} +0 -0
  184. /package/dist/components/{inputs → ui/input}/numeric-value.cjs +0 -0
  185. /package/dist/components/{inputs → ui/input}/numeric-value.d.ts +0 -0
  186. /package/dist/components/{inputs/quantity-input.d.ts → ui/input/quantity.d.ts} +0 -0
  187. /package/dist/components/{inputs/input-value.cjs → ui/input/value.cjs} +0 -0
  188. /package/dist/components/{inputs/input-value.d.ts → ui/input/value.d.ts} +0 -0
  189. /package/packages/cli/vendor/src/components/{inputs/input-chrome.tsx → ui/input/chrome.tsx} +0 -0
  190. /package/packages/cli/vendor/src/components/{inputs/input-decorator.tsx → ui/input/decorator.tsx} +0 -0
  191. /package/packages/cli/vendor/src/components/{inputs → ui/input}/numeric-value.ts +0 -0
  192. /package/packages/cli/vendor/src/components/{inputs/input-value.ts → ui/input/value.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  //#region src/showcase/premium/simple-select/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { Button, SimpleSelect } from \"tembro\"\n\nconst selectOptions = [\n { value: \"public\", label: \"Public\", disabled: false },\n { value: \"private\", label: \"Private\", disabled: false },\n { value: \"internal\", label: \"Internal\", disabled: false },\n { value: \"archived\", label: \"Archived\", disabled: true },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"private\")\n\n return (\n <div className=\"space-y-3\">\n <SimpleSelect\n options={selectOptions}\n value={value}\n onValueChange={(nextValue) => setValue(nextValue ?? \"private\")}\n placeholder=\"Visibility\"\n size=\"sm\"\n />\n <div className=\"rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm aui-text-muted\">\n Current visibility: <strong>{value}</strong>\n </div>\n <Button variant=\"outline\" onClick={() => setValue(\"public\")}>Reset public</Button>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { Button, Select } from \"tembro\"\n\nconst selectOptions = [\n { value: \"public\", label: \"Public\", disabled: false },\n { value: \"private\", label: \"Private\", disabled: false },\n { value: \"internal\", label: \"Internal\", disabled: false },\n { value: \"archived\", label: \"Archived\", disabled: true },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"private\")\n\n return (\n <div className=\"space-y-3\">\n <Select\n options={selectOptions}\n value={value}\n onValueChange={(nextValue) => setValue(nextValue ?? \"private\")}\n placeholder=\"Visibility\"\n size=\"sm\"\n />\n <div className=\"rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm aui-text-muted\">\n Current visibility: <strong>{value}</strong>\n </div>\n <Button variant=\"outline\" onClick={() => setValue(\"public\")}>Reset public</Button>\n </div>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"simple-select-trigger\">Open options</button>",
5
- cliCommand: "npx tembro add simple-select",
5
+ cliCommand: "npx tembro add select",
6
6
  highlights: [
7
7
  "Controlled usage",
8
8
  "Static options",
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/inputs/simple-select.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.SimpleSelect,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0,showSelectedDescription:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.SimpleSelect,{defaultValue:`public`,options:d,showSelectedDescription:!0},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/ui/select/index.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.Select,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0,showSelectedDescription:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.Select,{defaultValue:`public`,options:d,showSelectedDescription:!0},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
@@ -1,6 +1,6 @@
1
1
  import { Button as e } from "../../../components/ui/button/index.js";
2
2
  import { Badge as t } from "../../../components/ui/badge/index.js";
3
- import { SimpleSelect as n } from "../../../components/inputs/simple-select.js";
3
+ import { Select as n } from "../../../components/ui/select/index.js";
4
4
  import { routeSimpleSelectOptions as r } from "../../component-route-data.js";
5
5
  import { useState as i } from "react";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../components/ui/button/index.cjs"),n=require("../components/actions/action-menu.cjs"),r=require("../components/actions/button-group.cjs"),i=require("../components/inputs/password-input.cjs"),a=require("../components/ui/input/index.cjs"),o=require("../components/ui/badge/index.cjs"),s=require("../components/ui/select/index.cjs"),c=require("../components/actions/quick-action-grid.cjs"),ee=require("../components/layout/section-header.cjs"),l=require("../components/navigation/nav-tabs.cjs"),u=require("../components/navigation/page-tabs.cjs"),d=require("../components/navigation/pagination.cjs"),f=require("../components/navigation/stepper-tabs.cjs"),p=require("../components/filters/filter-bar.cjs"),m=require("../components/filters/saved-filter-select.cjs"),te=require("../components/overlay/alert-dialog.cjs"),h=require("../components/overlay/drawer.cjs"),g=require("../components/inputs/async-select.cjs"),_=require("../components/inputs/otp-input.cjs"),v=require("../components/inputs/rating.cjs"),y=require("../components/inputs/slider.cjs"),ne=require("../components/inputs/tag-input.cjs"),b=require("../components/feedback/alert.cjs"),x=require("../components/feedback/page-state.cjs"),S=require("../components/display/description-list.cjs"),C=require("../components/display/list.cjs"),w=require("../components/display/progress.cjs"),T=require("../components/display/progress-circle.cjs"),E=require("../components/display/status-dot.cjs"),D=require("../components/display/status-legend.cjs"),O=require("../components/display/timeline.cjs"),k=require("../components/display/user-card.cjs"),A=require("../components/layout/stat-card.cjs"),j=require("../components/display/smart-card.cjs"),M=require("../components/calendar/calendar.cjs"),N=require("../components/upload/file-upload.cjs"),P=require("../components/upload/image-upload.cjs"),F=require("../components/upload/file-dropzone.cjs"),I=require("../components/wizard/stepper.cjs"),L=require("../components/wizard/wizard.cjs"),R=require("../components/layout/app-header.cjs"),z=require("../components/patterns/resource-detail-page.cjs"),B=require("../components/patterns/resource-page.cjs");let V=require("react");V=e.__toESM(V,1);let H=require("lucide-react"),U=require("react/jsx-runtime");var W=[K(`alert-dialog`,`AlertDialog`,`overlay`,`Destructive confirmation dialog with loading-ready action states.`),K(`drawer`,`Drawer`,`overlay`,`Side panel for contextual details without leaving the page.`),K(`pagination`,`Pagination`,`navigation`,`Controlled page navigation with edge buttons and active state.`),K(`nav-tabs`,`NavTabs`,`navigation`,`Navigation tabs for switching related document sections.`),K(`search-input`,`SearchInput`,`inputs`,`Search field with icon, count, shortcut and debounce-friendly value handling.`),K(`password-input`,`PasswordInput`,`inputs`,`Password field with visibility toggle and secure autocomplete defaults.`),K(`slider`,`Slider`,`inputs`,`Single value range control for density, threshold, and score tuning.`),K(`range-slider`,`RangeSlider`,`inputs`,`Two-handle slider for min/max filtering.`),K(`rating`,`Rating`,`inputs`,`Compact score input for feedback and review flows.`),K(`otp-input`,`OtpInput`,`inputs`,`One-time code entry with fixed-length slots.`),K(`tag-input`,`TagInput`,`inputs`,`Tokenized text input for labels, skills, and quick filters.`),K(`progress`,`Progress`,`display`,`Linear progress with label, value formatter, tone and indeterminate state.`),K(`progress-circle`,`ProgressCircle`,`display`,`Compact circular progress for sidebars and status cards.`),K(`timeline`,`Timeline`,`display`,`Vertical or horizontal event stream for workflow history.`),K(`status-dot`,`StatusDot`,`display`,`Tiny live status indicator with optional pulse animation.`),K(`user-card`,`UserCard`,`display`,`User summary row with avatar, metadata and actions.`),K(`notification-center`,`NotificationCenter`,`display`,`Compact activity and notifications stream.`),K(`data-list`,`DataList`,`display`,`Readable title and description rows for compact operational lists.`),K(`status-legend`,`StatusLegend`,`display`,`Explain status meaning and counts in a compact legend.`),K(`trend-card`,`TrendCard`,`display`,`Metric summary card with trend context.`),K(`action-menu`,`ActionMenu`,`actions`,`Compact dropdown action menu for rows and cards.`),K(`button-group`,`ButtonGroup`,`actions`,`Grouped action buttons for view switching and compact controls.`),K(`quick-action-grid`,`QuickActionGrid`,`actions`,`Action launcher grid for dense dashboard shortcuts.`),K(`app-header`,`AppHeader`,`layout`,`Sticky product header with left, center and right slots.`),K(`section-header`,`SectionHeader`,`layout`,`Reusable section title block with actions and metadata.`),K(`stat-card`,`StatCard`,`layout`,`Dashboard stat card for KPI, trend and helper text.`),K(`filter-bar`,`FilterBar`,`actions`,`Search, filters, active-count and reset actions in one toolbar.`),K(`page-tabs`,`PageTabs`,`navigation`,`Top-level page tab strip for route-sized sections.`),K(`stepper-tabs`,`StepperTabs`,`navigation`,`Step-like tabs for setup and onboarding progress.`),K(`alert`,`Alert`,`feedback`,`Inline feedback banner for success, warning, info, and error states.`),K(`page-state`,`PageState`,`feedback`,`Full-page completion or blocked state with next actions.`),K(`calendar`,`Calendar`,`calendar`,`Single month calendar surface for date picker and scheduling flows.`),K(`file-upload`,`FileUpload`,`upload`,`Full file upload surface with dropzone, action button and helper text.`),K(`image-upload`,`ImageUpload`,`upload`,`Image upload pattern with preview-oriented copy.`,`ImageUpload`),K(`file-dropzone`,`FileDropzone`,`upload`,`Lightweight file dropzone primitive for custom upload flows.`),K(`stepper`,`Stepper`,`wizard`,`Clickable step navigation for multi-step forms.`),K(`wizard`,`Wizard`,`wizard`,`Stepper, content and footer controls combined into one workflow.`),K(`resource-page`,`ResourcePage`,`patterns`,`Full resource index page shell for admin dashboards.`),K(`resource-detail-page`,`ResourceDetailPage`,`patterns`,`Detail page shell with title, metadata and sections.`)],G=Object.fromEntries(W.map(e=>[e.slug,{mock:q(e),Showcase:t=>(0,U.jsx)(Y,{definition:e,...t})}]));function K(e,t,n,r,i=t){let a=me(e);return{slug:e,title:a,component:t,kind:n,summary:r,importName:i,highlights:[`${a} uses the real ${t} surface.`,`CLI, import and preview stay scoped to this component.`,`Preview wrappers stay light so the component UI remains visible.`],scenarios:[{title:`Use when`,description:r},{title:`Implementation`,description:`Add ${e}, import ${i}, then pass controlled props where the API requires state.`}]}}function q(e){return{cliCommand:`npx tembro add ${e.slug}`,code:J(e),highlights:e.highlights,scenarios:e.scenarios,capabilityNotes:[`Add ${e.slug} into your local source with the CLI.`,"Import the public component surface from `tembro` in app code."]}}function J(e){let t=e.importName??e.component;return`import { ${t} } from "tembro"\n\nexport function Demo() {\n return <${t} />\n}`}function Y({definition:e,state:t,setState:n}){return(0,U.jsxs)(`div`,{className:`space-y-5`,children:[(0,U.jsxs)(`header`,{className:`space-y-2`,children:[(0,U.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:e.component}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`aui-text-strong text-2xl font-semibold tracking-tight`,children:e.title}),(0,U.jsx)(`p`,{className:`aui-text-muted mt-2 max-w-2xl text-sm leading-6`,children:e.summary})]})]}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5`,children:X(e,t,n)})]})}function X(e,t,n){return e.kind===`inputs`?(0,U.jsx)(Z,{slug:e.slug,state:t,setState:n}):e.kind===`form`?(0,U.jsx)(re,{state:t,setState:n}):e.kind===`overlay`?(0,U.jsx)(ie,{slug:e.slug}):e.kind===`navigation`?(0,U.jsx)(ae,{slug:e.slug}):e.kind===`feedback`?(0,U.jsx)(oe,{slug:e.slug}):e.kind===`display`?(0,U.jsx)(se,{slug:e.slug}):e.kind===`actions`?(0,U.jsx)(Q,{slug:e.slug,state:t,setState:n}):e.kind===`layout`?(0,U.jsx)(ce,{slug:e.slug}):e.kind===`data-table`?(0,U.jsx)(le,{slug:e.slug}):e.kind===`calendar`?(0,U.jsx)(ue,{}):e.kind===`upload`?(0,U.jsx)(de,{slug:e.slug}):e.kind===`wizard`?(0,U.jsx)(fe,{slug:e.slug}):e.kind===`patterns`?(0,U.jsx)(pe,{slug:e.slug}):null}function Z({slug:e,state:t,setState:n}){let r=t.textValue,o=e=>n({textValue:e});if(e===`search-input`)return(0,U.jsx)(a.Input,{type:`search`,value:r,onValueChange:o,resultCount:12,shortcut:`Ctrl K`,placeholder:`Search customers...`});if(e===`password-input`)return(0,U.jsx)(i.PasswordInput,{value:`secret-token`,onValueChange:o,placeholder:`Password`});if(e===`slider`)return(0,U.jsx)(y.Slider,{label:`Density`,description:`Tune content density.`,defaultValue:64,showValue:!0});if(e===`range-slider`)return(0,U.jsx)(y.RangeSlider,{label:`Revenue range`,description:`Filter between two values.`,defaultValue:[20,80],showValue:!0});if(e===`rating`)return(0,U.jsx)(v.Rating,{defaultValue:4,labels:{clear:`Reset`}});if(e===`otp-input`)return(0,U.jsx)(_.OtpInput,{value:r.replace(/\D/g,``).slice(0,6),onValueChange:o});if(e===`tag-input`)return(0,U.jsx)(ne.TagInput,{defaultValue:[`dashboard`,`beta`,`ops`],placeholder:`Add label`});if(e===`simple-select`)return(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(s.Select,{value:`private`,onValueChange:()=>void 0,options:[{value:`public`,label:`Public`,description:`Visible to all users`},{value:`private`,label:`Private`,description:`Restricted to invited members`},{value:`internal`,label:`Internal`,description:`Only workspace maintainers`},{value:`archived`,label:`Archived`,description:`History only`,disabled:!0}],placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Static options with lightweight search.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Clear action stays inside the trigger surface.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use before moving to AsyncSelect.`})]})]});if(e===`async-select`){let e=[{value:`north`,label:`North Region`,description:`Sales ops`},{value:`south`,label:`South Region`,description:`Support team`},{value:`west`,label:`West Region`,description:`Billing operations`}];return(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(g.AsyncSelect,{value:`north`,onValueChange:()=>void 0,loadOptions:async t=>{let n=t.trim().toLowerCase();return n?e.filter(e=>String(e.label).toLowerCase().includes(n)):e},defaultOptions:e,minSearchLength:1,clearable:!0}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remote-ready select surface.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Hydration and clear behavior stay aligned.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for large or changing datasets.`})]})]})}return(0,U.jsx)(a.Input,{value:r,onChange:e=>n({textValue:e.currentTarget.value}),placeholder:`Unified input`})}function re({state:e,setState:t}){return(0,U.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,U.jsxs)(`label`,{className:`grid gap-2`,children:[(0,U.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Email address`}),(0,U.jsx)(a.Input,{value:e.textValue,onChange:e=>t({textValue:e.currentTarget.value})}),(0,U.jsx)(`span`,{className:`text-xs aui-text-muted`,children:`Form wrappers keep label, hint and error spacing consistent.`})]}),(0,U.jsxs)(`label`,{className:`grid gap-2`,children:[(0,U.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Status`}),(0,U.jsx)(a.Input,{type:`search`,value:`Active customers`,resultCount:7,readOnly:!0}),(0,U.jsx)(`span`,{className:`text-xs text-emerald-500`,children:`Ready to submit`})]})]})}function ie({slug:e}){return e===`alert-dialog`?(0,U.jsx)(te.AlertDialog,{open:!1,title:`Archive invoice?`,description:`This keeps the invoice readable but removes it from active queues.`,children:(0,U.jsx)(t.Button,{variant:`destructive`,children:`Open alert`})}):e===`drawer`?(0,U.jsx)(h.Drawer,{open:!1,trigger:(0,U.jsx)(t.Button,{variant:`outline`,children:`Open drawer`}),title:`Customer details`,description:`Side panel for fast inspection.`,children:(0,U.jsx)(S.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Azamat UI`}]})}):(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,U.jsx)(t.Button,{variant:`ghost`,children:`Cancel`}),(0,U.jsx)(t.Button,{variant:`outline`,children:`Save draft`}),(0,U.jsx)(t.Button,{children:`Publish`})]})}function ae({slug:e}){return e===`pagination`?(0,U.jsx)(d.Pagination,{page:3,pageCount:9,onPageChange:()=>void 0}):e===`page-tabs`?(0,U.jsx)(u.PageTabs,{value:`overview`,variant:`pills`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`,badge:`3`}]}):e===`stepper-tabs`?(0,U.jsx)(f.StepperTabs,{value:`billing`,items:[{value:`profile`,label:`Profile`,description:`Team and owner details`,completed:!0},{value:`billing`,label:`Billing`,description:`Payment and invoices`},{value:`review`,label:`Review`,description:`Confirm release`}]}):(0,U.jsx)(l.NavTabs,{value:`overview`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`}]})}function oe({slug:e}){return e===`alert`?(0,U.jsx)(b.Alert,{tone:`warning`,title:`Review needed`,description:`Billing rules changed and one approval is pending.`,action:(0,U.jsx)(t.Button,{size:`sm`,children:`Open`})}):e===`page-state`?(0,U.jsx)(x.PageState,{title:`Workspace connected`,description:`The route is ready to accept live data and team actions.`,tone:`success`,action:(0,U.jsx)(t.Button,{size:`sm`,children:`Continue`})}):(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,U.jsx)($,{tone:`success`,children:`Live`}),(0,U.jsx)($,{tone:`warning`,children:`Needs review`}),(0,U.jsx)($,{tone:`danger`,children:`Blocked`}),(0,U.jsx)($,{tone:`info`,children:`Queued`})]})}function se({slug:e}){return e===`progress`?(0,U.jsx)(w.Progress,{label:`Migration progress`,description:`Production rollout`,value:68,tone:`success`,showValue:!0}):e===`progress-circle`?(0,U.jsx)(T.ProgressCircle,{value:72,label:`Profile completed`}):e===`timeline`?(0,U.jsx)(O.Timeline,{items:[{key:`created`,title:`Created`,description:`Invoice generated`,time:`09:20`,tone:`success`},{key:`review`,title:`Review`,description:`Finance team assigned`,time:`10:05`,tone:`info`},{key:`approve`,title:`Approval`,description:`Waiting for manager`,time:`Now`,tone:`warning`}],pending:!0,pendingLabel:`Paid`}):e===`metric-card`||e===`stat-card`?(0,U.jsx)(A.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,U.jsx)(H.LayoutDashboardIcon,{})}):e===`status-dot`?(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(E.StatusDot,{tone:`success`,pulse:!0,label:`API healthy`}),(0,U.jsx)(E.StatusDot,{tone:`warning`,label:`Sync delayed`}),(0,U.jsx)(E.StatusDot,{tone:`danger`,label:`Webhook failed`})]}):e===`notification-center`?(0,U.jsx)(C.List,{items:[{key:`1`,title:`Build completed`,description:`Dashboard docs deployment is live.`,extra:`Now`},{key:`2`,title:`New comment`,description:`Review requested on DataTable API.`,extra:`8m`},{key:`3`,title:`Publish reminder`,description:`Package version is ready for release.`,extra:`1h`}]}):e===`data-list`?(0,U.jsx)(C.List,{items:[{key:`1`,title:`Enterprise plan`,description:`Priority support and SSO`,extra:`$499`},{key:`2`,title:`Growth plan`,description:`Most used by product teams`,extra:`$199`},{key:`3`,title:`Starter plan`,description:`Lightweight team setup`,extra:`$49`}]}):e===`status-legend`?(0,U.jsx)(D.StatusLegend,{title:`Delivery states`,description:`Explain what each state means and how often it appears.`,orientation:`grid`,items:[{key:`live`,label:`Live`,description:`Healthy production routes`,tone:`success`,count:18},{key:`review`,label:`Review`,description:`Waiting for QA approval`,tone:`warning`,count:4},{key:`blocked`,label:`Blocked`,description:`Needs engineering action`,tone:`danger`,count:1}]}):e===`trend-card`?(0,U.jsx)(A.StatCard,{title:e===`trend-card`?`Weekly revenue`:`Current vs previous`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,U.jsx)(H.LayoutDashboardIcon,{})}):e===`info-card`?(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(j.SmartCard,{eyebrow:`Summary`,title:`Workspace`,description:`Reusable card surface with header, actions and metadata.`,actions:(0,U.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Open`}),selected:!0,children:(0,U.jsx)(`p`,{className:`aui-text-muted mt-2 text-sm`,children:`Keep metadata, helper copy and compact actions in one reusable card surface.`})}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Vertical and horizontal layout support.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Selected and action-safe surfaces.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful for summary panels and detail sidebars.`})]})]}):(0,U.jsx)(k.UserCard,{name:`Azamat Jurayev`,description:`Product designer and maintainer`,meta:`Admin workspace`,actions:(0,U.jsx)(t.Button,{size:`sm`,children:`Invite`})})}function Q({slug:e,state:i,setState:o}){return e===`filter-bar`?(0,U.jsx)(p.FilterBar,{search:(0,U.jsx)(a.Input,{type:`search`,value:i.textValue,onValueChange:e=>o({textValue:e}),placeholder:`Search invoices...`}),activeCount:2,onReset:()=>o({textValue:``}),filters:(0,U.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,U.jsx)(H.FilterIcon,{"data-icon":`inline-start`}),`Status`]}),actions:(0,U.jsx)(t.Button,{size:`sm`,children:`Export`})}):e===`button-group`?(0,U.jsx)(r.ButtonGroup,{items:[{key:`day`,label:`Day`},{key:`week`,label:`Week`},{key:`month`,label:`Month`}]}):e===`quick-action-grid`?(0,U.jsx)(c.QuickActionGrid,{columns:3,items:[{key:`new`,label:`New invoice`,description:`Create a fresh billing row.`,badge:`N`},{key:`import`,label:`Import CSV`,description:`Bring finance data into the table.`,badge:`I`},{key:`share`,label:`Share workspace`,description:`Invite team members to the route.`,badge:`S`}]}):e===`saved-filter-select`?(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(m.SavedFilterSelect,{value:`billing`,onValueChange:()=>void 0,onSave:()=>void 0,onDelete:()=>void 0,filters:[{value:`billing`,label:`Billing`,description:`Invoices and payment status`},{value:`ops`,label:`Operations`,description:`Queues and workload`},{value:`owners`,label:`Owner: Azamat`,description:`Assigned records only`}]}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Named view switching for table routes.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Delete action stays isolated from parent selection.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful in finance, ops and admin dashboards.`})]})]}):(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Invoice #4821`}),(0,U.jsx)(`p`,{className:`text-sm aui-text-muted`,children:`Pending approval`})]}),(0,U.jsx)(n.ActionMenu,{label:`Actions`,actions:[{key:`open`,label:`Open`,icon:(0,U.jsx)(H.ChevronRightIcon,{className:`size-4`})},{key:`download`,label:`Download`,icon:(0,U.jsx)(H.DownloadIcon,{className:`size-4`})},{key:`archive`,label:`Archive`,icon:(0,U.jsx)(H.ArchiveIcon,{className:`size-4`}),destructive:!0}],trigger:(0,U.jsx)(t.Button,{variant:`outline`,size:`icon-sm`,"aria-label":`Open actions`,children:(0,U.jsx)(H.MoreHorizontalIcon,{})})})]})}function ce({slug:e}){return e===`app-header`?(0,U.jsx)(R.AppHeader,{sticky:!1,left:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(H.LayoutDashboardIcon,{className:`size-4`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Dashboard`})]}),center:(0,U.jsx)(o.Badge,{variant:`secondary`,children:`Preview`}),right:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Notifications`,children:(0,U.jsx)(H.BellIcon,{})}),(0,U.jsx)(t.Button,{size:`sm`,children:`Deploy`})]}),className:`rounded-xl border border-[color:var(--aui-divider)]`}):e===`section-header`?(0,U.jsx)(ee.SectionHeader,{eyebrow:`Components`,title:`Production-ready surfaces`,description:`SectionHeader keeps copy, metadata and actions aligned.`,actions:(0,U.jsx)(t.Button,{size:`sm`,children:`Add component`})}):(0,U.jsx)(A.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},helperText:`StatCard keeps KPI, helper text and trend in one compact tile.`})}function le({slug:e}){return(0,U.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-[color:var(--aui-divider)] p-3`,children:[(0,U.jsx)(a.Input,{type:`search`,value:``,placeholder:`Search rows...`,className:`max-w-xs`,readOnly:!0}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,U.jsx)(H.FilterIcon,{"data-icon":`inline-start`}),`Filters`]}),(0,U.jsx)(t.Button,{size:`sm`,children:`Create`})]})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] border-b border-[color:var(--aui-divider)] px-3 py-2 text-xs font-semibold uppercase tracking-[0.18em] aui-text-muted`,children:[(0,U.jsx)(`span`,{children:(0,U.jsx)(`input`,{type:`checkbox`,"aria-label":`Select rows`})}),(0,U.jsx)(`span`,{children:`Name`}),(0,U.jsx)(`span`,{children:`Status`}),(0,U.jsx)(`span`,{children:`Actions`})]}),[`Azamat UI`,`Registry`,`Dashboard`].map((e,n)=>(0,U.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] items-center border-b border-[color:var(--aui-divider)] px-3 py-3 last:border-b-0`,children:[(0,U.jsx)(`span`,{children:(0,U.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e}`,defaultChecked:n===0})}),(0,U.jsx)(`span`,{className:`font-medium aui-text-strong`,children:e}),(0,U.jsx)(`span`,{children:(0,U.jsx)($,{tone:n===2?`warning`:`success`,children:n===2?`Review`:`Live`})}),(0,U.jsx)(`span`,{children:(0,U.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Row actions`,children:(0,U.jsx)(H.MoreHorizontalIcon,{})})})]},e)),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-[color:var(--aui-divider)] p-3 text-sm aui-text-muted`,children:[(0,U.jsxs)(`span`,{children:[{"data-table-column-visibility-menu":`Column visibility`,"data-table-sortable-header":`Sortable header`,"data-table-bulk-actions":`Bulk action bar`,"data-table-view-presets":`Saved view presets`}[e]??`DataTable part`,` preview`]}),(0,U.jsx)(d.Pagination,{page:1,pageCount:4,onPageChange:()=>void 0,showEdges:!1})]})]})}function ue(){return(0,U.jsx)(M.Calendar,{value:`2026-06-18`,defaultMonth:`2026-06-01`,onValueChange:()=>void 0})}function de({slug:e}){return e===`file-dropzone`?(0,U.jsx)(F.FileDropzone,{label:`Drop contract files`,description:`PDF, PNG or CSV up to 10MB.`}):e===`file-upload`?(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(N.FileUpload,{dropzoneLabel:`Upload documents`,dropzoneDescription:`Drag files here or choose from your device.`,buttonLabel:`Choose files`,helperText:`Supports PDF, CSV and images.`}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Dropzone click and nested actions stay isolated.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Rejected states and helper copy live in the same component.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use for production file routes, not just decorative previews.`})]})]}):e===`image-upload`?(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[(0,U.jsx)(P.ImageUpload,{dropzoneLabel:`Upload product image`,helperText:`Preview-friendly upload for gallery and hero assets.`}),(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Image preview is part of the reusable component.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remove action stays separate from the parent dropzone surface.`}),(0,U.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for template thumbnails and marketing assets.`})]})]}):(0,U.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-[160px_1fr] md:items-center`,children:[(0,U.jsx)(`div`,{className:`flex aspect-square items-center justify-center rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:(0,U.jsx)(H.UploadCloudIcon,{className:`size-8 aui-text-muted`})}),(0,U.jsx)(F.FileDropzone,{label:`Upload product image`,description:`Shows the image-upload flow without custom CSS.`,accept:`image/*`})]})}function fe({slug:e}){let t=[{id:`profile`,title:`Profile`,description:`Account details`,completed:!0},{id:`billing`,title:`Billing`,description:`Payment setup`},{id:`review`,title:`Review`,description:`Confirm data`}];return e===`stepper`?(0,U.jsx)(I.Stepper,{steps:t,currentStep:`billing`,onStepChange:()=>void 0}):(0,U.jsx)(L.Wizard,{steps:t,currentStep:`billing`,onNext:()=>void 0,onPrevious:()=>void 0,onFinish:()=>void 0,children:(0,U.jsxs)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,U.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Billing setup`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm aui-text-muted`,children:`Wizard combines steps, content and footer controls.`})]})})}function pe({slug:e}){return e===`resource-detail-page`?(0,U.jsx)(z.ResourceDetailPage,{title:`Customer profile`,description:`ResourceDetailPage organizes detail screens.`,actions:(0,U.jsx)(t.Button,{size:`sm`,children:`Edit`}),children:(0,U.jsx)(B.ResourcePageSection,{title:`Account`,children:(0,U.jsx)(S.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Design team`}]})})}):(0,U.jsx)(B.ResourcePage,{title:`Customers`,description:`ResourcePage combines header, stats, filters and sections.`,actions:(0,U.jsx)(t.Button,{size:`sm`,children:`New customer`}),stats:(0,U.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,U.jsx)(A.StatCard,{title:`Active`,value:`2,418`,trend:{value:`+8%`,tone:`success`}}),(0,U.jsx)(A.StatCard,{title:`Health`,value:`94%`,trend:{value:`Stable`,tone:`info`}})]}),filters:(0,U.jsx)(p.FilterBar,{search:(0,U.jsx)(a.Input,{type:`search`,value:``,placeholder:`Search...`,readOnly:!0}),activeCount:1}),children:(0,U.jsx)(B.ResourcePageSection,{title:`Recent activity`,children:(0,U.jsx)(O.Timeline,{items:[{key:`a`,title:`Customer added`,description:`Acme workspace`,tone:`success`},{key:`b`,title:`Plan updated`,description:`Scale plan enabled`,tone:`info`}]})})})}function me(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function $({tone:e,children:t}){return(0,U.jsx)(o.Badge,{variant:{success:`secondary`,warning:`outline`,danger:`destructive`,info:`outline`}[e],children:t})}exports.registrySpecificDemoRegistry=G;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../components/ui/button/index.cjs"),n=require("../components/actions/action-menu.cjs"),r=require("../components/actions/button-group.cjs"),i=require("../components/ui/input/index.cjs"),a=require("../components/ui/badge/index.cjs"),o=require("../components/ui/select/index.cjs"),s=require("../components/actions/quick-action-grid.cjs"),c=require("../components/layout/section-header.cjs"),l=require("../components/navigation/nav-tabs.cjs"),u=require("../components/navigation/page-tabs.cjs"),d=require("../components/navigation/pagination.cjs"),f=require("../components/navigation/stepper-tabs.cjs"),p=require("../components/filters/filter-bar.cjs"),m=require("../components/filters/saved-filter-select.cjs"),h=require("../components/overlay/alert-dialog.cjs"),g=require("../components/overlay/drawer.cjs"),ee=require("../components/inputs/async-select.cjs"),_=require("../components/inputs/otp-input.cjs"),v=require("../components/inputs/rating.cjs"),y=require("../components/inputs/slider.cjs"),te=require("../components/inputs/tag-input.cjs"),ne=require("../components/feedback/alert.cjs"),b=require("../components/feedback/page-state.cjs"),x=require("../components/display/description-list.cjs"),S=require("../components/display/list.cjs"),C=require("../components/display/progress.cjs"),w=require("../components/display/progress-circle.cjs"),T=require("../components/display/status-dot.cjs"),E=require("../components/display/status-legend.cjs"),D=require("../components/display/timeline.cjs"),O=require("../components/display/user-card.cjs"),k=require("../components/layout/stat-card.cjs"),A=require("../components/display/smart-card.cjs"),j=require("../components/calendar/calendar.cjs"),M=require("../components/upload/file-upload.cjs"),N=require("../components/upload/image-upload.cjs"),P=require("../components/upload/file-dropzone.cjs"),F=require("../components/wizard/stepper.cjs"),I=require("../components/wizard/wizard.cjs"),L=require("../components/layout/app-header.cjs"),R=require("../components/patterns/resource-detail-page.cjs"),z=require("../components/patterns/resource-page.cjs");let B=require("react");B=e.__toESM(B,1);let V=require("lucide-react"),H=require("react/jsx-runtime");var U=[G(`alert-dialog`,`AlertDialog`,`overlay`,`Destructive confirmation dialog with loading-ready action states.`),G(`drawer`,`Drawer`,`overlay`,`Side panel for contextual details without leaving the page.`),G(`pagination`,`Pagination`,`navigation`,`Controlled page navigation with edge buttons and active state.`),G(`nav-tabs`,`NavTabs`,`navigation`,`Navigation tabs for switching related document sections.`),G(`search-input`,`SearchInput`,`inputs`,`Search field with icon, count, shortcut and debounce-friendly value handling.`),G(`password-input`,`PasswordInput`,`inputs`,`Password field with visibility toggle and secure autocomplete defaults.`),G(`slider`,`Slider`,`inputs`,`Single value range control for density, threshold, and score tuning.`),G(`range-slider`,`RangeSlider`,`inputs`,`Two-handle slider for min/max filtering.`),G(`rating`,`Rating`,`inputs`,`Compact score input for feedback and review flows.`),G(`otp-input`,`OtpInput`,`inputs`,`One-time code entry with fixed-length slots.`),G(`tag-input`,`TagInput`,`inputs`,`Tokenized text input for labels, skills, and quick filters.`),G(`progress`,`Progress`,`display`,`Linear progress with label, value formatter, tone and indeterminate state.`),G(`progress-circle`,`ProgressCircle`,`display`,`Compact circular progress for sidebars and status cards.`),G(`timeline`,`Timeline`,`display`,`Vertical or horizontal event stream for workflow history.`),G(`status-dot`,`StatusDot`,`display`,`Tiny live status indicator with optional pulse animation.`),G(`user-card`,`UserCard`,`display`,`User summary row with avatar, metadata and actions.`),G(`notification-center`,`NotificationCenter`,`display`,`Compact activity and notifications stream.`),G(`data-list`,`DataList`,`display`,`Readable title and description rows for compact operational lists.`),G(`status-legend`,`StatusLegend`,`display`,`Explain status meaning and counts in a compact legend.`),G(`trend-card`,`TrendCard`,`display`,`Metric summary card with trend context.`),G(`action-menu`,`ActionMenu`,`actions`,`Compact dropdown action menu for rows and cards.`),G(`button-group`,`ButtonGroup`,`actions`,`Grouped action buttons for view switching and compact controls.`),G(`quick-action-grid`,`QuickActionGrid`,`actions`,`Action launcher grid for dense dashboard shortcuts.`),G(`app-header`,`AppHeader`,`layout`,`Sticky product header with left, center and right slots.`),G(`section-header`,`SectionHeader`,`layout`,`Reusable section title block with actions and metadata.`),G(`stat-card`,`StatCard`,`layout`,`Dashboard stat card for KPI, trend and helper text.`),G(`filter-bar`,`FilterBar`,`actions`,`Search, filters, active-count and reset actions in one toolbar.`),G(`page-tabs`,`PageTabs`,`navigation`,`Top-level page tab strip for route-sized sections.`),G(`stepper-tabs`,`StepperTabs`,`navigation`,`Step-like tabs for setup and onboarding progress.`),G(`alert`,`Alert`,`feedback`,`Inline feedback banner for success, warning, info, and error states.`),G(`page-state`,`PageState`,`feedback`,`Full-page completion or blocked state with next actions.`),G(`calendar`,`Calendar`,`calendar`,`Single month calendar surface for date picker and scheduling flows.`),G(`file-upload`,`FileUpload`,`upload`,`Full file upload surface with dropzone, action button and helper text.`),G(`image-upload`,`ImageUpload`,`upload`,`Image upload pattern with preview-oriented copy.`,`ImageUpload`),G(`file-dropzone`,`FileDropzone`,`upload`,`Lightweight file dropzone primitive for custom upload flows.`),G(`stepper`,`Stepper`,`wizard`,`Clickable step navigation for multi-step forms.`),G(`wizard`,`Wizard`,`wizard`,`Stepper, content and footer controls combined into one workflow.`),G(`resource-page`,`ResourcePage`,`patterns`,`Full resource index page shell for admin dashboards.`),G(`resource-detail-page`,`ResourceDetailPage`,`patterns`,`Detail page shell with title, metadata and sections.`)],W=Object.fromEntries(U.map(e=>[e.slug,{mock:K(e),Showcase:t=>(0,H.jsx)(J,{definition:e,...t})}]));function G(e,t,n,r,i=t){let a=pe(e);return{slug:e,title:a,component:t,kind:n,summary:r,importName:i,highlights:[`${a} uses the real ${t} surface.`,`CLI, import and preview stay scoped to this component.`,`Preview wrappers stay light so the component UI remains visible.`],scenarios:[{title:`Use when`,description:r},{title:`Implementation`,description:`Add ${e}, import ${i}, then pass controlled props where the API requires state.`}]}}function K(e){return{cliCommand:`npx tembro add ${e.slug}`,code:q(e),highlights:e.highlights,scenarios:e.scenarios,capabilityNotes:[`Add ${e.slug} into your local source with the CLI.`,"Import the public component surface from `tembro` in app code."]}}function q(e){let t=e.importName??e.component;return`import { ${t} } from "tembro"\n\nexport function Demo() {\n return <${t} />\n}`}function J({definition:e,state:t,setState:n}){return(0,H.jsxs)(`div`,{className:`space-y-5`,children:[(0,H.jsxs)(`header`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:e.component}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h3`,{className:`aui-text-strong text-2xl font-semibold tracking-tight`,children:e.title}),(0,H.jsx)(`p`,{className:`aui-text-muted mt-2 max-w-2xl text-sm leading-6`,children:e.summary})]})]}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5`,children:Y(e,t,n)})]})}function Y(e,t,n){return e.kind===`inputs`?(0,H.jsx)(X,{slug:e.slug,state:t,setState:n}):e.kind===`form`?(0,H.jsx)(Z,{state:t,setState:n}):e.kind===`overlay`?(0,H.jsx)(re,{slug:e.slug}):e.kind===`navigation`?(0,H.jsx)(ie,{slug:e.slug}):e.kind===`feedback`?(0,H.jsx)(ae,{slug:e.slug}):e.kind===`display`?(0,H.jsx)(oe,{slug:e.slug}):e.kind===`actions`?(0,H.jsx)(se,{slug:e.slug,state:t,setState:n}):e.kind===`layout`?(0,H.jsx)(Q,{slug:e.slug}):e.kind===`data-table`?(0,H.jsx)(ce,{slug:e.slug}):e.kind===`calendar`?(0,H.jsx)(le,{}):e.kind===`upload`?(0,H.jsx)(ue,{slug:e.slug}):e.kind===`wizard`?(0,H.jsx)(de,{slug:e.slug}):e.kind===`patterns`?(0,H.jsx)(fe,{slug:e.slug}):null}function X({slug:e,state:t,setState:n}){let r=t.textValue,a=e=>n({textValue:e});if(e===`search-input`)return(0,H.jsx)(i.Input,{type:`search`,value:r,onValueChange:a,resultCount:12,shortcut:`Ctrl K`,placeholder:`Search customers...`});if(e===`password-input`)return(0,H.jsx)(i.Input,{kind:`password`,value:`secret-token`,onValueChange:a,placeholder:`Password`});if(e===`slider`)return(0,H.jsx)(y.Slider,{label:`Density`,description:`Tune content density.`,defaultValue:64,showValue:!0});if(e===`range-slider`)return(0,H.jsx)(y.RangeSlider,{label:`Revenue range`,description:`Filter between two values.`,defaultValue:[20,80],showValue:!0});if(e===`rating`)return(0,H.jsx)(v.Rating,{defaultValue:4,labels:{clear:`Reset`}});if(e===`otp-input`)return(0,H.jsx)(_.OtpInput,{value:r.replace(/\D/g,``).slice(0,6),onValueChange:a});if(e===`tag-input`)return(0,H.jsx)(te.TagInput,{defaultValue:[`dashboard`,`beta`,`ops`],placeholder:`Add label`});if(e===`simple-select`)return(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(o.Select,{value:`private`,onValueChange:()=>void 0,options:[{value:`public`,label:`Public`,description:`Visible to all users`},{value:`private`,label:`Private`,description:`Restricted to invited members`},{value:`internal`,label:`Internal`,description:`Only workspace maintainers`},{value:`archived`,label:`Archived`,description:`History only`,disabled:!0}],placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Static options with lightweight search.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Clear action stays inside the trigger surface.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use before moving to AsyncSelect.`})]})]});if(e===`async-select`){let e=[{value:`north`,label:`North Region`,description:`Sales ops`},{value:`south`,label:`South Region`,description:`Support team`},{value:`west`,label:`West Region`,description:`Billing operations`}];return(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(ee.AsyncSelect,{value:`north`,onValueChange:()=>void 0,loadOptions:async t=>{let n=t.trim().toLowerCase();return n?e.filter(e=>String(e.label).toLowerCase().includes(n)):e},defaultOptions:e,minSearchLength:1,clearable:!0}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remote-ready select surface.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Hydration and clear behavior stay aligned.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for large or changing datasets.`})]})]})}return(0,H.jsx)(i.Input,{value:r,onChange:e=>n({textValue:e.currentTarget.value}),placeholder:`Unified input`})}function Z({state:e,setState:t}){return(0,H.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,H.jsxs)(`label`,{className:`grid gap-2`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Email address`}),(0,H.jsx)(i.Input,{value:e.textValue,onChange:e=>t({textValue:e.currentTarget.value})}),(0,H.jsx)(`span`,{className:`text-xs aui-text-muted`,children:`Form wrappers keep label, hint and error spacing consistent.`})]}),(0,H.jsxs)(`label`,{className:`grid gap-2`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Status`}),(0,H.jsx)(i.Input,{type:`search`,value:`Active customers`,resultCount:7,readOnly:!0}),(0,H.jsx)(`span`,{className:`text-xs text-emerald-500`,children:`Ready to submit`})]})]})}function re({slug:e}){return e===`alert-dialog`?(0,H.jsx)(h.AlertDialog,{open:!1,title:`Archive invoice?`,description:`This keeps the invoice readable but removes it from active queues.`,children:(0,H.jsx)(t.Button,{variant:`destructive`,children:`Open alert`})}):e===`drawer`?(0,H.jsx)(g.Drawer,{open:!1,trigger:(0,H.jsx)(t.Button,{variant:`outline`,children:`Open drawer`}),title:`Customer details`,description:`Side panel for fast inspection.`,children:(0,H.jsx)(x.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Azamat UI`}]})}):(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,H.jsx)(t.Button,{variant:`ghost`,children:`Cancel`}),(0,H.jsx)(t.Button,{variant:`outline`,children:`Save draft`}),(0,H.jsx)(t.Button,{children:`Publish`})]})}function ie({slug:e}){return e===`pagination`?(0,H.jsx)(d.Pagination,{page:3,pageCount:9,onPageChange:()=>void 0}):e===`page-tabs`?(0,H.jsx)(u.PageTabs,{value:`overview`,variant:`pills`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`,badge:`3`}]}):e===`stepper-tabs`?(0,H.jsx)(f.StepperTabs,{value:`billing`,items:[{value:`profile`,label:`Profile`,description:`Team and owner details`,completed:!0},{value:`billing`,label:`Billing`,description:`Payment and invoices`},{value:`review`,label:`Review`,description:`Confirm release`}]}):(0,H.jsx)(l.NavTabs,{value:`overview`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`}]})}function ae({slug:e}){return e===`alert`?(0,H.jsx)(ne.Alert,{tone:`warning`,title:`Review needed`,description:`Billing rules changed and one approval is pending.`,action:(0,H.jsx)(t.Button,{size:`sm`,children:`Open`})}):e===`page-state`?(0,H.jsx)(b.PageState,{title:`Workspace connected`,description:`The route is ready to accept live data and team actions.`,tone:`success`,action:(0,H.jsx)(t.Button,{size:`sm`,children:`Continue`})}):(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)($,{tone:`success`,children:`Live`}),(0,H.jsx)($,{tone:`warning`,children:`Needs review`}),(0,H.jsx)($,{tone:`danger`,children:`Blocked`}),(0,H.jsx)($,{tone:`info`,children:`Queued`})]})}function oe({slug:e}){return e===`progress`?(0,H.jsx)(C.Progress,{label:`Migration progress`,description:`Production rollout`,value:68,tone:`success`,showValue:!0}):e===`progress-circle`?(0,H.jsx)(w.ProgressCircle,{value:72,label:`Profile completed`}):e===`timeline`?(0,H.jsx)(D.Timeline,{items:[{key:`created`,title:`Created`,description:`Invoice generated`,time:`09:20`,tone:`success`},{key:`review`,title:`Review`,description:`Finance team assigned`,time:`10:05`,tone:`info`},{key:`approve`,title:`Approval`,description:`Waiting for manager`,time:`Now`,tone:`warning`}],pending:!0,pendingLabel:`Paid`}):e===`metric-card`||e===`stat-card`?(0,H.jsx)(k.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,H.jsx)(V.LayoutDashboardIcon,{})}):e===`status-dot`?(0,H.jsxs)(`div`,{className:`grid gap-3`,children:[(0,H.jsx)(T.StatusDot,{tone:`success`,pulse:!0,label:`API healthy`}),(0,H.jsx)(T.StatusDot,{tone:`warning`,label:`Sync delayed`}),(0,H.jsx)(T.StatusDot,{tone:`danger`,label:`Webhook failed`})]}):e===`notification-center`?(0,H.jsx)(S.List,{items:[{key:`1`,title:`Build completed`,description:`Dashboard docs deployment is live.`,extra:`Now`},{key:`2`,title:`New comment`,description:`Review requested on DataTable API.`,extra:`8m`},{key:`3`,title:`Publish reminder`,description:`Package version is ready for release.`,extra:`1h`}]}):e===`data-list`?(0,H.jsx)(S.List,{items:[{key:`1`,title:`Enterprise plan`,description:`Priority support and SSO`,extra:`$499`},{key:`2`,title:`Growth plan`,description:`Most used by product teams`,extra:`$199`},{key:`3`,title:`Starter plan`,description:`Lightweight team setup`,extra:`$49`}]}):e===`status-legend`?(0,H.jsx)(E.StatusLegend,{title:`Delivery states`,description:`Explain what each state means and how often it appears.`,orientation:`grid`,items:[{key:`live`,label:`Live`,description:`Healthy production routes`,tone:`success`,count:18},{key:`review`,label:`Review`,description:`Waiting for QA approval`,tone:`warning`,count:4},{key:`blocked`,label:`Blocked`,description:`Needs engineering action`,tone:`danger`,count:1}]}):e===`trend-card`?(0,H.jsx)(k.StatCard,{title:e===`trend-card`?`Weekly revenue`:`Current vs previous`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,H.jsx)(V.LayoutDashboardIcon,{})}):e===`info-card`?(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(A.SmartCard,{eyebrow:`Summary`,title:`Workspace`,description:`Reusable card surface with header, actions and metadata.`,actions:(0,H.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Open`}),selected:!0,children:(0,H.jsx)(`p`,{className:`aui-text-muted mt-2 text-sm`,children:`Keep metadata, helper copy and compact actions in one reusable card surface.`})}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Vertical and horizontal layout support.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Selected and action-safe surfaces.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful for summary panels and detail sidebars.`})]})]}):(0,H.jsx)(O.UserCard,{name:`Azamat Jurayev`,description:`Product designer and maintainer`,meta:`Admin workspace`,actions:(0,H.jsx)(t.Button,{size:`sm`,children:`Invite`})})}function se({slug:e,state:a,setState:o}){return e===`filter-bar`?(0,H.jsx)(p.FilterBar,{search:(0,H.jsx)(i.Input,{type:`search`,value:a.textValue,onValueChange:e=>o({textValue:e}),placeholder:`Search invoices...`}),activeCount:2,onReset:()=>o({textValue:``}),filters:(0,H.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,H.jsx)(V.FilterIcon,{"data-icon":`inline-start`}),`Status`]}),actions:(0,H.jsx)(t.Button,{size:`sm`,children:`Export`})}):e===`button-group`?(0,H.jsx)(r.ButtonGroup,{items:[{key:`day`,label:`Day`},{key:`week`,label:`Week`},{key:`month`,label:`Month`}]}):e===`quick-action-grid`?(0,H.jsx)(s.QuickActionGrid,{columns:3,items:[{key:`new`,label:`New invoice`,description:`Create a fresh billing row.`,badge:`N`},{key:`import`,label:`Import CSV`,description:`Bring finance data into the table.`,badge:`I`},{key:`share`,label:`Share workspace`,description:`Invite team members to the route.`,badge:`S`}]}):e===`saved-filter-select`?(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(m.SavedFilterSelect,{value:`billing`,onValueChange:()=>void 0,onSave:()=>void 0,onDelete:()=>void 0,filters:[{value:`billing`,label:`Billing`,description:`Invoices and payment status`},{value:`ops`,label:`Operations`,description:`Queues and workload`},{value:`owners`,label:`Owner: Azamat`,description:`Assigned records only`}]}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Named view switching for table routes.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Delete action stays isolated from parent selection.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful in finance, ops and admin dashboards.`})]})]}):(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Invoice #4821`}),(0,H.jsx)(`p`,{className:`text-sm aui-text-muted`,children:`Pending approval`})]}),(0,H.jsx)(n.ActionMenu,{label:`Actions`,actions:[{key:`open`,label:`Open`,icon:(0,H.jsx)(V.ChevronRightIcon,{className:`size-4`})},{key:`download`,label:`Download`,icon:(0,H.jsx)(V.DownloadIcon,{className:`size-4`})},{key:`archive`,label:`Archive`,icon:(0,H.jsx)(V.ArchiveIcon,{className:`size-4`}),destructive:!0}],trigger:(0,H.jsx)(t.Button,{variant:`outline`,size:`icon-sm`,"aria-label":`Open actions`,children:(0,H.jsx)(V.MoreHorizontalIcon,{})})})]})}function Q({slug:e}){return e===`app-header`?(0,H.jsx)(L.AppHeader,{sticky:!1,left:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(V.LayoutDashboardIcon,{className:`size-4`}),(0,H.jsx)(`span`,{className:`font-medium`,children:`Dashboard`})]}),center:(0,H.jsx)(a.Badge,{variant:`secondary`,children:`Preview`}),right:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Notifications`,children:(0,H.jsx)(V.BellIcon,{})}),(0,H.jsx)(t.Button,{size:`sm`,children:`Deploy`})]}),className:`rounded-xl border border-[color:var(--aui-divider)]`}):e===`section-header`?(0,H.jsx)(c.SectionHeader,{eyebrow:`Components`,title:`Production-ready surfaces`,description:`SectionHeader keeps copy, metadata and actions aligned.`,actions:(0,H.jsx)(t.Button,{size:`sm`,children:`Add component`})}):(0,H.jsx)(k.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},helperText:`StatCard keeps KPI, helper text and trend in one compact tile.`})}function ce({slug:e}){return(0,H.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-[color:var(--aui-divider)] p-3`,children:[(0,H.jsx)(i.Input,{type:`search`,value:``,placeholder:`Search rows...`,className:`max-w-xs`,readOnly:!0}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,H.jsx)(V.FilterIcon,{"data-icon":`inline-start`}),`Filters`]}),(0,H.jsx)(t.Button,{size:`sm`,children:`Create`})]})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] border-b border-[color:var(--aui-divider)] px-3 py-2 text-xs font-semibold uppercase tracking-[0.18em] aui-text-muted`,children:[(0,H.jsx)(`span`,{children:(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":`Select rows`})}),(0,H.jsx)(`span`,{children:`Name`}),(0,H.jsx)(`span`,{children:`Status`}),(0,H.jsx)(`span`,{children:`Actions`})]}),[`Azamat UI`,`Registry`,`Dashboard`].map((e,n)=>(0,H.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] items-center border-b border-[color:var(--aui-divider)] px-3 py-3 last:border-b-0`,children:[(0,H.jsx)(`span`,{children:(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e}`,defaultChecked:n===0})}),(0,H.jsx)(`span`,{className:`font-medium aui-text-strong`,children:e}),(0,H.jsx)(`span`,{children:(0,H.jsx)($,{tone:n===2?`warning`:`success`,children:n===2?`Review`:`Live`})}),(0,H.jsx)(`span`,{children:(0,H.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Row actions`,children:(0,H.jsx)(V.MoreHorizontalIcon,{})})})]},e)),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-[color:var(--aui-divider)] p-3 text-sm aui-text-muted`,children:[(0,H.jsxs)(`span`,{children:[{"data-table-column-visibility-menu":`Column visibility`,"data-table-sortable-header":`Sortable header`,"data-table-bulk-actions":`Bulk action bar`,"data-table-view-presets":`Saved view presets`}[e]??`DataTable part`,` preview`]}),(0,H.jsx)(d.Pagination,{page:1,pageCount:4,onPageChange:()=>void 0,showEdges:!1})]})]})}function le(){return(0,H.jsx)(j.Calendar,{value:`2026-06-18`,defaultMonth:`2026-06-01`,onValueChange:()=>void 0})}function ue({slug:e}){return e===`file-dropzone`?(0,H.jsx)(P.FileDropzone,{label:`Drop contract files`,description:`PDF, PNG or CSV up to 10MB.`}):e===`file-upload`?(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(M.FileUpload,{dropzoneLabel:`Upload documents`,dropzoneDescription:`Drag files here or choose from your device.`,buttonLabel:`Choose files`,helperText:`Supports PDF, CSV and images.`}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Dropzone click and nested actions stay isolated.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Rejected states and helper copy live in the same component.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use for production file routes, not just decorative previews.`})]})]}):e===`image-upload`?(0,H.jsxs)(`div`,{className:`grid gap-4`,children:[(0,H.jsx)(N.ImageUpload,{dropzoneLabel:`Upload product image`,helperText:`Preview-friendly upload for gallery and hero assets.`}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Image preview is part of the reusable component.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remove action stays separate from the parent dropzone surface.`}),(0,H.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for template thumbnails and marketing assets.`})]})]}):(0,H.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-[160px_1fr] md:items-center`,children:[(0,H.jsx)(`div`,{className:`flex aspect-square items-center justify-center rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:(0,H.jsx)(V.UploadCloudIcon,{className:`size-8 aui-text-muted`})}),(0,H.jsx)(P.FileDropzone,{label:`Upload product image`,description:`Shows the image-upload flow without custom CSS.`,accept:`image/*`})]})}function de({slug:e}){let t=[{id:`profile`,title:`Profile`,description:`Account details`,completed:!0},{id:`billing`,title:`Billing`,description:`Payment setup`},{id:`review`,title:`Review`,description:`Confirm data`}];return e===`stepper`?(0,H.jsx)(F.Stepper,{steps:t,currentStep:`billing`,onStepChange:()=>void 0}):(0,H.jsx)(I.Wizard,{steps:t,currentStep:`billing`,onNext:()=>void 0,onPrevious:()=>void 0,onFinish:()=>void 0,children:(0,H.jsxs)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,H.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Billing setup`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm aui-text-muted`,children:`Wizard combines steps, content and footer controls.`})]})})}function fe({slug:e}){return e===`resource-detail-page`?(0,H.jsx)(R.ResourceDetailPage,{title:`Customer profile`,description:`ResourceDetailPage organizes detail screens.`,actions:(0,H.jsx)(t.Button,{size:`sm`,children:`Edit`}),children:(0,H.jsx)(z.ResourcePageSection,{title:`Account`,children:(0,H.jsx)(x.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Design team`}]})})}):(0,H.jsx)(z.ResourcePage,{title:`Customers`,description:`ResourcePage combines header, stats, filters and sections.`,actions:(0,H.jsx)(t.Button,{size:`sm`,children:`New customer`}),stats:(0,H.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,H.jsx)(k.StatCard,{title:`Active`,value:`2,418`,trend:{value:`+8%`,tone:`success`}}),(0,H.jsx)(k.StatCard,{title:`Health`,value:`94%`,trend:{value:`Stable`,tone:`info`}})]}),filters:(0,H.jsx)(p.FilterBar,{search:(0,H.jsx)(i.Input,{type:`search`,value:``,placeholder:`Search...`,readOnly:!0}),activeCount:1}),children:(0,H.jsx)(z.ResourcePageSection,{title:`Recent activity`,children:(0,H.jsx)(D.Timeline,{items:[{key:`a`,title:`Customer added`,description:`Acme workspace`,tone:`success`},{key:`b`,title:`Plan updated`,description:`Scale plan enabled`,tone:`info`}]})})})}function pe(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function $({tone:e,children:t}){return(0,H.jsx)(a.Badge,{variant:{success:`secondary`,warning:`outline`,danger:`destructive`,info:`outline`}[e],children:t})}exports.registrySpecificDemoRegistry=W;