create-microact-app 1.0.1

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 (213) hide show
  1. package/index.js +95 -0
  2. package/package.json +21 -0
  3. package/templates/vanilla/.github/workflows/deploy.yml +38 -0
  4. package/templates/vanilla/index.html +13 -0
  5. package/templates/vanilla/node_modules/.package-lock.json +207 -0
  6. package/templates/vanilla/node_modules/@esbuild/darwin-x64/README.md +3 -0
  7. package/templates/vanilla/node_modules/@esbuild/darwin-x64/bin/esbuild +0 -0
  8. package/templates/vanilla/node_modules/@esbuild/darwin-x64/package.json +17 -0
  9. package/templates/vanilla/node_modules/@monygroupcorp/microact/README.md +154 -0
  10. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js +1749 -0
  11. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js.map +1 -0
  12. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js +1743 -0
  13. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js.map +1 -0
  14. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js +2 -0
  15. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js.map +1 -0
  16. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.html +13 -0
  17. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.js +63 -0
  18. package/templates/vanilla/node_modules/@monygroupcorp/microact/package.json +38 -0
  19. package/templates/vanilla/node_modules/@monygroupcorp/microact/rollup.config.cjs +30 -0
  20. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Component.js +831 -0
  21. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/DOMUpdater.js +320 -0
  22. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/EventBus.js +123 -0
  23. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Router.js +253 -0
  24. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/UpdateScheduler.js +218 -0
  25. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/index.js +6 -0
  26. package/templates/vanilla/node_modules/esbuild/LICENSE.md +21 -0
  27. package/templates/vanilla/node_modules/esbuild/README.md +3 -0
  28. package/templates/vanilla/node_modules/esbuild/bin/esbuild +0 -0
  29. package/templates/vanilla/node_modules/esbuild/install.js +287 -0
  30. package/templates/vanilla/node_modules/esbuild/lib/main.d.ts +660 -0
  31. package/templates/vanilla/node_modules/esbuild/lib/main.js +2393 -0
  32. package/templates/vanilla/node_modules/esbuild/package.json +42 -0
  33. package/templates/vanilla/node_modules/nanoid/LICENSE +20 -0
  34. package/templates/vanilla/node_modules/nanoid/README.md +39 -0
  35. package/templates/vanilla/node_modules/nanoid/async/index.browser.cjs +69 -0
  36. package/templates/vanilla/node_modules/nanoid/async/index.browser.js +34 -0
  37. package/templates/vanilla/node_modules/nanoid/async/index.cjs +71 -0
  38. package/templates/vanilla/node_modules/nanoid/async/index.d.ts +56 -0
  39. package/templates/vanilla/node_modules/nanoid/async/index.js +35 -0
  40. package/templates/vanilla/node_modules/nanoid/async/index.native.js +26 -0
  41. package/templates/vanilla/node_modules/nanoid/async/package.json +12 -0
  42. package/templates/vanilla/node_modules/nanoid/bin/nanoid.cjs +55 -0
  43. package/templates/vanilla/node_modules/nanoid/index.browser.cjs +72 -0
  44. package/templates/vanilla/node_modules/nanoid/index.browser.js +34 -0
  45. package/templates/vanilla/node_modules/nanoid/index.cjs +85 -0
  46. package/templates/vanilla/node_modules/nanoid/index.d.cts +91 -0
  47. package/templates/vanilla/node_modules/nanoid/index.d.ts +91 -0
  48. package/templates/vanilla/node_modules/nanoid/index.js +45 -0
  49. package/templates/vanilla/node_modules/nanoid/nanoid.js +1 -0
  50. package/templates/vanilla/node_modules/nanoid/non-secure/index.cjs +34 -0
  51. package/templates/vanilla/node_modules/nanoid/non-secure/index.d.ts +33 -0
  52. package/templates/vanilla/node_modules/nanoid/non-secure/index.js +21 -0
  53. package/templates/vanilla/node_modules/nanoid/non-secure/package.json +6 -0
  54. package/templates/vanilla/node_modules/nanoid/package.json +89 -0
  55. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.cjs +7 -0
  56. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.js +3 -0
  57. package/templates/vanilla/node_modules/nanoid/url-alphabet/package.json +6 -0
  58. package/templates/vanilla/node_modules/picocolors/LICENSE +15 -0
  59. package/templates/vanilla/node_modules/picocolors/README.md +21 -0
  60. package/templates/vanilla/node_modules/picocolors/package.json +25 -0
  61. package/templates/vanilla/node_modules/picocolors/picocolors.browser.js +4 -0
  62. package/templates/vanilla/node_modules/picocolors/picocolors.d.ts +5 -0
  63. package/templates/vanilla/node_modules/picocolors/picocolors.js +75 -0
  64. package/templates/vanilla/node_modules/picocolors/types.d.ts +51 -0
  65. package/templates/vanilla/node_modules/postcss/LICENSE +20 -0
  66. package/templates/vanilla/node_modules/postcss/README.md +29 -0
  67. package/templates/vanilla/node_modules/postcss/lib/at-rule.d.ts +140 -0
  68. package/templates/vanilla/node_modules/postcss/lib/at-rule.js +25 -0
  69. package/templates/vanilla/node_modules/postcss/lib/comment.d.ts +68 -0
  70. package/templates/vanilla/node_modules/postcss/lib/comment.js +13 -0
  71. package/templates/vanilla/node_modules/postcss/lib/container.d.ts +483 -0
  72. package/templates/vanilla/node_modules/postcss/lib/container.js +447 -0
  73. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.d.ts +248 -0
  74. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.js +133 -0
  75. package/templates/vanilla/node_modules/postcss/lib/declaration.d.ts +151 -0
  76. package/templates/vanilla/node_modules/postcss/lib/declaration.js +24 -0
  77. package/templates/vanilla/node_modules/postcss/lib/document.d.ts +69 -0
  78. package/templates/vanilla/node_modules/postcss/lib/document.js +33 -0
  79. package/templates/vanilla/node_modules/postcss/lib/fromJSON.d.ts +9 -0
  80. package/templates/vanilla/node_modules/postcss/lib/fromJSON.js +54 -0
  81. package/templates/vanilla/node_modules/postcss/lib/input.d.ts +227 -0
  82. package/templates/vanilla/node_modules/postcss/lib/input.js +265 -0
  83. package/templates/vanilla/node_modules/postcss/lib/lazy-result.d.ts +190 -0
  84. package/templates/vanilla/node_modules/postcss/lib/lazy-result.js +550 -0
  85. package/templates/vanilla/node_modules/postcss/lib/list.d.ts +60 -0
  86. package/templates/vanilla/node_modules/postcss/lib/list.js +58 -0
  87. package/templates/vanilla/node_modules/postcss/lib/map-generator.js +368 -0
  88. package/templates/vanilla/node_modules/postcss/lib/no-work-result.d.ts +46 -0
  89. package/templates/vanilla/node_modules/postcss/lib/no-work-result.js +138 -0
  90. package/templates/vanilla/node_modules/postcss/lib/node.d.ts +556 -0
  91. package/templates/vanilla/node_modules/postcss/lib/node.js +449 -0
  92. package/templates/vanilla/node_modules/postcss/lib/parse.d.ts +9 -0
  93. package/templates/vanilla/node_modules/postcss/lib/parse.js +42 -0
  94. package/templates/vanilla/node_modules/postcss/lib/parser.js +611 -0
  95. package/templates/vanilla/node_modules/postcss/lib/postcss.d.mts +69 -0
  96. package/templates/vanilla/node_modules/postcss/lib/postcss.d.ts +458 -0
  97. package/templates/vanilla/node_modules/postcss/lib/postcss.js +101 -0
  98. package/templates/vanilla/node_modules/postcss/lib/postcss.mjs +30 -0
  99. package/templates/vanilla/node_modules/postcss/lib/previous-map.d.ts +81 -0
  100. package/templates/vanilla/node_modules/postcss/lib/previous-map.js +144 -0
  101. package/templates/vanilla/node_modules/postcss/lib/processor.d.ts +115 -0
  102. package/templates/vanilla/node_modules/postcss/lib/processor.js +67 -0
  103. package/templates/vanilla/node_modules/postcss/lib/result.d.ts +205 -0
  104. package/templates/vanilla/node_modules/postcss/lib/result.js +42 -0
  105. package/templates/vanilla/node_modules/postcss/lib/root.d.ts +87 -0
  106. package/templates/vanilla/node_modules/postcss/lib/root.js +61 -0
  107. package/templates/vanilla/node_modules/postcss/lib/rule.d.ts +126 -0
  108. package/templates/vanilla/node_modules/postcss/lib/rule.js +27 -0
  109. package/templates/vanilla/node_modules/postcss/lib/stringifier.d.ts +46 -0
  110. package/templates/vanilla/node_modules/postcss/lib/stringifier.js +353 -0
  111. package/templates/vanilla/node_modules/postcss/lib/stringify.d.ts +9 -0
  112. package/templates/vanilla/node_modules/postcss/lib/stringify.js +11 -0
  113. package/templates/vanilla/node_modules/postcss/lib/symbols.js +5 -0
  114. package/templates/vanilla/node_modules/postcss/lib/terminal-highlight.js +70 -0
  115. package/templates/vanilla/node_modules/postcss/lib/tokenize.js +266 -0
  116. package/templates/vanilla/node_modules/postcss/lib/warn-once.js +13 -0
  117. package/templates/vanilla/node_modules/postcss/lib/warning.d.ts +147 -0
  118. package/templates/vanilla/node_modules/postcss/lib/warning.js +37 -0
  119. package/templates/vanilla/node_modules/postcss/package.json +88 -0
  120. package/templates/vanilla/node_modules/rollup/LICENSE.md +695 -0
  121. package/templates/vanilla/node_modules/rollup/README.md +125 -0
  122. package/templates/vanilla/node_modules/rollup/dist/bin/rollup +1715 -0
  123. package/templates/vanilla/node_modules/rollup/dist/es/getLogFilter.js +64 -0
  124. package/templates/vanilla/node_modules/rollup/dist/es/package.json +1 -0
  125. package/templates/vanilla/node_modules/rollup/dist/es/rollup.js +17 -0
  126. package/templates/vanilla/node_modules/rollup/dist/es/shared/node-entry.js +27273 -0
  127. package/templates/vanilla/node_modules/rollup/dist/es/shared/watch.js +4857 -0
  128. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.d.ts +5 -0
  129. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.js +69 -0
  130. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.d.ts +20 -0
  131. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.js +29 -0
  132. package/templates/vanilla/node_modules/rollup/dist/rollup.d.ts +1012 -0
  133. package/templates/vanilla/node_modules/rollup/dist/rollup.js +31 -0
  134. package/templates/vanilla/node_modules/rollup/dist/shared/fsevents-importer.js +37 -0
  135. package/templates/vanilla/node_modules/rollup/dist/shared/index.js +4571 -0
  136. package/templates/vanilla/node_modules/rollup/dist/shared/loadConfigFile.js +546 -0
  137. package/templates/vanilla/node_modules/rollup/dist/shared/rollup.js +27351 -0
  138. package/templates/vanilla/node_modules/rollup/dist/shared/watch-cli.js +561 -0
  139. package/templates/vanilla/node_modules/rollup/dist/shared/watch-proxy.js +87 -0
  140. package/templates/vanilla/node_modules/rollup/dist/shared/watch.js +316 -0
  141. package/templates/vanilla/node_modules/rollup/package.json +181 -0
  142. package/templates/vanilla/node_modules/source-map-js/LICENSE +28 -0
  143. package/templates/vanilla/node_modules/source-map-js/README.md +765 -0
  144. package/templates/vanilla/node_modules/source-map-js/lib/array-set.js +121 -0
  145. package/templates/vanilla/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  146. package/templates/vanilla/node_modules/source-map-js/lib/base64.js +67 -0
  147. package/templates/vanilla/node_modules/source-map-js/lib/binary-search.js +111 -0
  148. package/templates/vanilla/node_modules/source-map-js/lib/mapping-list.js +79 -0
  149. package/templates/vanilla/node_modules/source-map-js/lib/quick-sort.js +132 -0
  150. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
  151. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  152. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
  153. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  154. package/templates/vanilla/node_modules/source-map-js/lib/source-node.d.ts +1 -0
  155. package/templates/vanilla/node_modules/source-map-js/lib/source-node.js +413 -0
  156. package/templates/vanilla/node_modules/source-map-js/lib/util.js +594 -0
  157. package/templates/vanilla/node_modules/source-map-js/package.json +71 -0
  158. package/templates/vanilla/node_modules/source-map-js/source-map.d.ts +104 -0
  159. package/templates/vanilla/node_modules/source-map-js/source-map.js +8 -0
  160. package/templates/vanilla/node_modules/vite/LICENSE.md +3396 -0
  161. package/templates/vanilla/node_modules/vite/README.md +20 -0
  162. package/templates/vanilla/node_modules/vite/bin/openChrome.applescript +95 -0
  163. package/templates/vanilla/node_modules/vite/bin/vite.js +61 -0
  164. package/templates/vanilla/node_modules/vite/client.d.ts +281 -0
  165. package/templates/vanilla/node_modules/vite/dist/client/client.mjs +725 -0
  166. package/templates/vanilla/node_modules/vite/dist/client/client.mjs.map +1 -0
  167. package/templates/vanilla/node_modules/vite/dist/client/env.mjs +30 -0
  168. package/templates/vanilla/node_modules/vite/dist/client/env.mjs.map +1 -0
  169. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-7ec6f216.js +914 -0
  170. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-827b23df.js +66713 -0
  171. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-c423598f.js +561 -0
  172. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f0c7dae0.js +7930 -0
  173. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f1e8587f.js +7646 -0
  174. package/templates/vanilla/node_modules/vite/dist/node/cli.js +929 -0
  175. package/templates/vanilla/node_modules/vite/dist/node/constants.js +130 -0
  176. package/templates/vanilla/node_modules/vite/dist/node/index.d.ts +3548 -0
  177. package/templates/vanilla/node_modules/vite/dist/node/index.js +158 -0
  178. package/templates/vanilla/node_modules/vite/dist/node-cjs/publicUtils.cjs +4555 -0
  179. package/templates/vanilla/node_modules/vite/index.cjs +34 -0
  180. package/templates/vanilla/node_modules/vite/package.json +173 -0
  181. package/templates/vanilla/node_modules/vite/types/customEvent.d.ts +35 -0
  182. package/templates/vanilla/node_modules/vite/types/hmrPayload.d.ts +61 -0
  183. package/templates/vanilla/node_modules/vite/types/hot.d.ts +32 -0
  184. package/templates/vanilla/node_modules/vite/types/importGlob.d.ts +97 -0
  185. package/templates/vanilla/node_modules/vite/types/importMeta.d.ts +26 -0
  186. package/templates/vanilla/node_modules/vite/types/metadata.d.ts +10 -0
  187. package/templates/vanilla/node_modules/vite/types/package.json +4 -0
  188. package/templates/vanilla/package-lock.json +589 -0
  189. package/templates/vanilla/package.json +17 -0
  190. package/templates/vanilla/src/components/App.js +60 -0
  191. package/templates/vanilla/src/components/Card.js +21 -0
  192. package/templates/vanilla/src/components/Hero.js +15 -0
  193. package/templates/vanilla/src/components/InteractiveDemo.js +59 -0
  194. package/templates/vanilla/src/main.js +9 -0
  195. package/templates/vanilla/src/style/main.css +172 -0
  196. package/templates/vanilla/vite.config.js +8 -0
  197. package/templates/web3/.env.example +15 -0
  198. package/templates/web3/.github/workflows/deploy.yml +38 -0
  199. package/templates/web3/README.md +33 -0
  200. package/templates/web3/contracts/foundry.toml +11 -0
  201. package/templates/web3/contracts/script/Deploy.s.sol +13 -0
  202. package/templates/web3/contracts/src/Counter.sol +21 -0
  203. package/templates/web3/index.html +13 -0
  204. package/templates/web3/package.json +25 -0
  205. package/templates/web3/scripts/chain-start.mjs +305 -0
  206. package/templates/web3/scripts/chain-stop.mjs +34 -0
  207. package/templates/web3/scripts/deploy.mjs +155 -0
  208. package/templates/web3/scripts/setup.mjs +42 -0
  209. package/templates/web3/src/components/App.js +49 -0
  210. package/templates/web3/src/components/CounterCard.js +111 -0
  211. package/templates/web3/src/main.js +54 -0
  212. package/templates/web3/src/style/main.css +345 -0
  213. package/templates/web3/vite.config.js +29 -0
@@ -0,0 +1,483 @@
1
+ import AtRule from './at-rule.js'
2
+ import Comment from './comment.js'
3
+ import Declaration from './declaration.js'
4
+ import Node, { ChildNode, ChildProps, NodeProps } from './node.js'
5
+ import { Root } from './postcss.js'
6
+ import Rule from './rule.js'
7
+
8
+ declare namespace Container {
9
+ export type ContainerWithChildren<Child extends Node = ChildNode> = {
10
+ nodes: Child[]
11
+ } & (
12
+ | AtRule
13
+ | Root
14
+ | Rule
15
+ )
16
+
17
+ export interface ValueOptions {
18
+ /**
19
+ * String that’s used to narrow down values and speed up the regexp search.
20
+ */
21
+ fast?: string
22
+
23
+ /**
24
+ * An array of property names.
25
+ */
26
+ props?: readonly string[]
27
+ }
28
+
29
+ export interface ContainerProps extends NodeProps {
30
+ nodes?: readonly (ChildProps | Node)[]
31
+ }
32
+
33
+ /**
34
+ * All types that can be passed into container methods to create or add a new
35
+ * child node.
36
+ */
37
+ export type NewChild =
38
+ | ChildProps
39
+ | Node
40
+ | readonly ChildProps[]
41
+ | readonly Node[]
42
+ | readonly string[]
43
+ | string
44
+ | undefined
45
+
46
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
47
+ export { Container_ as default }
48
+ }
49
+
50
+ /**
51
+ * The `Root`, `AtRule`, and `Rule` container nodes
52
+ * inherit some common methods to help work with their children.
53
+ *
54
+ * Note that all containers can store any content. If you write a rule inside
55
+ * a rule, PostCSS will parse it.
56
+ */
57
+ declare abstract class Container_<Child extends Node = ChildNode> extends Node {
58
+ /**
59
+ * An array containing the container’s children.
60
+ *
61
+ * ```js
62
+ * const root = postcss.parse('a { color: black }')
63
+ * root.nodes.length //=> 1
64
+ * root.nodes[0].selector //=> 'a'
65
+ * root.nodes[0].nodes[0].prop //=> 'color'
66
+ * ```
67
+ */
68
+ nodes: Child[] | undefined
69
+
70
+ /**
71
+ * The container’s first child.
72
+ *
73
+ * ```js
74
+ * rule.first === rules.nodes[0]
75
+ * ```
76
+ */
77
+ get first(): Child | undefined
78
+
79
+ /**
80
+ * The container’s last child.
81
+ *
82
+ * ```js
83
+ * rule.last === rule.nodes[rule.nodes.length - 1]
84
+ * ```
85
+ */
86
+ get last(): Child | undefined
87
+ /**
88
+ * Inserts new nodes to the end of the container.
89
+ *
90
+ * ```js
91
+ * const decl1 = new Declaration({ prop: 'color', value: 'black' })
92
+ * const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
93
+ * rule.append(decl1, decl2)
94
+ *
95
+ * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
96
+ * root.append({ selector: 'a' }) // rule
97
+ * rule.append({ prop: 'color', value: 'black' }) // declaration
98
+ * rule.append({ text: 'Comment' }) // comment
99
+ *
100
+ * root.append('a {}')
101
+ * root.first.append('color: black; z-index: 1')
102
+ * ```
103
+ *
104
+ * @param nodes New nodes.
105
+ * @return This node for methods chain.
106
+ */
107
+ append(...nodes: Container.NewChild[]): this
108
+ assign(overrides: Container.ContainerProps | object): this
109
+ clone(overrides?: Partial<Container.ContainerProps>): this
110
+
111
+ cloneAfter(overrides?: Partial<Container.ContainerProps>): this
112
+
113
+ cloneBefore(overrides?: Partial<Container.ContainerProps>): this
114
+ /**
115
+ * Iterates through the container’s immediate children,
116
+ * calling `callback` for each child.
117
+ *
118
+ * Returning `false` in the callback will break iteration.
119
+ *
120
+ * This method only iterates through the container’s immediate children.
121
+ * If you need to recursively iterate through all the container’s descendant
122
+ * nodes, use `Container#walk`.
123
+ *
124
+ * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe
125
+ * if you are mutating the array of child nodes during iteration.
126
+ * PostCSS will adjust the current index to match the mutations.
127
+ *
128
+ * ```js
129
+ * const root = postcss.parse('a { color: black; z-index: 1 }')
130
+ * const rule = root.first
131
+ *
132
+ * for (const decl of rule.nodes) {
133
+ * decl.cloneBefore({ prop: '-webkit-' + decl.prop })
134
+ * // Cycle will be infinite, because cloneBefore moves the current node
135
+ * // to the next index
136
+ * }
137
+ *
138
+ * rule.each(decl => {
139
+ * decl.cloneBefore({ prop: '-webkit-' + decl.prop })
140
+ * // Will be executed only for color and z-index
141
+ * })
142
+ * ```
143
+ *
144
+ * @param callback Iterator receives each node and index.
145
+ * @return Returns `false` if iteration was broke.
146
+ */
147
+ each(
148
+ callback: (node: Child, index: number) => false | void
149
+ ): false | undefined
150
+
151
+ /**
152
+ * Returns `true` if callback returns `true`
153
+ * for all of the container’s children.
154
+ *
155
+ * ```js
156
+ * const noPrefixes = rule.every(i => i.prop[0] !== '-')
157
+ * ```
158
+ *
159
+ * @param condition Iterator returns true or false.
160
+ * @return Is every child pass condition.
161
+ */
162
+ every(
163
+ condition: (node: Child, index: number, nodes: Child[]) => boolean
164
+ ): boolean
165
+ /**
166
+ * Returns a `child`’s index within the `Container#nodes` array.
167
+ *
168
+ * ```js
169
+ * rule.index( rule.nodes[2] ) //=> 2
170
+ * ```
171
+ *
172
+ * @param child Child of the current container.
173
+ * @return Child index.
174
+ */
175
+ index(child: Child | number): number
176
+
177
+ /**
178
+ * Insert new node after old node within the container.
179
+ *
180
+ * @param oldNode Child or child’s index.
181
+ * @param newNode New node.
182
+ * @return This node for methods chain.
183
+ */
184
+ insertAfter(oldNode: Child | number, newNode: Container.NewChild): this
185
+
186
+ /**
187
+ * Traverses the container’s descendant nodes, calling callback
188
+ * for each comment node.
189
+ *
190
+ * Like `Container#each`, this method is safe
191
+ * to use if you are mutating arrays during iteration.
192
+ *
193
+ * ```js
194
+ * root.walkComments(comment => {
195
+ * comment.remove()
196
+ * })
197
+ * ```
198
+ *
199
+ * @param callback Iterator receives each node and index.
200
+ * @return Returns `false` if iteration was broke.
201
+ */
202
+
203
+ /**
204
+ * Insert new node before old node within the container.
205
+ *
206
+ * ```js
207
+ * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }))
208
+ * ```
209
+ *
210
+ * @param oldNode Child or child’s index.
211
+ * @param newNode New node.
212
+ * @return This node for methods chain.
213
+ */
214
+ insertBefore(oldNode: Child | number, newNode: Container.NewChild): this
215
+ /**
216
+ * Inserts new nodes to the start of the container.
217
+ *
218
+ * ```js
219
+ * const decl1 = new Declaration({ prop: 'color', value: 'black' })
220
+ * const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
221
+ * rule.prepend(decl1, decl2)
222
+ *
223
+ * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
224
+ * root.append({ selector: 'a' }) // rule
225
+ * rule.append({ prop: 'color', value: 'black' }) // declaration
226
+ * rule.append({ text: 'Comment' }) // comment
227
+ *
228
+ * root.append('a {}')
229
+ * root.first.append('color: black; z-index: 1')
230
+ * ```
231
+ *
232
+ * @param nodes New nodes.
233
+ * @return This node for methods chain.
234
+ */
235
+ prepend(...nodes: Container.NewChild[]): this
236
+
237
+ /**
238
+ * Add child to the end of the node.
239
+ *
240
+ * ```js
241
+ * rule.push(new Declaration({ prop: 'color', value: 'black' }))
242
+ * ```
243
+ *
244
+ * @param child New node.
245
+ * @return This node for methods chain.
246
+ */
247
+ push(child: Child): this
248
+
249
+ /**
250
+ * Removes all children from the container
251
+ * and cleans their parent properties.
252
+ *
253
+ * ```js
254
+ * rule.removeAll()
255
+ * rule.nodes.length //=> 0
256
+ * ```
257
+ *
258
+ * @return This node for methods chain.
259
+ */
260
+ removeAll(): this
261
+
262
+ /**
263
+ * Removes node from the container and cleans the parent properties
264
+ * from the node and its children.
265
+ *
266
+ * ```js
267
+ * rule.nodes.length //=> 5
268
+ * rule.removeChild(decl)
269
+ * rule.nodes.length //=> 4
270
+ * decl.parent //=> undefined
271
+ * ```
272
+ *
273
+ * @param child Child or child’s index.
274
+ * @return This node for methods chain.
275
+ */
276
+ removeChild(child: Child | number): this
277
+
278
+ replaceValues(
279
+ pattern: RegExp | string,
280
+ replaced: { (substring: string, ...args: any[]): string } | string
281
+ ): this
282
+ /**
283
+ * Passes all declaration values within the container that match pattern
284
+ * through callback, replacing those values with the returned result
285
+ * of callback.
286
+ *
287
+ * This method is useful if you are using a custom unit or function
288
+ * and need to iterate through all values.
289
+ *
290
+ * ```js
291
+ * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => {
292
+ * return 15 * parseInt(string) + 'px'
293
+ * })
294
+ * ```
295
+ *
296
+ * @param pattern Replace pattern.
297
+ * @param {object} options Options to speed up the search.
298
+ * @param replaced String to replace pattern or callback
299
+ * that returns a new value. The callback
300
+ * will receive the same arguments
301
+ * as those passed to a function parameter
302
+ * of `String#replace`.
303
+ * @return This node for methods chain.
304
+ */
305
+ replaceValues(
306
+ pattern: RegExp | string,
307
+ options: Container.ValueOptions,
308
+ replaced: { (substring: string, ...args: any[]): string } | string
309
+ ): this
310
+
311
+ /**
312
+ * Returns `true` if callback returns `true` for (at least) one
313
+ * of the container’s children.
314
+ *
315
+ * ```js
316
+ * const hasPrefix = rule.some(i => i.prop[0] === '-')
317
+ * ```
318
+ *
319
+ * @param condition Iterator returns true or false.
320
+ * @return Is some child pass condition.
321
+ */
322
+ some(
323
+ condition: (node: Child, index: number, nodes: Child[]) => boolean
324
+ ): boolean
325
+
326
+ /**
327
+ * Traverses the container’s descendant nodes, calling callback
328
+ * for each node.
329
+ *
330
+ * Like container.each(), this method is safe to use
331
+ * if you are mutating arrays during iteration.
332
+ *
333
+ * If you only need to iterate through the container’s immediate children,
334
+ * use `Container#each`.
335
+ *
336
+ * ```js
337
+ * root.walk(node => {
338
+ * // Traverses all descendant nodes.
339
+ * })
340
+ * ```
341
+ *
342
+ * @param callback Iterator receives each node and index.
343
+ * @return Returns `false` if iteration was broke.
344
+ */
345
+ walk(
346
+ callback: (node: ChildNode, index: number) => false | void
347
+ ): false | undefined
348
+
349
+ /**
350
+ * Traverses the container’s descendant nodes, calling callback
351
+ * for each at-rule node.
352
+ *
353
+ * If you pass a filter, iteration will only happen over at-rules
354
+ * that have matching names.
355
+ *
356
+ * Like `Container#each`, this method is safe
357
+ * to use if you are mutating arrays during iteration.
358
+ *
359
+ * ```js
360
+ * root.walkAtRules(rule => {
361
+ * if (isOld(rule.name)) rule.remove()
362
+ * })
363
+ *
364
+ * let first = false
365
+ * root.walkAtRules('charset', rule => {
366
+ * if (!first) {
367
+ * first = true
368
+ * } else {
369
+ * rule.remove()
370
+ * }
371
+ * })
372
+ * ```
373
+ *
374
+ * @param name String or regular expression to filter at-rules by name.
375
+ * @param callback Iterator receives each node and index.
376
+ * @return Returns `false` if iteration was broke.
377
+ */
378
+ walkAtRules(
379
+ nameFilter: RegExp | string,
380
+ callback: (atRule: AtRule, index: number) => false | void
381
+ ): false | undefined
382
+ walkAtRules(
383
+ callback: (atRule: AtRule, index: number) => false | void
384
+ ): false | undefined
385
+
386
+ walkComments(
387
+ callback: (comment: Comment, indexed: number) => false | void
388
+ ): false | undefined
389
+ walkComments(
390
+ callback: (comment: Comment, indexed: number) => false | void
391
+ ): false | undefined
392
+
393
+ /**
394
+ * Traverses the container’s descendant nodes, calling callback
395
+ * for each declaration node.
396
+ *
397
+ * If you pass a filter, iteration will only happen over declarations
398
+ * with matching properties.
399
+ *
400
+ * ```js
401
+ * root.walkDecls(decl => {
402
+ * checkPropertySupport(decl.prop)
403
+ * })
404
+ *
405
+ * root.walkDecls('border-radius', decl => {
406
+ * decl.remove()
407
+ * })
408
+ *
409
+ * root.walkDecls(/^background/, decl => {
410
+ * decl.value = takeFirstColorFromGradient(decl.value)
411
+ * })
412
+ * ```
413
+ *
414
+ * Like `Container#each`, this method is safe
415
+ * to use if you are mutating arrays during iteration.
416
+ *
417
+ * @param prop String or regular expression to filter declarations
418
+ * by property name.
419
+ * @param callback Iterator receives each node and index.
420
+ * @return Returns `false` if iteration was broke.
421
+ */
422
+ walkDecls(
423
+ propFilter: RegExp | string,
424
+ callback: (decl: Declaration, index: number) => false | void
425
+ ): false | undefined
426
+ walkDecls(
427
+ callback: (decl: Declaration, index: number) => false | void
428
+ ): false | undefined
429
+ /**
430
+ * Traverses the container’s descendant nodes, calling callback
431
+ * for each rule node.
432
+ *
433
+ * If you pass a filter, iteration will only happen over rules
434
+ * with matching selectors.
435
+ *
436
+ * Like `Container#each`, this method is safe
437
+ * to use if you are mutating arrays during iteration.
438
+ *
439
+ * ```js
440
+ * const selectors = []
441
+ * root.walkRules(rule => {
442
+ * selectors.push(rule.selector)
443
+ * })
444
+ * console.log(`Your CSS uses ${ selectors.length } selectors`)
445
+ * ```
446
+ *
447
+ * @param selector String or regular expression to filter rules by selector.
448
+ * @param callback Iterator receives each node and index.
449
+ * @return Returns `false` if iteration was broke.
450
+ */
451
+ walkRules(
452
+ selectorFilter: RegExp | string,
453
+ callback: (rule: Rule, index: number) => false | void
454
+ ): false | undefined
455
+ walkRules(
456
+ callback: (rule: Rule, index: number) => false | void
457
+ ): false | undefined
458
+ /**
459
+ * An internal method that converts a {@link NewChild} into a list of actual
460
+ * child nodes that can then be added to this container.
461
+ *
462
+ * This ensures that the nodes' parent is set to this container, that they use
463
+ * the correct prototype chain, and that they're marked as dirty.
464
+ *
465
+ * @param mnodes The new node or nodes to add.
466
+ * @param sample A node from whose raws the new node's `before` raw should be
467
+ * taken.
468
+ * @param type This should be set to `'prepend'` if the new nodes will be
469
+ * inserted at the beginning of the container.
470
+ * @hidden
471
+ */
472
+ protected normalize(
473
+ nodes: Container.NewChild,
474
+ sample: Node | undefined,
475
+ type?: 'prepend' | false
476
+ ): Child[]
477
+ }
478
+
479
+ declare class Container<
480
+ Child extends Node = ChildNode
481
+ > extends Container_<Child> {}
482
+
483
+ export = Container