silvery 0.17.0 → 0.17.2

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 (171) hide show
  1. package/dist/UPNG-AVSMjiFE.mjs +5076 -0
  2. package/dist/UPNG-AVSMjiFE.mjs.map +1 -0
  3. package/dist/__vite-browser-external-2447137e-D3GdsvS_.mjs +6 -0
  4. package/dist/__vite-browser-external-2447137e-D3GdsvS_.mjs.map +1 -0
  5. package/dist/animation-C_PTO0uH.mjs +304 -0
  6. package/dist/animation-C_PTO0uH.mjs.map +1 -0
  7. package/dist/ansi-CXLE_pt1.mjs +71 -0
  8. package/dist/ansi-CXLE_pt1.mjs.map +1 -0
  9. package/dist/ansi-zmNzgkPB.d.mts +49 -0
  10. package/dist/ansi-zmNzgkPB.d.mts.map +1 -0
  11. package/dist/apng-DCWY913R.mjs +3 -0
  12. package/dist/apng-ENBAJk-H.mjs +70 -0
  13. package/dist/apng-ENBAJk-H.mjs.map +1 -0
  14. package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
  15. package/dist/backend-CkIkIHR-.mjs +13396 -0
  16. package/dist/backend-CkIkIHR-.mjs.map +1 -0
  17. package/dist/backends-CkvbG3js.mjs +1181 -0
  18. package/dist/backends-CkvbG3js.mjs.map +1 -0
  19. package/dist/backends-CyJqNLeK.mjs +3 -0
  20. package/dist/chunk-BSw8zbkd.mjs +37 -0
  21. package/dist/cli-B-k7Bm56.mjs +4 -0
  22. package/dist/context-QreF3UHr.mjs +64 -0
  23. package/dist/context-QreF3UHr.mjs.map +1 -0
  24. package/dist/derive-D7bFJdfU.d.mts +28 -0
  25. package/dist/derive-D7bFJdfU.d.mts.map +1 -0
  26. package/dist/devtools-CscuKaDK.mjs +89 -0
  27. package/dist/devtools-CscuKaDK.mjs.map +1 -0
  28. package/dist/devtools-D4oGc6LY.mjs +2 -0
  29. package/dist/eta-DLiVPaSD.mjs +110 -0
  30. package/dist/eta-DLiVPaSD.mjs.map +1 -0
  31. package/dist/flexily-zero-adapter-DmG4Ge8t.mjs +3376 -0
  32. package/dist/flexily-zero-adapter-DmG4Ge8t.mjs.map +1 -0
  33. package/dist/flexily-zero-adapter-GHwEW11s.mjs +2 -0
  34. package/dist/gif-BaJNREpP.mjs +3 -0
  35. package/dist/gif-Bp6fIyN3.mjs +73 -0
  36. package/dist/gif-Bp6fIyN3.mjs.map +1 -0
  37. package/dist/gifenc-GiVCZ9-3.mjs +730 -0
  38. package/dist/gifenc-GiVCZ9-3.mjs.map +1 -0
  39. package/dist/image-Dx7gYjkq.mjs +346 -0
  40. package/dist/image-Dx7gYjkq.mjs.map +1 -0
  41. package/dist/index-CBcSpGSM.d.mts +3416 -0
  42. package/dist/index-CBcSpGSM.d.mts.map +1 -0
  43. package/dist/index-DCVL3jHo.d.mts +634 -0
  44. package/dist/index-DCVL3jHo.d.mts.map +1 -0
  45. package/dist/index-p-wBs_wH.d.mts +175 -0
  46. package/dist/index-p-wBs_wH.d.mts.map +1 -0
  47. package/dist/index.d.mts +7296 -0
  48. package/dist/index.d.mts.map +1 -0
  49. package/dist/index.mjs +9399 -0
  50. package/dist/index.mjs.map +1 -0
  51. package/dist/key-mapping-BsUHe_nk.mjs +3 -0
  52. package/dist/key-mapping-DsyfLEdC.mjs +132 -0
  53. package/dist/key-mapping-DsyfLEdC.mjs.map +1 -0
  54. package/dist/layout-engine-B3dsnVLU.mjs +50 -0
  55. package/dist/layout-engine-B3dsnVLU.mjs.map +1 -0
  56. package/dist/layout-engine-D_lSR4i9.mjs +2 -0
  57. package/dist/multi-progress-C0-rkn86.d.mts +180 -0
  58. package/dist/multi-progress-C0-rkn86.d.mts.map +1 -0
  59. package/dist/multi-progress-CQVB9lES.mjs +219 -0
  60. package/dist/multi-progress-CQVB9lES.mjs.map +1 -0
  61. package/dist/node-Dedx-6xF.mjs +1085 -0
  62. package/dist/node-Dedx-6xF.mjs.map +1 -0
  63. package/dist/pipeline-DDOPrjuY.mjs +4387 -0
  64. package/dist/pipeline-DDOPrjuY.mjs.map +1 -0
  65. package/dist/progress-bar-COPSBlT9.mjs +155 -0
  66. package/dist/progress-bar-COPSBlT9.mjs.map +1 -0
  67. package/dist/reconciler-2lp5VXK7.mjs +16506 -0
  68. package/dist/reconciler-2lp5VXK7.mjs.map +1 -0
  69. package/dist/render-string-BXvxTg5P.mjs +201 -0
  70. package/dist/render-string-BXvxTg5P.mjs.map +1 -0
  71. package/dist/render-string-hvfpVtoP.mjs +2 -0
  72. package/dist/resvg-js-V6oMi8CY.mjs +203 -0
  73. package/dist/resvg-js-V6oMi8CY.mjs.map +1 -0
  74. package/dist/runtime-BjDHNTxJ.mjs +8723 -0
  75. package/dist/runtime-BjDHNTxJ.mjs.map +1 -0
  76. package/dist/runtime.d.mts +2 -0
  77. package/dist/runtime.mjs +3 -0
  78. package/dist/spinner-Cgej6Vnb.d.mts +127 -0
  79. package/dist/spinner-Cgej6Vnb.d.mts.map +1 -0
  80. package/dist/spinner-DSByknyx.mjs +298 -0
  81. package/dist/spinner-DSByknyx.mjs.map +1 -0
  82. package/dist/src-9B5k0JmY.mjs +1629 -0
  83. package/dist/src-9B5k0JmY.mjs.map +1 -0
  84. package/dist/src-C9f3hiVG.mjs +3620 -0
  85. package/dist/src-C9f3hiVG.mjs.map +1 -0
  86. package/dist/src-fJVbhdn-.mjs +816 -0
  87. package/dist/src-fJVbhdn-.mjs.map +1 -0
  88. package/dist/theme.d.mts +115 -0
  89. package/dist/theme.d.mts.map +1 -0
  90. package/dist/theme.mjs +8 -0
  91. package/dist/theme.mjs.map +1 -0
  92. package/dist/types-Bhj5QkIQ.mjs +13 -0
  93. package/dist/types-Bhj5QkIQ.mjs.map +1 -0
  94. package/dist/types-CDgkE-Rw.d.mts +241 -0
  95. package/dist/types-CDgkE-Rw.d.mts.map +1 -0
  96. package/dist/ui/animation.d.mts +2 -0
  97. package/dist/ui/animation.mjs +2 -0
  98. package/dist/ui/ansi.d.mts +2 -0
  99. package/dist/ui/ansi.mjs +2 -0
  100. package/dist/ui/cli.d.mts +5 -0
  101. package/dist/ui/cli.mjs +7 -0
  102. package/dist/ui/display.d.mts +35 -0
  103. package/dist/ui/display.d.mts.map +1 -0
  104. package/dist/ui/display.mjs +123 -0
  105. package/dist/ui/display.mjs.map +1 -0
  106. package/dist/ui/image.d.mts +2 -0
  107. package/dist/ui/image.mjs +2 -0
  108. package/dist/ui/input.d.mts +184 -0
  109. package/dist/ui/input.d.mts.map +1 -0
  110. package/dist/ui/input.mjs +285 -0
  111. package/dist/ui/input.mjs.map +1 -0
  112. package/dist/ui/progress.d.mts +249 -0
  113. package/dist/ui/progress.d.mts.map +1 -0
  114. package/dist/ui/progress.mjs +858 -0
  115. package/dist/ui/progress.mjs.map +1 -0
  116. package/dist/ui/react.d.mts +280 -0
  117. package/dist/ui/react.d.mts.map +1 -0
  118. package/dist/ui/react.mjs +413 -0
  119. package/dist/ui/react.mjs.map +1 -0
  120. package/dist/ui/utils.d.mts +86 -0
  121. package/dist/ui/utils.d.mts.map +1 -0
  122. package/dist/ui/utils.mjs +2 -0
  123. package/dist/ui/wrappers.d.mts +3 -0
  124. package/dist/ui/wrappers.mjs +2 -0
  125. package/dist/ui.d.mts +6 -0
  126. package/dist/ui.mjs +7 -0
  127. package/dist/useLatest-BMIYXd6e.d.mts +154 -0
  128. package/dist/useLatest-BMIYXd6e.d.mts.map +1 -0
  129. package/dist/useLayout-BG2cGl15.mjs +139 -0
  130. package/dist/useLayout-BG2cGl15.mjs.map +1 -0
  131. package/dist/with-text-input-CmHf_9d6.d.mts +284 -0
  132. package/dist/with-text-input-CmHf_9d6.d.mts.map +1 -0
  133. package/dist/wrapper-Dqh0zi2W.mjs +3527 -0
  134. package/dist/wrapper-Dqh0zi2W.mjs.map +1 -0
  135. package/dist/wrappers-hhL8EQ_n.mjs +810 -0
  136. package/dist/wrappers-hhL8EQ_n.mjs.map +1 -0
  137. package/dist/yoga-adapter-BJ9SOhTY.mjs +245 -0
  138. package/dist/yoga-adapter-BJ9SOhTY.mjs.map +1 -0
  139. package/dist/yoga-adapter-Daq6-dw1.mjs +2 -0
  140. package/package.json +48 -75
  141. package/CHANGELOG.md +0 -319
  142. package/dist/chalk.js +0 -4
  143. package/dist/index.js +0 -270
  144. package/dist/ink.js +0 -142
  145. package/dist/runtime.js +0 -135
  146. package/dist/theme.js +0 -7
  147. package/dist/ui/animation.js +0 -3
  148. package/dist/ui/ansi.js +0 -3
  149. package/dist/ui/cli.js +0 -9
  150. package/dist/ui/display.js +0 -4
  151. package/dist/ui/image.js +0 -4
  152. package/dist/ui/input.js +0 -3
  153. package/dist/ui/progress.js +0 -9
  154. package/dist/ui/react.js +0 -4
  155. package/dist/ui/utils.js +0 -3
  156. package/dist/ui/wrappers.js +0 -15
  157. package/dist/ui.js +0 -18
  158. package/src/index.ts +0 -73
  159. package/src/runtime.ts +0 -4
  160. package/src/theme.ts +0 -4
  161. package/src/ui/animation.ts +0 -2
  162. package/src/ui/ansi.ts +0 -2
  163. package/src/ui/cli.ts +0 -3
  164. package/src/ui/display.ts +0 -2
  165. package/src/ui/image.ts +0 -2
  166. package/src/ui/input.ts +0 -2
  167. package/src/ui/progress.ts +0 -2
  168. package/src/ui/react.ts +0 -2
  169. package/src/ui/utils.ts +0 -2
  170. package/src/ui/wrappers.ts +0 -2
  171. package/src/ui.ts +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-fJVbhdn-.mjs","names":["tty"],"sources":["../../../node_modules/.bun/ms@2.1.3/node_modules/ms/index.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/common.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/browser.js","../../../node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js","../../../node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/node.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/index.js"],"sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":";;;;;;CAIA,IAAI,IAAI;CACR,IAAI,IAAI,IAAI;CACZ,IAAI,IAAI,IAAI;CACZ,IAAI,IAAI,IAAI;CACZ,IAAI,IAAI,IAAI;CACZ,IAAI,IAAI,IAAI;;;;;;;;;;;;;;AAgBZ,QAAO,UAAU,SAAU,KAAK,SAAS;AACvC,YAAU,WAAW,EAAE;EACvB,IAAI,OAAO,OAAO;AAClB,MAAI,SAAS,YAAY,IAAI,SAAS,EACpC,QAAO,MAAM,IAAI;WACR,SAAS,YAAY,SAAS,IAAI,CAC3C,QAAO,QAAQ,OAAO,QAAQ,IAAI,GAAG,SAAS,IAAI;AAEpD,QAAM,IAAI,MACR,0DACE,KAAK,UAAU,IAAI,CACtB;;;;;;;;;CAWH,SAAS,MAAM,KAAK;AAClB,QAAM,OAAO,IAAI;AACjB,MAAI,IAAI,SAAS,IACf;EAEF,IAAI,QAAQ,mIAAmI,KAC7I,IACD;AACD,MAAI,CAAC,MACH;EAEF,IAAI,IAAI,WAAW,MAAM,GAAG;AAE5B,WADY,MAAM,MAAM,MAAM,aAAa,EAC3C;GACE,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,IACH,QAAO,IAAI;GACb,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,KACH,QAAO;GACT,QACE;;;;;;;;;;CAYN,SAAS,SAAS,IAAI;EACpB,IAAI,QAAQ,KAAK,IAAI,GAAG;AACxB,MAAI,SAAS,EACX,QAAO,KAAK,MAAM,KAAK,EAAE,GAAG;AAE9B,MAAI,SAAS,EACX,QAAO,KAAK,MAAM,KAAK,EAAE,GAAG;AAE9B,MAAI,SAAS,EACX,QAAO,KAAK,MAAM,KAAK,EAAE,GAAG;AAE9B,MAAI,SAAS,EACX,QAAO,KAAK,MAAM,KAAK,EAAE,GAAG;AAE9B,SAAO,KAAK;;;;;;;;;CAWd,SAAS,QAAQ,IAAI;EACnB,IAAI,QAAQ,KAAK,IAAI,GAAG;AACxB,MAAI,SAAS,EACX,QAAO,OAAO,IAAI,OAAO,GAAG,MAAM;AAEpC,MAAI,SAAS,EACX,QAAO,OAAO,IAAI,OAAO,GAAG,OAAO;AAErC,MAAI,SAAS,EACX,QAAO,OAAO,IAAI,OAAO,GAAG,SAAS;AAEvC,MAAI,SAAS,EACX,QAAO,OAAO,IAAI,OAAO,GAAG,SAAS;AAEvC,SAAO,KAAK;;;;;CAOd,SAAS,OAAO,IAAI,OAAO,GAAG,MAAM;EAClC,IAAI,WAAW,SAAS,IAAI;AAC5B,SAAO,KAAK,MAAM,KAAK,EAAE,GAAG,MAAM,QAAQ,WAAW,MAAM;;;;;;;;;;CC1J7D,SAAS,MAAM,KAAK;AACnB,cAAY,QAAQ;AACpB,cAAY,UAAU;AACtB,cAAY,SAAS;AACrB,cAAY,UAAU;AACtB,cAAY,SAAS;AACrB,cAAY,UAAU;AACtB,cAAY,WAAA,YAAA;AACZ,cAAY,UAAU;AAEtB,SAAO,KAAK,IAAI,CAAC,SAAQ,QAAO;AAC/B,eAAY,OAAO,IAAI;IACtB;;;;AAMF,cAAY,QAAQ,EAAE;AACtB,cAAY,QAAQ,EAAE;;;;;;AAOtB,cAAY,aAAa,EAAE;;;;;;;EAQ3B,SAAS,YAAY,WAAW;GAC/B,IAAI,OAAO;AAEX,QAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,YAAS,QAAQ,KAAK,OAAQ,UAAU,WAAW,EAAE;AACrD,YAAQ;;AAGT,UAAO,YAAY,OAAO,KAAK,IAAI,KAAK,GAAG,YAAY,OAAO;;AAE/D,cAAY,cAAc;;;;;;;;EAS1B,SAAS,YAAY,WAAW;GAC/B,IAAI;GACJ,IAAI,iBAAiB;GACrB,IAAI;GACJ,IAAI;GAEJ,SAAS,MAAM,GAAG,MAAM;AAEvB,QAAI,CAAC,MAAM,QACV;IAGD,MAAM,OAAO;IAGb,MAAM,OAAO,uBAAO,IAAI,MAAM,CAAC;AAE/B,SAAK,OADM,QAAQ,YAAY;AAE/B,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,eAAW;AAEX,SAAK,KAAK,YAAY,OAAO,KAAK,GAAG;AAErC,QAAI,OAAO,KAAK,OAAO,SAEtB,MAAK,QAAQ,KAAK;IAInB,IAAI,QAAQ;AACZ,SAAK,KAAK,KAAK,GAAG,QAAQ,kBAAkB,OAAO,WAAW;AAE7D,SAAI,UAAU,KACb,QAAO;AAER;KACA,MAAM,YAAY,YAAY,WAAW;AACzC,SAAI,OAAO,cAAc,YAAY;MACpC,MAAM,MAAM,KAAK;AACjB,cAAQ,UAAU,KAAK,MAAM,IAAI;AAGjC,WAAK,OAAO,OAAO,EAAE;AACrB;;AAED,YAAO;MACN;AAGF,gBAAY,WAAW,KAAK,MAAM,KAAK;AAGvC,KADc,KAAK,OAAO,YAAY,KAChC,MAAM,MAAM,KAAK;;AAGxB,SAAM,YAAY;AAClB,SAAM,YAAY,YAAY,WAAW;AACzC,SAAM,QAAQ,YAAY,YAAY,UAAU;AAChD,SAAM,SAAS;AACf,SAAM,UAAU,YAAY;AAE5B,UAAO,eAAe,OAAO,WAAW;IACvC,YAAY;IACZ,cAAc;IACd,WAAW;AACV,SAAI,mBAAmB,KACtB,QAAO;AAER,SAAI,oBAAoB,YAAY,YAAY;AAC/C,wBAAkB,YAAY;AAC9B,qBAAe,YAAY,QAAQ,UAAU;;AAG9C,YAAO;;IAER,MAAK,MAAK;AACT,sBAAiB;;IAElB,CAAC;AAGF,OAAI,OAAO,YAAY,SAAS,WAC/B,aAAY,KAAK,MAAM;AAGxB,UAAO;;EAGR,SAAS,OAAO,WAAW,WAAW;GACrC,MAAM,WAAW,YAAY,KAAK,aAAa,OAAO,cAAc,cAAc,MAAM,aAAa,UAAU;AAC/G,YAAS,MAAM,KAAK;AACpB,UAAO;;;;;;;;;EAUR,SAAS,OAAO,YAAY;AAC3B,eAAY,KAAK,WAAW;AAC5B,eAAY,aAAa;AAEzB,eAAY,QAAQ,EAAE;AACtB,eAAY,QAAQ,EAAE;GAEtB,MAAM,SAAS,OAAO,eAAe,WAAW,aAAa,IAC3D,MAAM,CACN,QAAQ,QAAQ,IAAI,CACpB,MAAM,IAAI,CACV,OAAO,QAAQ;AAEjB,QAAK,MAAM,MAAM,MAChB,KAAI,GAAG,OAAO,IACb,aAAY,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;OAEnC,aAAY,MAAM,KAAK,GAAG;;;;;;;;;;EAa7B,SAAS,gBAAgB,QAAQ,UAAU;GAC1C,IAAI,cAAc;GAClB,IAAI,gBAAgB;GACpB,IAAI,YAAY;GAChB,IAAI,aAAa;AAEjB,UAAO,cAAc,OAAO,OAC3B,KAAI,gBAAgB,SAAS,WAAW,SAAS,mBAAmB,OAAO,gBAAgB,SAAS,mBAAmB,KAEtH,KAAI,SAAS,mBAAmB,KAAK;AACpC,gBAAY;AACZ,iBAAa;AACb;UACM;AACN;AACA;;YAES,cAAc,IAAI;AAE5B,oBAAgB,YAAY;AAC5B;AACA,kBAAc;SAEd,QAAO;AAKT,UAAO,gBAAgB,SAAS,UAAU,SAAS,mBAAmB,IACrE;AAGD,UAAO,kBAAkB,SAAS;;;;;;;;EASnC,SAAS,UAAU;GAClB,MAAM,aAAa,CAClB,GAAG,YAAY,OACf,GAAG,YAAY,MAAM,KAAI,cAAa,MAAM,UAAU,CACtD,CAAC,KAAK,IAAI;AACX,eAAY,OAAO,GAAG;AACtB,UAAO;;;;;;;;;EAUR,SAAS,QAAQ,MAAM;AACtB,QAAK,MAAM,QAAQ,YAAY,MAC9B,KAAI,gBAAgB,MAAM,KAAK,CAC9B,QAAO;AAIT,QAAK,MAAM,MAAM,YAAY,MAC5B,KAAI,gBAAgB,MAAM,GAAG,CAC5B,QAAO;AAIT,UAAO;;;;;;;;;EAUR,SAAS,OAAO,KAAK;AACpB,OAAI,eAAe,MAClB,QAAO,IAAI,SAAS,IAAI;AAEzB,UAAO;;;;;;EAOR,SAAS,UAAU;AAClB,WAAQ,KAAK,wIAAwI;;AAGtJ,cAAY,OAAO,YAAY,MAAM,CAAC;AAEtC,SAAO;;AAGR,QAAO,UAAU;;;;;;;;AC7RjB,SAAQ,aAAa;AACrB,SAAQ,OAAO;AACf,SAAQ,OAAO;AACf,SAAQ,YAAY;AACpB,SAAQ,UAAU,cAAc;AAChC,SAAQ,iBAAiB;EACxB,IAAI,SAAS;AAEb,eAAa;AACZ,OAAI,CAAC,QAAQ;AACZ,aAAS;AACT,YAAQ,KAAK,wIAAwI;;;KAGpJ;;;;AAMJ,SAAQ,SAAS;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;;CAWD,SAAS,YAAY;AAIpB,MAAI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,SAAS,cAAc,OAAO,QAAQ,QAC5G,QAAO;AAIR,MAAI,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,aAAa,CAAC,MAAM,wBAAwB,CAC9H,QAAO;EAGR,IAAI;AAKJ,SAAQ,OAAO,aAAa,eAAe,SAAS,mBAAmB,SAAS,gBAAgB,SAAS,SAAS,gBAAgB,MAAM,oBAEtI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,WAAY,OAAO,QAAQ,aAAa,OAAO,QAAQ,UAG1H,OAAO,cAAc,eAAe,UAAU,cAAc,IAAI,UAAU,UAAU,aAAa,CAAC,MAAM,iBAAiB,KAAK,SAAS,EAAE,IAAI,GAAG,IAAI,MAEpJ,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,aAAa,CAAC,MAAM,qBAAqB;;;;;;;CAS3H,SAAS,WAAW,MAAM;AACzB,OAAK,MAAM,KAAK,YAAY,OAAO,MAClC,KAAK,aACJ,KAAK,YAAY,QAAQ,OAC1B,KAAK,MACJ,KAAK,YAAY,QAAQ,OAC1B,MAAM,OAAO,QAAQ,SAAS,KAAK,KAAK;AAEzC,MAAI,CAAC,KAAK,UACT;EAGD,MAAM,IAAI,YAAY,KAAK;AAC3B,OAAK,OAAO,GAAG,GAAG,GAAG,iBAAiB;EAKtC,IAAI,QAAQ;EACZ,IAAI,QAAQ;AACZ,OAAK,GAAG,QAAQ,gBAAe,UAAS;AACvC,OAAI,UAAU,KACb;AAED;AACA,OAAI,UAAU,KAGb,SAAQ;IAER;AAEF,OAAK,OAAO,OAAO,GAAG,EAAE;;;;;;;;;;AAWzB,SAAQ,MAAM,QAAQ,SAAS,QAAQ,cAAc;;;;;;;CAQrD,SAAS,KAAK,YAAY;AACzB,MAAI;AACH,OAAI,WACH,SAAQ,QAAQ,QAAQ,SAAS,WAAW;OAE5C,SAAQ,QAAQ,WAAW,QAAQ;WAE5B,OAAO;;;;;;;;CAYjB,SAAS,OAAO;EACf,IAAI;AACJ,MAAI;AACH,OAAI,QAAQ,QAAQ,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,QAAQ,QAAQ;WAChE,OAAO;AAMhB,MAAI,CAAC,KAAK,OAAO,YAAY,eAAe,SAAS,QACpD,KAAI,QAAQ,IAAI;AAGjB,SAAO;;;;;;;;;;;;CAcR,SAAS,eAAe;AACvB,MAAI;AAGH,UAAO;WACC,OAAO;;AAMjB,QAAO,UAAA,gBAAA,CAA8B,QAAQ;CAE7C,MAAM,EAAC,eAAc,OAAO;;;;AAM5B,YAAW,IAAI,SAAU,GAAG;AAC3B,MAAI;AACH,UAAO,KAAK,UAAU,EAAE;WAChB,OAAO;AACf,UAAO,iCAAiC,MAAM;;;;;;;AC3QhD,QAAO,WAAW,MAAM,OAAO,QAAQ,SAAS;EAC/C,MAAM,SAAS,KAAK,WAAW,IAAI,GAAG,KAAM,KAAK,WAAW,IAAI,MAAM;EACtE,MAAM,WAAW,KAAK,QAAQ,SAAS,KAAK;EAC5C,MAAM,qBAAqB,KAAK,QAAQ,KAAK;AAC7C,SAAO,aAAa,OAAO,uBAAuB,MAAM,WAAW;;;;;;CCLpE,MAAM,KAAA,UAAa,KAAK;CACxB,MAAMA,QAAAA,UAAc,MAAM;CAC1B,MAAM,UAAA,kBAAA;CAEN,MAAM,EAAC,QAAO;CAEd,IAAI;AACJ,KAAI,QAAQ,WAAW,IACtB,QAAQ,YAAY,IACpB,QAAQ,cAAc,IACtB,QAAQ,cAAc,CACtB,cAAa;UACH,QAAQ,QAAQ,IAC1B,QAAQ,SAAS,IACjB,QAAQ,aAAa,IACrB,QAAQ,eAAe,CACvB,cAAa;AAGd,KAAI,iBAAiB,IACpB,KAAI,IAAI,gBAAgB,OACvB,cAAa;UACH,IAAI,gBAAgB,QAC9B,cAAa;KAEb,cAAa,IAAI,YAAY,WAAW,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,aAAa,GAAG,EAAE,EAAE;CAI5F,SAAS,eAAe,OAAO;AAC9B,MAAI,UAAU,EACb,QAAO;AAGR,SAAO;GACN;GACA,UAAU;GACV,QAAQ,SAAS;GACjB,QAAQ,SAAS;GACjB;;CAGF,SAAS,cAAc,YAAY,aAAa;AAC/C,MAAI,eAAe,EAClB,QAAO;AAGR,MAAI,QAAQ,YAAY,IACvB,QAAQ,aAAa,IACrB,QAAQ,kBAAkB,CAC1B,QAAO;AAGR,MAAI,QAAQ,YAAY,CACvB,QAAO;AAGR,MAAI,cAAc,CAAC,eAAe,eAAe,KAAA,EAChD,QAAO;EAGR,MAAM,MAAM,cAAc;AAE1B,MAAI,IAAI,SAAS,OAChB,QAAO;AAGR,MAAI,QAAQ,aAAa,SAAS;GAGjC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,IAAI;AACzC,OACC,OAAO,UAAU,GAAG,IAAI,MACxB,OAAO,UAAU,GAAG,IAAI,MAExB,QAAO,OAAO,UAAU,GAAG,IAAI,QAAQ,IAAI;AAG5C,UAAO;;AAGR,MAAI,QAAQ,KAAK;AAChB,OAAI;IAAC;IAAU;IAAY;IAAY;IAAa;IAAkB;IAAY,CAAC,MAAK,SAAQ,QAAQ,IAAI,IAAI,IAAI,YAAY,WAC/H,QAAO;AAGR,UAAO;;AAGR,MAAI,sBAAsB,IACzB,QAAO,gCAAgC,KAAK,IAAI,iBAAiB,GAAG,IAAI;AAGzE,MAAI,IAAI,cAAc,YACrB,QAAO;AAGR,MAAI,kBAAkB,KAAK;GAC1B,MAAM,UAAU,UAAU,IAAI,wBAAwB,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG;AAE5E,WAAQ,IAAI,cAAZ;IACC,KAAK,YACJ,QAAO,WAAW,IAAI,IAAI;IAC3B,KAAK,iBACJ,QAAO;;;AAKV,MAAI,iBAAiB,KAAK,IAAI,KAAK,CAClC,QAAO;AAGR,MAAI,8DAA8D,KAAK,IAAI,KAAK,CAC/E,QAAO;AAGR,MAAI,eAAe,IAClB,QAAO;AAGR,SAAO;;CAGR,SAAS,gBAAgB,QAAQ;AAEhC,SAAO,eADO,cAAc,QAAQ,UAAU,OAAO,MAAM,CAC/B;;AAG7B,QAAO,UAAU;EAChB,eAAe;EACf,QAAQ,eAAe,cAAc,MAAMA,MAAI,OAAO,EAAE,CAAC,CAAC;EAC1D,QAAQ,eAAe,cAAc,MAAMA,MAAI,OAAO,EAAE,CAAC,CAAC;EAC1D;;;;;;;;CClID,MAAM,MAAA,UAAc,MAAM;CAC1B,MAAM,OAAA,UAAe,OAAO;;;;AAM5B,SAAQ,OAAO;AACf,SAAQ,MAAM;AACd,SAAQ,aAAa;AACrB,SAAQ,OAAO;AACf,SAAQ,OAAO;AACf,SAAQ,YAAY;AACpB,SAAQ,UAAU,KAAK,gBAChB,IACN,wIACA;;;;AAMD,SAAQ,SAAS;EAAC;EAAG;EAAG;EAAG;EAAG;EAAG;EAAE;AAEnC,KAAI;EAGH,MAAM,gBAAA,wBAAA;AAEN,MAAI,kBAAkB,cAAc,UAAU,eAAe,SAAS,EACrE,SAAQ,SAAS;GAChB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;UAEM,OAAO;;;;;;AAUhB,SAAQ,cAAc,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAO,QAAO;AAC5D,SAAO,WAAW,KAAK,IAAI;GAC1B,CAAC,QAAQ,KAAK,QAAQ;EAEvB,MAAM,OAAO,IACX,UAAU,EAAE,CACZ,aAAa,CACb,QAAQ,cAAc,GAAG,MAAM;AAC/B,UAAO,EAAE,aAAa;IACrB;EAGH,IAAI,MAAM,QAAQ,IAAI;AACtB,MAAI,2BAA2B,KAAK,IAAI,CACvC,OAAM;WACI,6BAA6B,KAAK,IAAI,CAChD,OAAM;WACI,QAAQ,OAClB,OAAM;MAEN,OAAM,OAAO,IAAI;AAGlB,MAAI,QAAQ;AACZ,SAAO;IACL,EAAE,CAAC;;;;CAMN,SAAS,YAAY;AACpB,SAAO,YAAY,QAAQ,cAC1B,QAAQ,QAAQ,YAAY,OAAO,GACnC,IAAI,OAAO,QAAQ,OAAO,GAAG;;;;;;;CAS/B,SAAS,WAAW,MAAM;EACzB,MAAM,EAAC,WAAW,MAAM,cAAa;AAErC,MAAI,WAAW;GACd,MAAM,IAAI,KAAK;GACf,MAAM,YAAY,YAAc,IAAI,IAAI,IAAI,SAAS;GACrD,MAAM,SAAS,KAAK,UAAU,KAAK,KAAK;AAExC,QAAK,KAAK,SAAS,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,OAAO,OAAO;AAC1D,QAAK,KAAK,YAAY,OAAO,OAAO,QAAQ,SAAS,KAAK,KAAK,GAAG,UAAY;QAE9E,MAAK,KAAK,SAAS,GAAG,OAAO,MAAM,KAAK;;CAI1C,SAAS,UAAU;AAClB,MAAI,QAAQ,YAAY,SACvB,QAAO;AAER,0BAAO,IAAI,MAAM,EAAC,aAAa,GAAG;;;;;CAOnC,SAAS,IAAI,GAAG,MAAM;AACrB,SAAO,QAAQ,OAAO,MAAM,KAAK,kBAAkB,QAAQ,aAAa,GAAG,KAAK,GAAG,KAAK;;;;;;;;CASzF,SAAS,KAAK,YAAY;AACzB,MAAI,WACH,SAAQ,IAAI,QAAQ;MAIpB,QAAO,QAAQ,IAAI;;;;;;;;CAWrB,SAAS,OAAO;AACf,SAAO,QAAQ,IAAI;;;;;;;;CAUpB,SAAS,KAAK,OAAO;AACpB,QAAM,cAAc,EAAE;EAEtB,MAAM,OAAO,OAAO,KAAK,QAAQ,YAAY;AAC7C,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAChC,OAAM,YAAY,KAAK,MAAM,QAAQ,YAAY,KAAK;;AAIxD,QAAO,UAAA,gBAAA,CAA8B,QAAQ;CAE7C,MAAM,EAAC,eAAc,OAAO;;;;AAM5B,YAAW,IAAI,SAAU,GAAG;AAC3B,OAAK,YAAY,SAAS,KAAK;AAC/B,SAAO,KAAK,QAAQ,GAAG,KAAK,YAAY,CACtC,MAAM,KAAK,CACX,KAAI,QAAO,IAAI,MAAM,CAAC,CACtB,KAAK,IAAI;;;;;AAOZ,YAAW,IAAI,SAAU,GAAG;AAC3B,OAAK,YAAY,SAAS,KAAK;AAC/B,SAAO,KAAK,QAAQ,GAAG,KAAK,YAAY;;;;;;;;;;AChQzC,KAAI,OAAO,YAAY,eAAe,QAAQ,SAAS,cAAc,QAAQ,YAAY,QAAQ,QAAQ,OACxG,QAAO,UAAA,iBAAA;KAEP,QAAO,UAAA,cAAA"}
@@ -0,0 +1,115 @@
1
+ import { $ as detectTheme, A as everforestDark, At as HueName, B as oneDark, C as ayuMirage, Ct as ThemeContext, D as snazzy, Dt as AnsiPrimary, E as materialLight, Et as useTheme, F as rosePine, G as solarizedLight, H as tokyoNightDay, I as rosePineDawn, J as catppuccinFrappe, K as dracula, L as rosePineMoon, M as kanagawaDragon, Mt as AnsiColorName, N as kanagawaLotus, O as monokai, Ot as COLOR_PALETTE_FIELDS, P as kanagawaWave, Q as DetectThemeOptions, R as gruvboxDark, S as ayuLight, St as generateTheme, T as materialDark, Tt as ThemeProviderProps, U as tokyoNightStorm, V as tokyoNight, W as solarizedDark, X as catppuccinMacchiato, Y as catppuccinLatte, Z as catppuccinMocha, _ as moonfly, _t as fromColors, a as defaultDarkTheme, at as resolveAliases, b as nightfox, bt as presetTheme, c as getThemeByName, ct as ThemeValidationResult, d as edgeDark, dt as validateColorPalette, et as exportBase16, f as edgeLight, ft as getActiveTheme, g as nightfly, gt as fromBase16, h as oxocarbonLight, ht as setActiveTheme, i as builtinThemes, it as themeToCSSVars, j as everforestLight, jt as Theme, k as monokaiPro, kt as ColorPalette, l as modusOperandi, lt as validateTheme, m as oxocarbonDark, mt as pushContextTheme, n as ansi16LightTheme, nt as Base16Scheme, o as defaultLightTheme, ot as resolveTokenAlias, p as sonokai, pt as popContextTheme, q as nord, r as builtinPalettes, rt as autoGenerateTheme, s as getPaletteByName, st as THEME_TOKEN_KEYS, t as ansi16DarkTheme, tt as importBase16, u as modusVivendi, ut as ValidationResult, v as horizon, vt as fromPreset, w as palenight, wt as ThemeProvider, x as ayuDark, xt as quickTheme, y as dawnfox, yt as createTheme, z as gruvboxLight } from "./index-DCVL3jHo.mjs";
2
+ import { n as deriveTheme, r as resolveThemeColor, t as ThemeAdjustment } from "./derive-D7bFJdfU.mjs";
3
+
4
+ //#region packages/color/src/types.d.ts
5
+ /** HSL color: [hue: 0-360, saturation: 0-1, lightness: 0-1] */
6
+ type HSL = [number, number, number];
7
+ /** Result of a contrast check between two colors. */
8
+ interface ContrastResult {
9
+ /** The contrast ratio (1:1 to 21:1), expressed as a single number (e.g. 4.5). */
10
+ ratio: number;
11
+ /** Whether the ratio meets WCAG AA for normal text (>= 4.5:1). */
12
+ aa: boolean;
13
+ /** Whether the ratio meets WCAG AAA for normal text (>= 7:1). */
14
+ aaa: boolean;
15
+ }
16
+ //#endregion
17
+ //#region packages/color/src/color.d.ts
18
+ /** Parse #rrggbb or #rgb to [r, g, b]. Returns null for invalid input. */
19
+ declare function hexToRgb(hex: string): [number, number, number] | null;
20
+ /** Convert [r, g, b] (0-255) to hex string. */
21
+ declare function rgbToHex(r: number, g: number, b: number): string;
22
+ /**
23
+ * Blend two hex colors. t=0 returns a, t=1 returns b.
24
+ * For non-hex inputs (ANSI names), returns `a` unchanged.
25
+ */
26
+ declare function blend(a: string, b: string, t: number): string;
27
+ /**
28
+ * Brighten a hex color. amount=0.1 adds 10% lightness toward white.
29
+ * For non-hex inputs (ANSI names), returns the color unchanged.
30
+ */
31
+ declare function brighten(color: string, amount: number): string;
32
+ /**
33
+ * Darken a hex color. amount=0.1 adds 10% darkness toward black.
34
+ * For non-hex inputs (ANSI names), returns the color unchanged.
35
+ */
36
+ declare function darken(color: string, amount: number): string;
37
+ /**
38
+ * Pick black or white text for readability on the given background.
39
+ * Uses relative luminance (WCAG formula).
40
+ */
41
+ declare function contrastFg(bg: string): "#000000" | "#FFFFFF";
42
+ declare function rgbToHsl(r: number, g: number, b: number): HSL;
43
+ declare function hslToHex(h: number, s: number, l: number): string;
44
+ declare function hexToHsl(hex: string): HSL | null;
45
+ /**
46
+ * Desaturate a hex color by reducing saturation.
47
+ * amount=0.4 reduces saturation by 40%.
48
+ * For non-hex inputs, returns the color unchanged.
49
+ */
50
+ declare function desaturate(color: string, amount: number): string;
51
+ /**
52
+ * Get the complementary color (180° hue rotation).
53
+ * For non-hex inputs, returns the color unchanged.
54
+ */
55
+ declare function complement(color: string): string;
56
+ //#endregion
57
+ //#region packages/color/src/contrast.d.ts
58
+ /**
59
+ * Check contrast ratio between foreground and background colors.
60
+ *
61
+ * Uses the WCAG 2.1 relative luminance formula to compute the contrast
62
+ * ratio and check AA (>= 4.5:1) and AAA (>= 7:1) compliance for normal text.
63
+ *
64
+ * @param fg - Foreground hex color (e.g. "#FFFFFF")
65
+ * @param bg - Background hex color (e.g. "#000000")
66
+ * @returns Contrast ratio and AA/AAA pass/fail, or null if colors are not valid hex
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const result = checkContrast("#FFFFFF", "#000000")
71
+ * // { ratio: 21, aa: true, aaa: true }
72
+ *
73
+ * const poor = checkContrast("#777777", "#888888")
74
+ * // { ratio: ~1.3, aa: false, aaa: false }
75
+ * ```
76
+ */
77
+ declare function checkContrast(fg: string, bg: string): ContrastResult | null;
78
+ /**
79
+ * Adjust a color's lightness until it meets a minimum contrast ratio
80
+ * against a reference color. Preserves hue and saturation — only
81
+ * lightness is shifted, and only as much as needed.
82
+ *
83
+ * Returns the original color unchanged if it already meets the target.
84
+ *
85
+ * @param color - The color to adjust (hex)
86
+ * @param against - The reference background color (hex)
87
+ * @param minRatio - Minimum contrast ratio to achieve (e.g. 4.5 for AA)
88
+ * @returns Adjusted hex color meeting the target, or original if already OK
89
+ *
90
+ * For impossible targets (e.g. 21:1 against mid-gray), returns the
91
+ * best achievable color (near-black or near-white in the same hue).
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * // Yellow on white — too low contrast, gets darkened
96
+ * ensureContrast("#FFAB91", "#FFFFFF", 4.5) // → "#B35600" (darker orange)
97
+ *
98
+ * // Blue on dark bg — already fine, returned unchanged
99
+ * ensureContrast("#5C9FFF", "#1A1A2E", 4.5) // → "#5C9FFF"
100
+ * ```
101
+ */
102
+ declare function ensureContrast(color: string, against: string, minRatio: number): string;
103
+ //#endregion
104
+ //#region packages/ansi/src/theme/detect.d.ts
105
+ interface DetectedPalette {
106
+ fg: string | null;
107
+ bg: string | null;
108
+ ansi: (string | null)[];
109
+ dark: boolean;
110
+ palette: Partial<ColorPalette>;
111
+ }
112
+ declare function detectTerminalPalette(timeoutMs?: number): Promise<DetectedPalette | null>;
113
+ //#endregion
114
+ export { AnsiColorName, AnsiPrimary, Base16Scheme, COLOR_PALETTE_FIELDS, ColorPalette, ContrastResult, DetectThemeOptions, DetectedPalette, HSL, HueName, THEME_TOKEN_KEYS, Theme, ThemeAdjustment, ThemeContext, ThemeProvider, ThemeProviderProps, ThemeValidationResult, ValidationResult, ansi16DarkTheme, ansi16LightTheme, autoGenerateTheme, ayuDark, ayuLight, ayuMirage, blend, brighten, builtinPalettes, builtinThemes, catppuccinFrappe, catppuccinLatte, catppuccinMacchiato, catppuccinMocha, checkContrast, complement, contrastFg, createTheme, darken, dawnfox, defaultDarkTheme, defaultLightTheme, deriveTheme, desaturate, detectTerminalPalette, detectTheme, dracula, edgeDark, edgeLight, ensureContrast, everforestDark, everforestLight, exportBase16, fromBase16, fromColors, fromPreset, generateTheme, getActiveTheme, getPaletteByName, getThemeByName, gruvboxDark, gruvboxLight, hexToHsl, hexToRgb, horizon, hslToHex, importBase16, kanagawaDragon, kanagawaLotus, kanagawaWave, materialDark, materialLight, modusOperandi, modusVivendi, monokai, monokaiPro, moonfly, nightfly, nightfox, nord, oneDark, oxocarbonDark, oxocarbonLight, palenight, popContextTheme, presetTheme, pushContextTheme, quickTheme, resolveAliases, resolveThemeColor, resolveTokenAlias, rgbToHex, rgbToHsl, rosePine, rosePineDawn, rosePineMoon, setActiveTheme, snazzy, solarizedDark, solarizedLight, sonokai, themeToCSSVars, tokyoNight, tokyoNightDay, tokyoNightStorm, useTheme, validateColorPalette, validateTheme };
115
+ //# sourceMappingURL=theme.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.mts","names":[],"sources":["../packages/color/src/types.ts","../packages/color/src/color.ts","../packages/color/src/contrast.ts","../packages/ansi/src/theme/detect.ts"],"mappings":";;;;;KACY,GAAA;;UAGK,cAAA;EAHL;EAKV,KAAA;;EAEA,EAAA;EAPa;EASb,GAAA;AAAA;;;;iBCQc,QAAA,CAAS,GAAA;;iBAaT,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA;;;;;iBAa/B,KAAA,CAAM,CAAA,UAAW,CAAA,UAAW,CAAA;;AA1B5C;;;iBA0CgB,QAAA,CAAS,KAAA,UAAe,MAAA;;AA7BxC;;;iBAqCgB,MAAA,CAAO,KAAA,UAAe,MAAA;;;;AARtC;iBAwCgB,UAAA,CAAW,EAAA;AAAA,iBAUX,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA,WAAY,GAAA;AAAA,iBAiB3C,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA;AAAA,iBAU/B,QAAA,CAAS,GAAA,WAAc,GAAA;AArEvC;;;;;AAAA,iBAgFgB,UAAA,CAAW,KAAA,UAAe,MAAA;;;;;iBAW1B,UAAA,CAAW,KAAA;;;AD3J3B;;;;;;;;;;;;ACcA;;;;;AAaA;;AD3BA,iBE2BgB,aAAA,CAAc,EAAA,UAAY,EAAA,WAAa,cAAA;;;;;;;ADavD;;;;;;;;;AAgBA;;;;;AAQA;;;;iBCGgB,cAAA,CAAe,KAAA,UAAe,OAAA,UAAiB,QAAA;;;UC7D9C,eAAA;EACf,EAAA;EACA,EAAA;EACA,IAAA;EACA,IAAA;EACA,OAAA,EAAS,OAAA,CAAQ,YAAA;AAAA;AAAA,iBAGG,qBAAA,CAAsB,SAAA,YAAkB,OAAA,CAAQ,eAAA"}
package/dist/theme.mjs ADDED
@@ -0,0 +1,8 @@
1
+ import { A as contrastFg, C as resolveThemeColor, D as blend, E as ensureContrast, F as hslToHex, I as rgbToHex, L as rgbToHsl, M as desaturate, N as hexToHsl, O as brighten, P as hexToRgb, T as checkContrast, _ as COLOR_PALETTE_FIELDS, b as deriveTheme, j as darken, k as complement, n as detectTerminalPalette } from "./src-9B5k0JmY.mjs";
2
+ import { $ as ayuMirage, A as setActiveTheme, B as modusVivendi, C as ThemeProvider, Ct as nord, Dt as catppuccinMocha, E as getActiveTheme, Et as catppuccinMacchiato, F as defaultDarkTheme, G as oxocarbonLight, H as edgeLight, I as defaultLightTheme, J as horizon, K as nightfly, L as getPaletteByName, M as ansi16LightTheme, N as builtinPalettes, O as popContextTheme, P as builtinThemes, Q as ayuLight, R as getThemeByName, S as ThemeContext, St as dracula, T as useTheme, Tt as catppuccinLatte, U as sonokai, V as edgeDark, W as oxocarbonDark, X as nightfox, Y as dawnfox, Z as ayuDark, _ as fromColors, _t as tokyoNight, a as exportBase16, at as monokaiPro, b as generateTheme, bt as solarizedDark, c as resolveAliases, ct as kanagawaDragon, d as validateTheme, dt as rosePine, et as palenight, f as validateColorPalette, ft as rosePineDawn, g as fromBase16, gt as oneDark, h as quickTheme, ht as gruvboxLight, it as monokai, j as ansi16DarkTheme, k as pushContextTheme, l as resolveTokenAlias, lt as kanagawaLotus, m as presetTheme, mt as gruvboxDark, nt as materialLight, o as autoGenerateTheme, ot as everforestDark, p as createTheme, pt as rosePineMoon, q as moonfly, r as detectTheme, rt as snazzy, s as themeToCSSVars, st as everforestLight, t as init_src, tt as materialDark, u as THEME_TOKEN_KEYS, ut as kanagawaWave, v as fromPreset, vt as tokyoNightDay, wt as catppuccinFrappe, xt as solarizedLight, y as importBase16, yt as tokyoNightStorm, z as modusOperandi } from "./src-C9f3hiVG.mjs";
3
+ //#region src/theme.ts
4
+ init_src();
5
+ //#endregion
6
+ export { COLOR_PALETTE_FIELDS, THEME_TOKEN_KEYS, ThemeContext, ThemeProvider, ansi16DarkTheme, ansi16LightTheme, autoGenerateTheme, ayuDark, ayuLight, ayuMirage, blend, brighten, builtinPalettes, builtinThemes, catppuccinFrappe, catppuccinLatte, catppuccinMacchiato, catppuccinMocha, checkContrast, complement, contrastFg, createTheme, darken, dawnfox, defaultDarkTheme, defaultLightTheme, deriveTheme, desaturate, detectTerminalPalette, detectTheme, dracula, edgeDark, edgeLight, ensureContrast, everforestDark, everforestLight, exportBase16, fromBase16, fromColors, fromPreset, generateTheme, getActiveTheme, getPaletteByName, getThemeByName, gruvboxDark, gruvboxLight, hexToHsl, hexToRgb, horizon, hslToHex, importBase16, kanagawaDragon, kanagawaLotus, kanagawaWave, materialDark, materialLight, modusOperandi, modusVivendi, monokai, monokaiPro, moonfly, nightfly, nightfox, nord, oneDark, oxocarbonDark, oxocarbonLight, palenight, popContextTheme, presetTheme, pushContextTheme, quickTheme, resolveAliases, resolveThemeColor, resolveTokenAlias, rgbToHex, rgbToHsl, rosePine, rosePineDawn, rosePineMoon, setActiveTheme, snazzy, solarizedDark, solarizedLight, sonokai, themeToCSSVars, tokyoNight, tokyoNightDay, tokyoNightStorm, useTheme, validateColorPalette, validateTheme };
7
+
8
+ //# sourceMappingURL=theme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.mjs","names":[],"sources":["../src/theme.ts"],"sourcesContent":["// silvery/theme — re-exports from @silvery/theme\n// Theme tokens, palettes, ThemeProvider, useTheme, color utilities\n\nexport * from \"@silvery/theme\"\n"],"mappings":""}
@@ -0,0 +1,13 @@
1
+ //#region packages/ag/src/types.ts
2
+ /**
3
+ * Check if two rects are equal (same position and size).
4
+ */
5
+ function rectEqual(a, b) {
6
+ if (a === b) return true;
7
+ if (!a || !b) return false;
8
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
9
+ }
10
+ //#endregion
11
+ export { rectEqual as t };
12
+
13
+ //# sourceMappingURL=types-Bhj5QkIQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-Bhj5QkIQ.mjs","names":[],"sources":["../packages/ag/src/types.ts"],"sourcesContent":["/**\n * Silvery Types\n *\n * Core types for the Silvery renderer architecture.\n */\n\nimport type { DragEventProps } from \"./drag-event-types\"\nimport type { FocusEventProps } from \"./focus-events\"\nimport type { LayoutNode } from \"./layout-types\"\nimport type { MouseEventProps } from \"./mouse-event-types\"\n\n// ============================================================================\n// Layout Types\n// ============================================================================\n\n// ============================================================================\n// Selection Types\n// ============================================================================\n\n/**\n * CSS user-select equivalent for controlling text selectability.\n * - \"auto\": inherit from parent (root resolves to \"text\")\n * - \"none\": not selectable\n * - \"text\": force selectable (overrides parent \"none\")\n * - \"contain\": selectable, but selection cannot escape this node's bounds\n */\nexport type UserSelect = \"auto\" | \"none\" | \"text\" | \"contain\"\n\n// ============================================================================\n// Layout Types\n// ============================================================================\n\n/**\n * A rectangle with position and size.\n * All values are in terminal columns/rows (integers).\n */\nexport interface Rect {\n /** X position (0-indexed terminal column) */\n x: number\n /** Y position (0-indexed terminal row) */\n y: number\n /** Width in terminal columns */\n width: number\n /** Height in terminal rows */\n height: number\n}\n\n/**\n * Check if two rects are equal (same position and size).\n */\nexport function rectEqual(a: Rect | null, b: Rect | null): boolean {\n if (a === b) return true\n if (!a || !b) return false\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height\n}\n\n// ============================================================================\n// Interactive State Types\n// ============================================================================\n\n/**\n * Per-node interactive state — written by pointer/selection/focus state machines,\n * read by theme/render for automatic styling.\n *\n * These are plain mutable booleans, NOT reactive signals. State machines set them\n * synchronously during event processing, and the next render reads them.\n * React re-renders are driven by the event processing, not signal subscriptions.\n *\n * The object is lazily created on first write to avoid overhead on non-interactive nodes.\n */\nexport interface InteractiveState {\n /** Pointer is over this node (mouseenter/mouseleave) */\n hovered: boolean\n /** Pointer-down on this node, awaiting pointer-up (will receive click) */\n armed: boolean\n /** Node is in the current selection set */\n selected: boolean\n /** Node has keyboard focus */\n focused: boolean\n /** A drag operation is hovering over this node */\n dropTarget: boolean\n}\n\n// ============================================================================\n// Node Types\n// ============================================================================\n\n/**\n * Silvery node types - the primitive elements in the render tree.\n */\nexport type AgNodeType = \"silvery-root\" | \"silvery-box\" | \"silvery-text\"\n\n/**\n * Flexbox properties that can be applied to Box nodes.\n */\nexport interface FlexboxProps {\n // Size\n width?: number | string\n height?: number | string\n minWidth?: number | string\n minHeight?: number | string\n maxWidth?: number | string\n maxHeight?: number | string\n\n // Flex\n flexGrow?: number\n flexShrink?: number\n flexBasis?: number | string\n flexDirection?: \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\"\n flexWrap?: \"nowrap\" | \"wrap\" | \"wrap-reverse\"\n\n // Alignment\n alignItems?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\"\n alignSelf?: \"auto\" | \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\"\n alignContent?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"space-between\" | \"space-around\" | \"space-evenly\"\n justifyContent?: \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\"\n\n // Spacing\n padding?: number\n paddingTop?: number\n paddingBottom?: number\n paddingLeft?: number\n paddingRight?: number\n paddingX?: number\n paddingY?: number\n margin?: number\n marginTop?: number\n marginBottom?: number\n marginLeft?: number\n marginRight?: number\n marginX?: number\n marginY?: number\n gap?: number\n columnGap?: number\n rowGap?: number\n\n // Position\n position?: \"relative\" | \"absolute\" | \"sticky\" | \"static\"\n\n // Position offsets (used with position='absolute' or position='relative')\n top?: number | string\n left?: number | string\n bottom?: number | string\n right?: number | string\n\n // Sticky offsets (only used when position='sticky')\n // The element will \"stick\" when it reaches this offset from the container edge\n stickyTop?: number\n stickyBottom?: number\n\n // Aspect ratio\n aspectRatio?: number\n\n // Display\n display?: \"flex\" | \"none\"\n\n // Overflow\n overflow?: \"visible\" | \"hidden\" | \"scroll\"\n overflowX?: \"visible\" | \"hidden\"\n overflowY?: \"visible\" | \"hidden\"\n\n // Scroll control (only used when overflow='scroll')\n /** Child index to ensure visible (edge-based: only scrolls if off-screen) */\n scrollTo?: number\n /** Explicit scroll offset in rows (used when scrollTo is undefined for frozen scroll state) */\n scrollOffset?: number\n}\n\n/**\n * Props for testing and identification.\n * These props are stored in the node for DOM query access.\n */\nexport interface TestProps {\n /** Element ID for DOM queries and visual debugging */\n id?: string\n /** Test ID for querying nodes (like Playwright's data-testid) */\n testID?: string\n /** Allow arbitrary data-* attributes for testing */\n [key: `data-${string}`]: unknown\n}\n\n/**\n * Underline style variants (SGR 4:x codes).\n * - false: no underline\n * - 'single': standard underline (SGR 4 or 4:1)\n * - 'double': double underline (SGR 4:2)\n * - 'curly': curly/wavy underline (SGR 4:3)\n * - 'dotted': dotted underline (SGR 4:4)\n * - 'dashed': dashed underline (SGR 4:5)\n */\nexport type UnderlineStyle = false | \"single\" | \"double\" | \"curly\" | \"dotted\" | \"dashed\"\n\n/**\n * Style properties for text rendering.\n */\nexport interface StyleProps {\n color?: string\n backgroundColor?: string\n bold?: boolean\n dim?: boolean\n /** Alias for dim (Ink compatibility) */\n dimColor?: boolean\n italic?: boolean\n /** Enable underline. Use underlineStyle for style variants. */\n underline?: boolean\n /**\n * Underline style variant: 'single' | 'double' | 'curly' | 'dotted' | 'dashed'.\n * Setting this implies underline=true. Takes precedence over underline prop.\n */\n underlineStyle?: UnderlineStyle\n /**\n * Underline color (independent of text color).\n * Uses SGR 58 (underline color). Falls back to text color if not specified.\n */\n underlineColor?: string\n strikethrough?: boolean\n inverse?: boolean\n\n /**\n * Text size scale factor via OSC 66 (Kitty v0.40+).\n *\n * Float multiplier: 2.0 = double (headings), 1.0 = normal, 0.5 = half (small print).\n * The terminal renders subsequent text at this scale until reset.\n * Requires a terminal that supports the kitty text sizing protocol.\n * Terminals without support silently ignore the escape sequence.\n */\n textSize?: number\n}\n\n/**\n * Props for Box component.\n */\nexport interface BoxProps\n extends FlexboxProps, StyleProps, TestProps, MouseEventProps, DragEventProps, FocusEventProps {\n /** Text truncation mode for child text content (passed through to Text children). */\n wrap?:\n | \"wrap\"\n | \"hard\"\n | \"even\"\n | \"truncate\"\n | \"truncate-start\"\n | \"truncate-middle\"\n | \"truncate-end\"\n | \"clip\"\n | boolean\n borderStyle?: \"single\" | \"double\" | \"round\" | \"bold\" | \"singleDouble\" | \"doubleSingle\" | \"classic\"\n borderColor?: string\n /** Background color for all border sides (shorthand). Per-side props override this. */\n borderBackgroundColor?: string\n /** Background color for the top border (overrides borderBackgroundColor). */\n borderTopBackgroundColor?: string\n /** Background color for the bottom border (overrides borderBackgroundColor). */\n borderBottomBackgroundColor?: string\n /** Background color for the left border (overrides borderBackgroundColor). */\n borderLeftBackgroundColor?: string\n /** Background color for the right border (overrides borderBackgroundColor). */\n borderRightBackgroundColor?: string\n borderTop?: boolean\n borderBottom?: boolean\n borderLeft?: boolean\n borderRight?: boolean\n\n /**\n * Outline style — renders border characters at the box edges without affecting layout.\n *\n * Unlike `borderStyle` which adds border dimensions to the layout (making the content\n * area smaller), `outlineStyle` draws border characters that OVERLAP the content area.\n * The layout engine sees no border at all — outline is purely visual.\n *\n * Use cases: selection indicators, hover highlights, focus rings — anything that\n * should visually frame a box without shifting content.\n */\n outlineStyle?: \"single\" | \"double\" | \"round\" | \"bold\" | \"singleDouble\" | \"doubleSingle\" | \"classic\"\n /** Foreground color for the outline */\n outlineColor?: string\n /** Apply dim styling to the outline */\n outlineDimColor?: boolean\n /** Show top outline edge (default: true) */\n outlineTop?: boolean\n /** Show bottom outline edge (default: true) */\n outlineBottom?: boolean\n /** Show left outline edge (default: true) */\n outlineLeft?: boolean\n /** Show right outline edge (default: true) */\n outlineRight?: boolean\n\n /**\n * Override theme for this subtree — $token colors resolve against this theme.\n * Pushed onto the context theme stack during render phase tree walk.\n */\n theme?: import(\"@silvery/theme\").Theme\n\n /** CSS pointer-events equivalent. \"none\" makes this node and its subtree invisible to hit testing. */\n pointerEvents?: \"auto\" | \"none\"\n\n /**\n * CSS user-select equivalent. Controls whether text in this node is selectable.\n * - \"auto\" (default): inherit from parent. Root resolves to \"text\".\n * - \"none\": not selectable. Mouse-drag on this node does not start text selection.\n * - \"text\": force selectable, even if parent is \"none\".\n * - \"contain\": selectable, but selection range cannot escape this node's bounds.\n */\n userSelect?: UserSelect\n\n /**\n * Whether this node can be dragged via mouse.\n * When true, mousedown + drag past threshold initiates a node drag gesture\n * instead of text selection. Not inherited — only the node with draggable=true\n * is draggable, not its children.\n */\n draggable?: boolean\n\n onLayout?: (layout: Rect) => void\n\n /**\n * Show scroll overflow indicators (▲N / ▼N) for scrollable containers.\n *\n * For bordered containers, indicators appear on the border.\n * For borderless containers, indicators overlay the content at top-right/bottom-right.\n *\n * Only applies when overflow='scroll'.\n */\n overflowIndicator?: boolean\n}\n\n/**\n * Props for Text component.\n */\nexport interface TextProps extends StyleProps, TestProps, MouseEventProps {\n children?: React.ReactNode\n wrap?:\n | \"wrap\"\n | \"hard\"\n | \"even\"\n | \"truncate\"\n | \"truncate-start\"\n | \"truncate-middle\"\n | \"truncate-end\"\n | \"clip\"\n | boolean\n /** Internal transform function applied to each rendered line. Used by Transform component. */\n internal_transform?: (line: string, index: number) => string\n}\n\n/**\n * The core Silvery node - represents an element in the render tree.\n *\n * Each node has:\n * - A Yoga node for layout calculation\n * - Computed layout after Yoga runs\n * - Subscribers that get notified when layout changes\n * - Dirty flags for incremental updates\n */\nexport interface AgNode {\n /** Node type */\n type: AgNodeType\n\n /** Props passed to this node */\n props: BoxProps | TextProps | Record<string, unknown>\n\n /** Child nodes */\n children: AgNode[]\n\n /** Parent node (null for root) */\n parent: AgNode | null\n\n /** The layout node for layout calculation (null for raw text nodes) */\n layoutNode: LayoutNode | null\n\n /** Computed layout from previous render (for change detection) */\n prevLayout: Rect | null\n\n /**\n * Content-relative position (like CSS offsetTop/offsetLeft).\n * Position within the scrollable content, ignoring scroll offsets.\n * Set after layout phase.\n */\n boxRect: Rect | null\n\n /**\n * Screen-relative position (like CSS getBoundingClientRect).\n * Actual position on the terminal screen, accounting for scroll offsets.\n * Set after screen rect phase.\n *\n * Note: For sticky children, this reflects the node's layout position\n * adjusted for scroll offsets, NOT the actual render position. Use\n * `screenRect` for the actual pixel position on screen.\n */\n scrollRect: Rect | null\n\n /** Previous screen rect (for change detection in notifyLayoutSubscribers) */\n prevScrollRect: Rect | null\n\n /**\n * Actual render position on the terminal screen.\n * For non-sticky nodes, this equals `scrollRect`.\n * For sticky nodes (position=\"sticky\"), this accounts for sticky render\n * offsets — the position where pixels are actually painted.\n *\n * Use this for hit testing, cursor positioning, and any feature that\n * needs to know where a node visually appears on screen.\n * Set after screen rect phase.\n */\n screenRect: Rect | null\n\n /** Previous render rect (for change detection) */\n prevScreenRect: Rect | null\n\n /** Epoch when layout changed (position or size).\n * Set by propagateLayout in layout phase. Compared against renderEpoch by render phase.\n * This is the authoritative signal for \"did layout change?\" — unlike\n * !rectEqual(prevLayout, boxRect) which becomes stale when layout\n * phase skips (no dirty nodes).\n * Value: renderEpoch when dirty, INITIAL_EPOCH (-1) when clean. */\n layoutChangedThisFrame: number\n\n /** True if layout-affecting props changed and Yoga needs recalculation.\n * Set by reconciler on prop changes. Cleared after layout phase.\n * NOTE: layoutDirty stays boolean — it's cleared by layout phase (not render phase)\n * and has its own tracking set in dirty-tracking.ts. */\n layoutDirty: boolean\n\n /**\n * Bit-packed dirty flags for the current epoch.\n *\n * Seven dirty flags packed into a single number:\n * bit 0 (CONTENT_BIT): content changed (text content or content-affecting props)\n * bit 1 (STYLE_PROPS_BIT): visual props changed (color, bg, border, etc.)\n * bit 2 (BG_BIT): backgroundColor specifically changed\n * bit 3 (CHILDREN_BIT): direct children added/removed/reordered\n * bit 4 (SUBTREE_BIT): this node or any descendant has dirty content/layout\n * bit 5 (ABS_CHILD_BIT): absolute child had structural changes\n * bit 6 (DESC_OVERFLOW_BIT): descendant overflow changed\n *\n * Check: `isDirty(node.dirtyBits, node.dirtyEpoch, BIT)`\n * Set: `node.dirtyBits = setDirtyBit(node.dirtyBits, node.dirtyEpoch, BIT); node.dirtyEpoch = getRenderEpoch()`\n * Clear: `advanceRenderEpoch()` — all nodes instantly become clean\n *\n * NOTE: measure phase may clear CONTENT_BIT — STYLE_PROPS_BIT acts as the\n * surviving witness for style changes. See render-phase.ts contentAreaAffected.\n */\n dirtyBits: number\n\n /**\n * Epoch when dirtyBits was last written.\n * When `dirtyEpoch !== renderEpoch`, all bits are stale (node is clean).\n * Value: renderEpoch when any bit is dirty, INITIAL_EPOCH (-1) when clean.\n */\n dirtyEpoch: number\n\n /** Callbacks subscribed to layout changes (used by useBoxRect) */\n layoutSubscribers: Set<() => void>\n\n /** Text content for text nodes */\n textContent?: string\n\n /** True if this is a raw text node (created by createTextInstance) */\n isRawText?: boolean\n\n /** True if this node is hidden (for Suspense support) */\n hidden?: boolean\n\n /** Sticky children with computed render positions (for non-scroll containers).\n * When a parent has sticky children but is NOT a scroll container, this array\n * holds the computed render offsets. Same shape as scrollState.stickyChildren. */\n stickyChildren?: Array<{\n /** Index of the sticky child */\n index: number\n /** Computed Y offset to render at (relative to parent content area) */\n renderOffset: number\n /** Original natural Y position (relative to parent content area) */\n naturalTop: number\n /** Height of the sticky element */\n height: number\n }>\n\n /** Inline rects for virtual text nodes (no layout node). Computed during text rendering.\n * Array for wrapped text (one rect per line fragment). Enables hit testing on nested Text. */\n inlineRects?: Array<{ x: number; y: number; width: number; height: number }> | null\n\n /**\n * Interactive state signals — written by pointer/selection/focus state machines,\n * read by theme/render for automatic styling (hover highlights, focus rings, etc.).\n *\n * Lazily created on first write. Null means no interactive state has been set.\n * See InteractiveState for field docs.\n */\n interactiveState?: InteractiveState | null\n\n /** Scroll state for overflow='scroll' containers */\n scrollState?: {\n /** Current scroll offset (in terminal rows) */\n offset: number\n /** Previous scroll offset from last render (for incremental rendering) */\n prevOffset: number\n /** Total content height (all children) */\n contentHeight: number\n /** Visible height (container height minus borders/padding) */\n viewportHeight: number\n /** Index of first visible child */\n firstVisibleChild: number\n /** Index of last visible child */\n lastVisibleChild: number\n /** Previous first visible child from last render (for incremental rendering) */\n prevFirstVisibleChild: number\n /** Previous last visible child from last render (for incremental rendering) */\n prevLastVisibleChild: number\n /** Count of items hidden above viewport */\n hiddenAbove: number\n /** Count of items hidden below viewport */\n hiddenBelow: number\n /** Sticky children with their computed render positions */\n stickyChildren?: Array<{\n /** Index of the sticky child */\n index: number\n /** Computed Y offset to render at (relative to viewport, not content) */\n renderOffset: number\n /** Original natural Y position (before sticky adjustment) */\n naturalTop: number\n /** Height of the sticky element */\n height: number\n }>\n }\n}\n\n// ============================================================================\n// Terminal Buffer Types\n// ============================================================================\n\n/**\n * Text attributes that can be applied to a cell.\n */\nexport interface CellAttrs {\n bold?: boolean\n dim?: boolean\n italic?: boolean\n /** Simple underline flag (for backwards compatibility) */\n underline?: boolean\n /**\n * Underline style: 'single' | 'double' | 'curly' | 'dotted' | 'dashed'.\n * When set, takes precedence over the underline boolean.\n */\n underlineStyle?: UnderlineStyle\n strikethrough?: boolean\n inverse?: boolean\n}\n\n/**\n * A single cell in the terminal buffer.\n */\nexport interface Cell {\n /** The character (grapheme cluster) in this cell */\n char: string\n /** Foreground color (ANSI code or RGB) */\n fg: string | null\n /** Background color (ANSI code or RGB) */\n bg: string | null\n /** Text attributes */\n attrs: CellAttrs\n /** True if this is a wide character (CJK) that takes 2 cells */\n wide: boolean\n /** True if this cell is the continuation of a wide character */\n continuation: boolean\n}\n\n/**\n * Interface for the terminal buffer.\n */\nexport interface TerminalBuffer {\n readonly width: number\n readonly height: number\n getCell(x: number, y: number): Cell\n setCell(x: number, y: number, cell: Cell): void\n clear(): void\n}\n\n// ============================================================================\n// Event Types\n// ============================================================================\n\n/**\n * Keyboard event with key information and modifiers.\n */\nexport interface KeyEvent {\n type: \"key\"\n /** The key pressed (character or key name like 'ArrowUp') */\n key: string\n /** Ctrl modifier was held */\n ctrl?: boolean\n /** Meta/Alt modifier was held */\n meta?: boolean\n /** Shift modifier was held */\n shift?: boolean\n /** Alt/Option modifier was held */\n alt?: boolean\n /** Super/Cmd modifier was held. Requires Kitty protocol. */\n super?: boolean\n /** Hyper modifier was held. Requires Kitty protocol. */\n hyper?: boolean\n /** Kitty event type. Requires Kitty flag 2. */\n eventType?: \"press\" | \"repeat\" | \"release\"\n /** CapsLock is active. Kitty modifier bit 6. */\n capsLock?: boolean\n /** NumLock is active. Kitty modifier bit 7. */\n numLock?: boolean\n}\n\n/**\n * Mouse event with position and button information.\n */\nexport interface MouseEvent {\n type: \"mouse\"\n /** X position in terminal columns (0-indexed) */\n x: number\n /** Y position in terminal rows (0-indexed) */\n y: number\n /** Mouse button (0=left, 1=middle, 2=right) */\n button: number\n /** Event action */\n action: \"down\" | \"up\" | \"move\" | \"wheel\"\n /** Wheel delta for scroll events */\n delta?: number\n}\n\n/**\n * Terminal resize event.\n */\nexport interface ResizeEvent {\n type: \"resize\"\n /** New width in columns */\n width: number\n /** New height in rows */\n height: number\n}\n\n/**\n * Terminal focus event.\n */\nexport interface FocusEvent {\n type: \"focus\"\n}\n\n/**\n * Terminal blur event.\n */\nexport interface BlurEvent {\n type: \"blur\"\n}\n\n/**\n * Signal event (SIGINT, SIGTERM, etc.).\n */\nexport interface SignalEvent {\n type: \"signal\"\n /** Signal name (e.g., 'SIGINT', 'SIGTERM') */\n signal: string\n}\n\n/**\n * Custom event for extensibility.\n */\nexport interface CustomEvent {\n type: \"custom\"\n /** Event name */\n name: string\n /** Event data */\n data: unknown\n}\n\n/**\n * Union of all event types.\n *\n * Events drive the render loop in interactive mode. When events are present,\n * the render loop runs until exit() is called. When events are absent,\n * the render completes when the UI is stable.\n */\nexport type Event = KeyEvent | MouseEvent | ResizeEvent | FocusEvent | BlurEvent | SignalEvent | CustomEvent\n\n/**\n * Event source that can be subscribed to and unsubscribed from.\n */\nexport interface EventSource {\n /** Subscribe to events, returns unsubscribe function */\n subscribe(handler: (event: Event) => void): () => void\n /** Convert to async iterable */\n [Symbol.asyncIterator](): AsyncIterator<Event>\n}\n"],"mappings":";;;;AAkDA,SAAgB,UAAU,GAAgB,GAAyB;AACjE,KAAI,MAAM,EAAG,QAAO;AACpB,KAAI,CAAC,KAAK,CAAC,EAAG,QAAO;AACrB,QAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE"}
@@ -0,0 +1,241 @@
1
+ //#region packages/ag-react/src/ui/types.d.ts
2
+ /**
3
+ * Core types for silvery-ui progress components
4
+ */
5
+ /** Progress info passed to callbacks (legacy, use StepProgress for steps()) */
6
+ interface ProgressInfo {
7
+ phase?: string;
8
+ current: number;
9
+ total: number;
10
+ detail?: string;
11
+ }
12
+ /**
13
+ * Progress info yielded from step generators
14
+ *
15
+ * Yield with `label` to create/update a sub-step:
16
+ * ```typescript
17
+ * function* loadRepo() {
18
+ * yield { label: "Discovering files" };
19
+ * // ... do work ...
20
+ * yield { label: "Parsing markdown", current: 0, total: 100 };
21
+ * // ... do work ...
22
+ * yield { label: "Parsing markdown", current: 100, total: 100 };
23
+ * }
24
+ * ```
25
+ */
26
+ interface StepProgress {
27
+ /** Display label for sub-step (changing label creates new sub-step) */
28
+ label?: string;
29
+ /** Current progress count */
30
+ current?: number;
31
+ /** Total count for progress display */
32
+ total?: number;
33
+ }
34
+ /** Callback signature for progress reporting */
35
+ type ProgressCallback = (info: ProgressInfo) => void;
36
+ /** Generator that yields progress info */
37
+ type ProgressGenerator<T = void> = Generator<{
38
+ current: number;
39
+ total: number;
40
+ }, T, unknown>;
41
+ /** Spinner animation styles */
42
+ type SpinnerStyle = "dots" | "line" | "arc" | "bounce" | "pulse";
43
+ /** Task status for multi-task display */
44
+ type TaskStatus = "pending" | "running" | "completed" | "failed" | "skipped";
45
+ /** Options for Spinner class */
46
+ interface SpinnerOptions {
47
+ /** Initial text to display */
48
+ text?: string;
49
+ /** Animation style */
50
+ style?: SpinnerStyle;
51
+ /** Spinner color (chalk color name) */
52
+ color?: string;
53
+ /** Output stream (default: process.stdout) */
54
+ stream?: NodeJS.WriteStream;
55
+ /** Hide cursor during spinner (default: true) */
56
+ hideCursor?: boolean;
57
+ /** Animation interval in ms (default: 80) */
58
+ interval?: number;
59
+ }
60
+ /** Options for ProgressBar class */
61
+ interface ProgressBarOptions {
62
+ /** Total value for progress calculation */
63
+ total?: number;
64
+ /** Format string with placeholders: :bar :percent :current :total :eta :rate :phase */
65
+ format?: string;
66
+ /** Width of the progress bar in characters (default: 40) */
67
+ width?: number;
68
+ /** Character for completed portion (default: "█") */
69
+ complete?: string;
70
+ /** Character for incomplete portion (default: "░") */
71
+ incomplete?: string;
72
+ /** Show percentage (default: true) */
73
+ showPercentage?: boolean;
74
+ /** Show ETA (default: true) */
75
+ showETA?: boolean;
76
+ /** Output stream (default: process.stdout) */
77
+ stream?: NodeJS.WriteStream;
78
+ /** Hide cursor during progress (default: true) */
79
+ hideCursor?: boolean;
80
+ /** Phase names for multi-phase progress */
81
+ phases?: Record<string, string>;
82
+ }
83
+ /** Options for withSpinner wrapper */
84
+ interface WithSpinnerOptions {
85
+ /** Spinner style */
86
+ style?: SpinnerStyle;
87
+ /** Clear the spinner output on completion */
88
+ clearOnComplete?: boolean;
89
+ /** Color for the spinner */
90
+ color?: string;
91
+ }
92
+ /** Options for withProgress wrapper */
93
+ interface WithProgressOptions {
94
+ /** Map of phase keys to display names */
95
+ phases?: Record<string, string>;
96
+ /** Format string for progress bar */
97
+ format?: string;
98
+ /** Clear output on completion */
99
+ clearOnComplete?: boolean;
100
+ /** Show initial loading message after this many ms (default: 1000). Set to 0 to show immediately. */
101
+ showAfter?: number;
102
+ /** Initial loading message to show before progress starts (default: "Loading...") */
103
+ initialMessage?: string;
104
+ }
105
+ /** Task state for Tasks component */
106
+ interface TaskState {
107
+ id: string;
108
+ title: string;
109
+ status: TaskStatus;
110
+ progress?: {
111
+ current: number;
112
+ total: number;
113
+ };
114
+ error?: Error;
115
+ children?: TaskState[];
116
+ }
117
+ /** Props for React Spinner component */
118
+ interface SpinnerProps {
119
+ /** Label text to display */
120
+ label?: string;
121
+ /** Animation style */
122
+ style?: SpinnerStyle;
123
+ /** Spinner color */
124
+ color?: string;
125
+ }
126
+ /** Props for React ProgressBar component */
127
+ interface ProgressBarProps {
128
+ /** Current value */
129
+ value: number;
130
+ /** Total value */
131
+ total: number;
132
+ /** Width in characters */
133
+ width?: number;
134
+ /** Show percentage */
135
+ showPercentage?: boolean;
136
+ /** Show ETA */
137
+ showETA?: boolean;
138
+ /** Label text */
139
+ label?: string;
140
+ /** Color for completed portion */
141
+ color?: string;
142
+ }
143
+ /** Props for React Task component */
144
+ interface TaskProps {
145
+ /** Task title */
146
+ title: string;
147
+ /** Task status */
148
+ status: TaskStatus;
149
+ /** Children (e.g., nested progress bar) */
150
+ children?: React.ReactNode;
151
+ }
152
+ /** Props for React TextInput component */
153
+ interface TextInputProps {
154
+ /** Current input value (controlled) */
155
+ value: string;
156
+ /** Called when value changes */
157
+ onChange: (value: string) => void;
158
+ /** Placeholder text when empty */
159
+ placeholder?: string;
160
+ /** Mask character for password input (e.g., "*") */
161
+ mask?: string;
162
+ /** Autocomplete suggestions */
163
+ autocomplete?: string[];
164
+ /** Called when autocomplete suggestion is selected */
165
+ onAutocomplete?: (suggestion: string) => void;
166
+ /** Called when Enter is pressed */
167
+ onSubmit?: (value: string) => void;
168
+ /** Cursor position (for rendering) */
169
+ cursorPosition?: number;
170
+ /** Whether input is focused */
171
+ focused?: boolean;
172
+ }
173
+ /** Options for withTextInput CLI wrapper */
174
+ interface TextInputOptions {
175
+ /** Placeholder text shown when input is empty */
176
+ placeholder?: string;
177
+ /** Mask character for password input (e.g., "*") */
178
+ mask?: string;
179
+ /** Validation function - return error message or undefined if valid */
180
+ validate?: (value: string) => string | undefined;
181
+ /** Autocomplete suggestions */
182
+ autocomplete?: string[];
183
+ /** Default value */
184
+ defaultValue?: string;
185
+ /** Output stream (default: process.stdout) */
186
+ stream?: NodeJS.WriteStream;
187
+ /** Input stream (default: process.stdin) */
188
+ inputStream?: NodeJS.ReadStream;
189
+ }
190
+ /** Column definition for Table component */
191
+ interface TableColumn {
192
+ /** Key in data objects to display */
193
+ key: string;
194
+ /** Header text */
195
+ header: string;
196
+ /** Fixed column width (auto-calculated from content if not specified) */
197
+ width?: number;
198
+ /** Text alignment within the column */
199
+ align?: "left" | "center" | "right";
200
+ }
201
+ /** Props for React Table component */
202
+ interface TableProps {
203
+ /** Column definitions */
204
+ columns: TableColumn[];
205
+ /** Data rows to display */
206
+ data: Array<Record<string, unknown>>;
207
+ /** Show box borders around cells */
208
+ border?: boolean;
209
+ }
210
+ /** Option for Select component */
211
+ interface SelectOption<T> {
212
+ /** Display text for this option */
213
+ label: string;
214
+ /** Value returned when selected */
215
+ value: T;
216
+ }
217
+ /** Props for React Select component */
218
+ interface SelectProps<T> {
219
+ /** Available options */
220
+ options: SelectOption<T>[];
221
+ /** Currently selected value */
222
+ value?: T;
223
+ /** Called when selection changes */
224
+ onChange?: (value: T) => void;
225
+ /** Maximum number of visible options (default: 10) */
226
+ maxVisible?: number;
227
+ /** Controlled highlight index for keyboard navigation */
228
+ highlightIndex?: number;
229
+ /** Called when highlight index changes */
230
+ onHighlightChange?: (index: number) => void;
231
+ }
232
+ /** Options for withSelect CLI wrapper */
233
+ interface WithSelectOptions {
234
+ /** Initial highlighted index (default: 0) */
235
+ initial?: number;
236
+ /** Maximum number of visible options (default: 10) */
237
+ maxVisible?: number;
238
+ }
239
+ //#endregion
240
+ export { TextInputOptions as _, ProgressInfo as a, WithSelectOptions as b, SpinnerOptions as c, StepProgress as d, TableColumn as f, TaskStatus as g, TaskState as h, ProgressGenerator as i, SpinnerProps as l, TaskProps as m, ProgressBarProps as n, SelectOption as o, TableProps as p, ProgressCallback as r, SelectProps as s, ProgressBarOptions as t, SpinnerStyle as u, TextInputProps as v, WithSpinnerOptions as x, WithProgressOptions as y };
241
+ //# sourceMappingURL=types-CDgkE-Rw.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-CDgkE-Rw.d.mts","names":[],"sources":["../packages/ag-react/src/ui/types.ts"],"mappings":";;AAKA;;;UAAiB,YAAA;EACf,KAAA;EACA,OAAA;EACA,KAAA;EACA,MAAA;AAAA;;AAiBF;;;;;;;;;AAUA;;;;UAViB,YAAA;EAaL;EAXV,KAAA;EAW2B;EAT3B,OAAA;EAS4B;EAP5B,KAAA;AAAA;;KAIU,gBAAA,IAAoB,IAAA,EAAM,YAAA;;KAG1B,iBAAA,aAA8B,SAAA;EAAY,OAAA;EAAiB,KAAA;AAAA,GAAiB,CAAA;;KAG5E,YAAA;AAGZ;AAAA,KAAY,UAAA;;UAGK,cAAA;EAHK;EAKpB,IAAA;EAF6B;EAI7B,KAAA,GAAQ,YAAA;EAImB;EAF3B,KAAA;EAFA;EAIA,MAAA,GAAS,MAAA,CAAO,WAAA;EAFhB;EAIA,UAAA;EAFS;EAIT,QAAA;AAAA;;UAIe,kBAAA;EAJP;EAMR,KAAA;EAFiC;EAIjC,MAAA;EAgBe;EAdf,KAAA;EAFA;EAIA,QAAA;EAAA;EAEA,UAAA;EAEA;EAAA,cAAA;EAIA;EAFA,OAAA;EAEgB;EAAhB,MAAA,GAAS,MAAA,CAAO,WAAA;EAIhB;EAFA,UAAA;EAEe;EAAf,MAAA,GAAS,MAAA;AAAA;;UAIM,kBAAA;EAEK;EAApB,KAAA,GAAQ,YAAA;EAAA;EAER,eAAA;EAEA;EAAA,KAAA;AAAA;AAIF;AAAA,UAAiB,mBAAA;;EAEf,MAAA,GAAS,MAAA;EAAT;EAEA,MAAA;EAAA;EAEA,eAAA;EAEA;EAAA,SAAA;EAEc;EAAd,cAAA;AAAA;;UAIe,SAAA;EACf,EAAA;EACA,KAAA;EACA,MAAA,EAAQ,UAAA;EACR,QAAA;IAAa,OAAA;IAAiB,KAAA;EAAA;EAC9B,KAAA,GAAQ,KAAA;EACR,QAAA,GAAW,SAAA;AAAA;;UAII,YAAA;EALf;EAOA,KAAA;EANA;EAQA,KAAA,GAAQ,YAAA;EARY;EAUpB,KAAA;AAAA;;UAIe,gBAAA;EANK;EAQpB,KAAA;EARA;EAUA,KAAA;EARA;EAUA,KAAA;EAVK;EAYL,cAAA;EAR+B;EAU/B,OAAA;EAV+B;EAY/B,KAAA;EARA;EAUA,KAAA;AAAA;;UAIe,SAAA;EAJf;EAMA,KAAA;EANK;EAQL,MAAA,EAAQ,UAAA;EAJgB;EAMxB,QAAA,GAAW,KAAA,CAAM,SAAA;AAAA;;UAIF,cAAA;EANP;EAQR,KAAA;EANW;EAQX,QAAA,GAAW,KAAA;EARe;EAU1B,WAAA;EANe;EAQf,IAAA;;EAEA,YAAA;EARA;EAUA,cAAA,IAAkB,UAAA;EARP;EAUX,QAAA,IAAY,KAAA;EANZ;EAQA,cAAA;EAJA;EAMA,OAAA;AAAA;;UAIe,gBAAA;EAJf;EAMA,WAAA;EANO;EAQP,IAAA;EAJ+B;EAM/B,QAAA,IAAY,KAAA;EAQmB;EAN/B,YAAA;EAJA;EAMA,YAAA;EAJY;EAMZ,MAAA,GAAS,MAAA,CAAO,WAAA;EAFhB;EAIA,WAAA,GAAc,MAAA,CAAO,UAAA;AAAA;;UAIN,WAAA;EAJD;EAMd,GAAA;EAN+B;EAQ/B,MAAA;EAJe;EAMf,KAAA;;EAEA,KAAA;AAAA;;UAIe,UAAA;EAJf;EAMA,OAAA,EAAS,WAAA;EANJ;EAQL,IAAA,EAAM,KAAA,CAAM,MAAA;EAJa;EAMzB,MAAA;AAAA;;UAIe,YAAA;EANJ;EAQX,KAAA;EAVA;EAYA,KAAA,EAAO,CAAA;AAAA;;UAIQ,WAAA;EAZf;EAcA,OAAA,EAAS,YAAA,CAAa,CAAA;EAdhB;EAgBN,KAAA,GAAQ,CAAA;EAZmB;EAc3B,QAAA,IAAY,KAAA,EAAO,CAAA;EAVX;EAYR,UAAA;EAdA;EAgBA,cAAA;EAdO;EAgBP,iBAAA,IAAqB,KAAA;AAAA;AAZvB;AAAA,UAgBiB,iBAAA;EAhBW;EAkB1B,OAAA;EAhBS;EAkBT,UAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import { a as useTransition, c as useAnimation, d as easings, f as resolveEasing, i as UseTransitionOptions, l as EasingFn, n as useTimeout, o as UseAnimationOptions, r as useInterval, s as UseAnimationResult, t as useLatest, u as EasingName } from "../useLatest-BMIYXd6e.mjs";
2
+ export { EasingFn, EasingName, UseAnimationOptions, UseAnimationResult, UseTransitionOptions, easings, resolveEasing, useTransition as useAnimatedTransition, useAnimation, useInterval, useLatest, useTimeout };
@@ -0,0 +1,2 @@
1
+ import { a as useAnimation, i as useTransition, n as useTimeout, o as easings, r as useInterval, s as resolveEasing, t as useLatest } from "../animation-C_PTO0uH.mjs";
2
+ export { easings, resolveEasing, useTransition as useAnimatedTransition, useAnimation, useInterval, useLatest, useTimeout };
@@ -0,0 +1,2 @@
1
+ import { a as CURSOR_RESTORE, c as CURSOR_TO_START, d as getTerminalWidth, f as isTTY, h as writeLine, i as CURSOR_HIDE, l as cursorDown, m as write, n as CLEAR_LINE_END, o as CURSOR_SAVE, p as withCursor, r as CLEAR_SCREEN, s as CURSOR_SHOW, t as CLEAR_LINE, u as cursorUp } from "../ansi-zmNzgkPB.mjs";
2
+ export { CLEAR_LINE, CLEAR_LINE_END, CLEAR_SCREEN, CURSOR_HIDE, CURSOR_RESTORE, CURSOR_SAVE, CURSOR_SHOW, CURSOR_TO_START, cursorDown, cursorUp, getTerminalWidth, isTTY, withCursor, write, writeLine };
@@ -0,0 +1,2 @@
1
+ import { a as CURSOR_RESTORE, c as CURSOR_TO_START, d as getTerminalWidth, f as isTTY, h as writeLine, i as CURSOR_HIDE, l as cursorDown, m as write, n as CLEAR_LINE_END, o as CURSOR_SAVE, p as withCursor, r as CLEAR_SCREEN, s as CURSOR_SHOW, t as CLEAR_LINE, u as cursorUp } from "../ansi-CXLE_pt1.mjs";
2
+ export { CLEAR_LINE, CLEAR_LINE_END, CLEAR_SCREEN, CURSOR_HIDE, CURSOR_RESTORE, CURSOR_SAVE, CURSOR_SHOW, CURSOR_TO_START, cursorDown, cursorUp, getTerminalWidth, isTTY, withCursor, write, writeLine };
@@ -0,0 +1,5 @@
1
+ import { i as createSpinner, n as SPINNER_FRAMES, r as Spinner, t as CallableSpinner } from "../spinner-Cgej6Vnb.mjs";
2
+ import { n as TaskHandle, r as ProgressBar, t as MultiProgress } from "../multi-progress-C0-rkn86.mjs";
3
+ import { a as CURSOR_RESTORE, c as CURSOR_TO_START, d as getTerminalWidth, f as isTTY, h as writeLine, i as CURSOR_HIDE, l as cursorDown, m as write, n as CLEAR_LINE_END, o as CURSOR_SAVE, p as withCursor, r as CLEAR_SCREEN, s as CURSOR_SHOW, t as CLEAR_LINE, u as cursorUp } from "../ansi-zmNzgkPB.mjs";
4
+ import { ColorizeHelpOptions, colorizeHelp } from "@silvery/commander";
5
+ export { CLEAR_LINE, CLEAR_LINE_END, CLEAR_SCREEN, CURSOR_HIDE, CURSOR_RESTORE, CURSOR_SAVE, CURSOR_SHOW, CURSOR_TO_START, CallableSpinner, type ColorizeHelpOptions, MultiProgress, ProgressBar, SPINNER_FRAMES, Spinner, TaskHandle, colorizeHelp, createSpinner, cursorDown, cursorUp, getTerminalWidth, isTTY, withCursor, write, writeLine };
@@ -0,0 +1,7 @@
1
+ import { i as createSpinner, r as Spinner, t as SPINNER_FRAMES } from "../spinner-DSByknyx.mjs";
2
+ import { a as CURSOR_RESTORE, c as CURSOR_TO_START, d as getTerminalWidth, f as isTTY, h as writeLine, i as CURSOR_HIDE, l as cursorDown, m as write, n as CLEAR_LINE_END, o as CURSOR_SAVE, p as withCursor, r as CLEAR_SCREEN, s as CURSOR_SHOW, t as CLEAR_LINE, u as cursorUp } from "../ansi-CXLE_pt1.mjs";
3
+ import { t as ProgressBar } from "../progress-bar-COPSBlT9.mjs";
4
+ import { t as MultiProgress } from "../multi-progress-CQVB9lES.mjs";
5
+ import "../cli-B-k7Bm56.mjs";
6
+ import { colorizeHelp } from "@silvery/commander";
7
+ export { CLEAR_LINE, CLEAR_LINE_END, CLEAR_SCREEN, CURSOR_HIDE, CURSOR_RESTORE, CURSOR_SAVE, CURSOR_SHOW, CURSOR_TO_START, MultiProgress, ProgressBar, SPINNER_FRAMES, Spinner, colorizeHelp, createSpinner, cursorDown, cursorUp, getTerminalWidth, isTTY, withCursor, write, writeLine };
@@ -0,0 +1,35 @@
1
+ import { f as TableColumn, p as TableProps } from "../types-CDgkE-Rw.mjs";
2
+ import React from "react";
3
+
4
+ //#region packages/ag-react/src/ui/display/Table.d.ts
5
+ /**
6
+ * Data grid display component for React TUI apps
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Table } from "@silvery/ag-react/ui/display";
11
+ *
12
+ * const columns = [
13
+ * { key: "name", header: "Name", width: 20 },
14
+ * { key: "status", header: "Status", width: 10, align: "center" },
15
+ * { key: "count", header: "Count", width: 8, align: "right" },
16
+ * ];
17
+ *
18
+ * const data = [
19
+ * { name: "Item 1", status: "active", count: 42 },
20
+ * { name: "Item 2", status: "pending", count: 7 },
21
+ * ];
22
+ *
23
+ * function DataView() {
24
+ * return <Table columns={columns} data={data} border />;
25
+ * }
26
+ * ```
27
+ */
28
+ declare function Table({
29
+ columns,
30
+ data,
31
+ border
32
+ }: TableProps): React.ReactElement;
33
+ //#endregion
34
+ export { Table, type TableColumn, type TableProps };
35
+ //# sourceMappingURL=display.d.mts.map