@design-edito/tools 0.1.50 → 0.1.51

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 (95) hide show
  1. package/agnostic/arrays/index.js +7 -7
  2. package/agnostic/arrays/random-pick/index.js +4 -4
  3. package/agnostic/css/index.js +13 -13
  4. package/agnostic/css/styles-set/index.js +4 -4
  5. package/agnostic/errors/index.js +2 -2
  6. package/agnostic/html/hyper-json/cast/index.js +6 -6
  7. package/agnostic/html/hyper-json/index.js +7 -7
  8. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +6 -6
  9. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +6 -6
  10. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +6 -6
  11. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +6 -6
  12. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +6 -6
  13. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +6 -6
  14. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +6 -6
  15. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +6 -6
  16. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +6 -6
  17. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +6 -6
  18. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +6 -6
  19. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +6 -6
  20. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +6 -6
  21. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +6 -6
  22. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +6 -6
  23. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +6 -6
  24. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +6 -6
  25. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +6 -6
  26. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +6 -6
  27. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +6 -6
  28. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +6 -6
  29. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +6 -6
  30. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +6 -6
  31. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +6 -6
  32. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +6 -6
  33. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +6 -6
  34. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +6 -6
  35. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +6 -6
  36. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +6 -6
  37. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +6 -6
  38. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +6 -6
  39. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +6 -6
  40. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +6 -6
  41. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +6 -6
  42. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +6 -6
  43. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +6 -6
  44. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +6 -6
  45. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +6 -6
  46. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +6 -6
  47. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +6 -6
  48. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +6 -6
  49. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +6 -6
  50. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +6 -6
  51. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +6 -6
  52. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +6 -6
  53. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +6 -6
  54. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +6 -6
  55. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +6 -6
  56. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +6 -6
  57. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +6 -6
  58. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +6 -6
  59. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +6 -6
  60. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +6 -6
  61. package/agnostic/html/hyper-json/smart-tags/isolated/global/index.js +6 -6
  62. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +6 -6
  63. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +6 -6
  64. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +6 -6
  65. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +6 -6
  66. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +6 -6
  67. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +6 -6
  68. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +6 -6
  69. package/agnostic/html/hyper-json/tree/index.js +6 -6
  70. package/agnostic/html/hyper-json/utils/index.js +6 -6
  71. package/agnostic/html/index.js +13 -13
  72. package/agnostic/html/sanitize/index.js +4 -4
  73. package/agnostic/html/selector-to-element/index.js +4 -4
  74. package/agnostic/html/string-to-nodes/index.js +5 -5
  75. package/agnostic/misc/assert/index.js +3 -3
  76. package/agnostic/misc/data-size/index.d.ts +14 -14
  77. package/agnostic/misc/data-size/index.js +1 -1
  78. package/agnostic/misc/index.js +23 -23
  79. package/agnostic/misc/logs/index.js +2 -2
  80. package/agnostic/misc/lorem-ipsum/index.js +8 -8
  81. package/agnostic/numbers/index.js +3 -3
  82. package/agnostic/objects/index.js +14 -14
  83. package/agnostic/strings/index.js +6 -6
  84. package/agnostic/time/index.js +3 -3
  85. package/chunks/chunk-5E7N4BDI.js +186 -0
  86. package/chunks/chunk-D2V6SYYA.js +191 -0
  87. package/chunks/chunk-DLSXW4NB.js +2369 -0
  88. package/chunks/chunk-H7WUTMKQ.js +31 -0
  89. package/chunks/chunk-LXPG32TV.js +31 -0
  90. package/chunks/chunk-M7YNPJYY.js +173 -0
  91. package/chunks/chunk-RRSHCFEP.js +191 -0
  92. package/chunks/chunk-TYJOCMG7.js +37 -0
  93. package/chunks/chunk-UODICVLG.js +173 -0
  94. package/node/files/index.js +3 -3
  95. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ import {
2
+ isArrayOf
3
+ } from "./chunk-6RGDWX4A.js";
4
+ import {
5
+ findDuplicates
6
+ } from "./chunk-YS6WMSWC.js";
7
+ import {
8
+ randomPick,
9
+ randomPickMany
10
+ } from "./chunk-MW3KNVTG.js";
11
+ import {
12
+ shuffle
13
+ } from "./chunk-VJJIYJMY.js";
14
+ import {
15
+ make
16
+ } from "./chunk-RLAZR3NL.js";
17
+
18
+ // src/agnostic/arrays/index.tsx
19
+ var Arrays;
20
+ ((Arrays2) => {
21
+ Arrays2.findDuplicates = findDuplicates;
22
+ Arrays2.isArrayOf = isArrayOf;
23
+ Arrays2.make = make;
24
+ Arrays2.randomPick = randomPick;
25
+ Arrays2.randomPickMany = randomPickMany;
26
+ Arrays2.shuffle = shuffle;
27
+ })(Arrays || (Arrays = {}));
28
+
29
+ export {
30
+ Arrays
31
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ shuffle
3
+ } from "./chunk-VJJIYJMY.js";
4
+ import {
5
+ make
6
+ } from "./chunk-RLAZR3NL.js";
7
+ import {
8
+ findDuplicates
9
+ } from "./chunk-YS6WMSWC.js";
10
+ import {
11
+ isArrayOf
12
+ } from "./chunk-6RGDWX4A.js";
13
+ import {
14
+ randomPick,
15
+ randomPickMany
16
+ } from "./chunk-MW3KNVTG.js";
17
+
18
+ // src/agnostic/arrays/index.tsx
19
+ var Arrays;
20
+ ((Arrays2) => {
21
+ Arrays2.findDuplicates = findDuplicates;
22
+ Arrays2.isArrayOf = isArrayOf;
23
+ Arrays2.make = make;
24
+ Arrays2.randomPick = randomPick;
25
+ Arrays2.randomPickMany = randomPickMany;
26
+ Arrays2.shuffle = shuffle;
27
+ })(Arrays || (Arrays = {}));
28
+
29
+ export {
30
+ Arrays
31
+ };
@@ -0,0 +1,173 @@
1
+ import {
2
+ Random
3
+ } from "./chunk-OVG5RGI3.js";
4
+ import {
5
+ register
6
+ } from "./chunk-WC2LQPQP.js";
7
+
8
+ // src/agnostic/css/styles-set/index.tsx
9
+ import { Component } from "react";
10
+ import { createRoot as reactCreateRoot } from "react-dom/client";
11
+ import { Fragment, jsx } from "react/jsx-runtime";
12
+ var StylesSet = class _StylesSet {
13
+ static defaultPrivateIDAttribute = "data-styleset-private-id";
14
+ static defaultPublicIDAttribute = "data-styleset-public-id";
15
+ tagsPrivateIDAttribute = _StylesSet.defaultPrivateIDAttribute;
16
+ tagsPublicIDAttribute = _StylesSet.defaultPublicIDAttribute;
17
+ _items = /* @__PURE__ */ new Map();
18
+ get items() {
19
+ const sortedItemsArray = Array.from(this._items).map(([privateId, item]) => {
20
+ const targetPosition = this.getTargetPosition(privateId) ?? 0;
21
+ return { targetPosition, privateId, item };
22
+ }).sort((a, b) => a.targetPosition - b.targetPosition).map(({ item, privateId }) => [privateId, item]);
23
+ const sortedItemsMap = new Map(sortedItemsArray);
24
+ return sortedItemsMap;
25
+ }
26
+ getTargetPosition(privateId) {
27
+ const orderedStyles = Array.from(this._items).map(([privateId2, data]) => ({ privateId: privateId2, data })).sort((a, b) => {
28
+ const aPos = a.data.position ?? 0;
29
+ const bPos = b.data.position ?? 0;
30
+ return aPos - bPos;
31
+ });
32
+ const foundIndex = orderedStyles.findIndex((item) => item.privateId === privateId);
33
+ return foundIndex === -1 ? null : foundIndex;
34
+ }
35
+ setTagsPrivateIDAttribute(str) {
36
+ this.tagsPrivateIDAttribute = str;
37
+ return this;
38
+ }
39
+ setTagsPublicIDAttribute(str) {
40
+ this.tagsPublicIDAttribute = str;
41
+ return this;
42
+ }
43
+ getById(id) {
44
+ const found = Array.from(this._items.values()).find((entry) => entry.id === id);
45
+ if (found === void 0) return void 0;
46
+ return found;
47
+ }
48
+ generateUniquePrivateId() {
49
+ const existingIds = Array.from(this._items.keys());
50
+ const generated = Random.randomHash(12);
51
+ if (existingIds.includes(generated)) return this.generateUniquePrivateId();
52
+ return generated;
53
+ }
54
+ _rendered = /* @__PURE__ */ new Map();
55
+ render(element) {
56
+ const root = reactCreateRoot(element);
57
+ const items = this.items;
58
+ root.render(/* @__PURE__ */ jsx(
59
+ StylesSetComp,
60
+ {
61
+ items,
62
+ privateIDAttribute: this.tagsPrivateIDAttribute,
63
+ publicIDAttribute: this.tagsPublicIDAttribute
64
+ }
65
+ ));
66
+ this._rendered.set(element, root);
67
+ return this;
68
+ }
69
+ unmount(element) {
70
+ if (!this._rendered.has(element)) return this;
71
+ const root = this._rendered.get(element);
72
+ if (root === void 0) return this;
73
+ root.unmount();
74
+ this._rendered.delete(element);
75
+ return this;
76
+ }
77
+ updateRendered() {
78
+ const { items } = this;
79
+ this._rendered.forEach((root) => root.render(/* @__PURE__ */ jsx(
80
+ StylesSetComp,
81
+ {
82
+ items,
83
+ privateIDAttribute: this.tagsPrivateIDAttribute,
84
+ publicIDAttribute: this.tagsPublicIDAttribute
85
+ }
86
+ )));
87
+ return this;
88
+ }
89
+ addItem(item, abortIfIdExists = true) {
90
+ const existing = Array.from(this._items.entries()).map(([privateId2, entry]) => ({ privateId: privateId2, entry })).find(({ entry }) => entry.id !== void 0 && entry.id === item.id);
91
+ if (existing !== void 0) {
92
+ if (abortIfIdExists) return this;
93
+ this._items.delete(existing.privateId);
94
+ }
95
+ const privateId = this.generateUniquePrivateId();
96
+ this._items.set(privateId, item);
97
+ this.updateRendered();
98
+ return this;
99
+ }
100
+ removeItem(idOrPosition) {
101
+ if (typeof idOrPosition === "string") {
102
+ const existing = Array.from(this._items.entries()).map(([privateId, entry]) => ({ privateId, entry })).find(({ entry }) => entry.id !== void 0 && entry.id === idOrPosition);
103
+ if (existing === void 0) return this;
104
+ this._items.delete(existing.privateId);
105
+ this.updateRendered();
106
+ return this;
107
+ }
108
+ const toRemove = Array.from(this._items).map(([privateId, entry]) => ({ privateId, entry })).at(idOrPosition);
109
+ if (toRemove === void 0) return this;
110
+ this._items.delete(toRemove.privateId);
111
+ this.updateRendered();
112
+ return this;
113
+ }
114
+ async getDomString(documentObj) {
115
+ const actualDocumentObj = documentObj ?? window.document;
116
+ if (actualDocumentObj === null) throw register.getError("no-window-document-on-runtime" /* NO_DOCUMENT */);
117
+ return new Promise((resolve) => {
118
+ const tempElt = actualDocumentObj.createElement("div");
119
+ const tempRoot = reactCreateRoot(tempElt);
120
+ const { items } = this;
121
+ const onRendered = () => {
122
+ resolve(tempElt.innerHTML);
123
+ tempRoot.unmount();
124
+ tempElt.remove();
125
+ };
126
+ tempRoot.render(/* @__PURE__ */ jsx(
127
+ StylesSetComp,
128
+ {
129
+ items,
130
+ privateIDAttribute: this.tagsPrivateIDAttribute,
131
+ publicIDAttribute: this.tagsPublicIDAttribute,
132
+ onRendered
133
+ }
134
+ ));
135
+ });
136
+ }
137
+ };
138
+ var StylesSetComp = class extends Component {
139
+ componentDidMount() {
140
+ const { props } = this;
141
+ const { onRendered } = props;
142
+ if (onRendered !== void 0) onRendered();
143
+ }
144
+ componentDidUpdate() {
145
+ const { props } = this;
146
+ const { onRendered } = props;
147
+ if (onRendered !== void 0) onRendered();
148
+ }
149
+ render() {
150
+ const { props } = this;
151
+ const items = props.items ?? /* @__PURE__ */ new Map();
152
+ const pidAttr = props.privateIDAttribute ?? StylesSet.defaultPrivateIDAttribute;
153
+ const idAttr = props.publicIDAttribute ?? StylesSet.defaultPublicIDAttribute;
154
+ return /* @__PURE__ */ jsx(Fragment, { children: Array.from(items).map(([privateId, itemData]) => {
155
+ const customAttributes = { [pidAttr]: privateId, [idAttr]: itemData.id };
156
+ if (itemData.type === "url") return /* @__PURE__ */ jsx(
157
+ "link",
158
+ {
159
+ onLoad: itemData.onLoad,
160
+ rel: "stylesheet",
161
+ href: itemData.content,
162
+ ...customAttributes
163
+ }
164
+ );
165
+ return /* @__PURE__ */ jsx("style", { ...customAttributes, children: itemData.content });
166
+ }) });
167
+ }
168
+ };
169
+
170
+ export {
171
+ StylesSet,
172
+ StylesSetComp
173
+ };
@@ -0,0 +1,191 @@
1
+ import {
2
+ Random
3
+ } from "./chunk-OVG5RGI3.js";
4
+ import {
5
+ Arrays
6
+ } from "./chunk-H7WUTMKQ.js";
7
+
8
+ // src/agnostic/misc/lorem-ipsum/index.ts
9
+ var LoremIpsum;
10
+ ((LoremIpsum2) => {
11
+ LoremIpsum2.words = [
12
+ "a",
13
+ "ac",
14
+ "accumsan",
15
+ "adipiscing",
16
+ "aenean",
17
+ "aliquam",
18
+ "aliquet",
19
+ "amet",
20
+ "ante",
21
+ "arcu",
22
+ "at",
23
+ "auctor",
24
+ "augue",
25
+ "bibendum",
26
+ "blandit",
27
+ "condimentum",
28
+ "consectetur",
29
+ "consequat",
30
+ "convallis",
31
+ "cras",
32
+ "curabitur",
33
+ "cursus",
34
+ "dapibus",
35
+ "diam",
36
+ "dictum",
37
+ "dictumst",
38
+ "dignissim",
39
+ "dolor",
40
+ "donec",
41
+ "dui",
42
+ "duis",
43
+ "efficitur",
44
+ "egestas",
45
+ "eget",
46
+ "eleifend",
47
+ "elementum",
48
+ "elit",
49
+ "enim",
50
+ "erat",
51
+ "eros",
52
+ "est",
53
+ "et",
54
+ "eu",
55
+ "euismod",
56
+ "ex",
57
+ "facilisis",
58
+ "faucibus",
59
+ "felis",
60
+ "feugiat",
61
+ "finibus",
62
+ "fringilla",
63
+ "fusce",
64
+ "gravida",
65
+ "habitasse",
66
+ "hac",
67
+ "hendrerit",
68
+ "iaculis",
69
+ "id",
70
+ "imperdiet",
71
+ "in",
72
+ "integer",
73
+ "interdum",
74
+ "ipsum",
75
+ "justo",
76
+ "lacinia",
77
+ "lacus",
78
+ "laoreet",
79
+ "lectus",
80
+ "leo",
81
+ "libero",
82
+ "ligula",
83
+ "lobortis",
84
+ "lorem",
85
+ "luctus",
86
+ "maecenas",
87
+ "magna",
88
+ "malesuada",
89
+ "massa",
90
+ "mattis",
91
+ "mauris",
92
+ "maximus",
93
+ "metus",
94
+ "mi",
95
+ "molestie",
96
+ "mollis",
97
+ "morbi",
98
+ "nam",
99
+ "nec",
100
+ "neque",
101
+ "nibh",
102
+ "nisi",
103
+ "nisl",
104
+ "non",
105
+ "nulla",
106
+ "nullam",
107
+ "nunc",
108
+ "odio",
109
+ "orci",
110
+ "ornare",
111
+ "pellentesque",
112
+ "pharetra",
113
+ "phasellus",
114
+ "placerat",
115
+ "platea",
116
+ "porta",
117
+ "porttitor",
118
+ "posuere",
119
+ "praesent",
120
+ "pulvinar",
121
+ "purus",
122
+ "quam",
123
+ "quis",
124
+ "quisque",
125
+ "risus",
126
+ "rutrum",
127
+ "sagittis",
128
+ "sapien",
129
+ "sed",
130
+ "sem",
131
+ "semper",
132
+ "sit",
133
+ "sodales",
134
+ "sollicitudin",
135
+ "suscipit",
136
+ "suspendisse",
137
+ "tellus",
138
+ "tempor",
139
+ "tempus",
140
+ "tincidunt",
141
+ "tortor",
142
+ "tristique",
143
+ "turpis",
144
+ "ultrices",
145
+ "ultricies",
146
+ "urna",
147
+ "ut",
148
+ "vehicula",
149
+ "vel",
150
+ "velit",
151
+ "venenatis",
152
+ "vestibulum",
153
+ "vitae",
154
+ "vivamus",
155
+ "viverra",
156
+ "volutpat",
157
+ "vulputate"
158
+ ];
159
+ LoremIpsum2.generateSentence = (wordCount) => {
160
+ const resultArr = [];
161
+ let currentWordCound = wordCount;
162
+ for (let i = 0; i < currentWordCound; i++) {
163
+ const picked = Arrays.randomPick(LoremIpsum2.words);
164
+ if (typeof picked === "string") resultArr.push(picked);
165
+ else {
166
+ currentWordCound += 1;
167
+ }
168
+ }
169
+ const [firstWord, ...otherWords] = resultArr;
170
+ if (firstWord === void 0) return "";
171
+ const capFirstLetter = firstWord?.charAt(0).toUpperCase();
172
+ const restOfFirstWord = firstWord?.slice(1);
173
+ const sentence = [
174
+ `${capFirstLetter}${restOfFirstWord}`,
175
+ ...otherWords
176
+ ].join(" ");
177
+ return `${sentence}.`;
178
+ };
179
+ LoremIpsum2.generateSentences = (sentencesCount, maxSentenceLength = 12, minSentenceLength = 4) => {
180
+ const sentences = [];
181
+ for (let i = 0; i < sentencesCount; i++) {
182
+ const length = Random.randomInt(maxSentenceLength, minSentenceLength) ?? 8;
183
+ sentences.push((0, LoremIpsum2.generateSentence)(length));
184
+ }
185
+ return sentences;
186
+ };
187
+ })(LoremIpsum || (LoremIpsum = {}));
188
+
189
+ export {
190
+ LoremIpsum
191
+ };
@@ -0,0 +1,37 @@
1
+ import {
2
+ Cast,
3
+ Tree,
4
+ Utils
5
+ } from "./chunk-DLSXW4NB.js";
6
+ import {
7
+ Types
8
+ } from "./chunk-XEQ2PBT2.js";
9
+ import {
10
+ SmartTags
11
+ } from "./chunk-UT2J62LH.js";
12
+ import {
13
+ Serialize
14
+ } from "./chunk-SXRWMH3U.js";
15
+ import {
16
+ Transformer
17
+ } from "./chunk-BKO7GLC2.js";
18
+ import {
19
+ Method
20
+ } from "./chunk-RW7VAKJW.js";
21
+
22
+ // src/agnostic/html/hyper-json/index.ts
23
+ var HyperJson;
24
+ ((HyperJson2) => {
25
+ HyperJson2.Cast = Cast;
26
+ HyperJson2.Method = Method;
27
+ HyperJson2.Serialize = Serialize;
28
+ HyperJson2.SmartTags = SmartTags;
29
+ HyperJson2.Transformer = Transformer;
30
+ HyperJson2.Tree = Tree;
31
+ HyperJson2.Types = Types;
32
+ HyperJson2.Utils = Utils;
33
+ })(HyperJson || (HyperJson = {}));
34
+
35
+ export {
36
+ HyperJson
37
+ };
@@ -0,0 +1,173 @@
1
+ import {
2
+ Random
3
+ } from "./chunk-S32K7POB.js";
4
+ import {
5
+ register
6
+ } from "./chunk-WC2LQPQP.js";
7
+
8
+ // src/agnostic/css/styles-set/index.tsx
9
+ import { Component } from "react";
10
+ import { createRoot as reactCreateRoot } from "react-dom/client";
11
+ import { Fragment, jsx } from "react/jsx-runtime";
12
+ var StylesSet = class _StylesSet {
13
+ static defaultPrivateIDAttribute = "data-styleset-private-id";
14
+ static defaultPublicIDAttribute = "data-styleset-public-id";
15
+ tagsPrivateIDAttribute = _StylesSet.defaultPrivateIDAttribute;
16
+ tagsPublicIDAttribute = _StylesSet.defaultPublicIDAttribute;
17
+ _items = /* @__PURE__ */ new Map();
18
+ get items() {
19
+ const sortedItemsArray = Array.from(this._items).map(([privateId, item]) => {
20
+ const targetPosition = this.getTargetPosition(privateId) ?? 0;
21
+ return { targetPosition, privateId, item };
22
+ }).sort((a, b) => a.targetPosition - b.targetPosition).map(({ item, privateId }) => [privateId, item]);
23
+ const sortedItemsMap = new Map(sortedItemsArray);
24
+ return sortedItemsMap;
25
+ }
26
+ getTargetPosition(privateId) {
27
+ const orderedStyles = Array.from(this._items).map(([privateId2, data]) => ({ privateId: privateId2, data })).sort((a, b) => {
28
+ const aPos = a.data.position ?? 0;
29
+ const bPos = b.data.position ?? 0;
30
+ return aPos - bPos;
31
+ });
32
+ const foundIndex = orderedStyles.findIndex((item) => item.privateId === privateId);
33
+ return foundIndex === -1 ? null : foundIndex;
34
+ }
35
+ setTagsPrivateIDAttribute(str) {
36
+ this.tagsPrivateIDAttribute = str;
37
+ return this;
38
+ }
39
+ setTagsPublicIDAttribute(str) {
40
+ this.tagsPublicIDAttribute = str;
41
+ return this;
42
+ }
43
+ getById(id) {
44
+ const found = Array.from(this._items.values()).find((entry) => entry.id === id);
45
+ if (found === void 0) return void 0;
46
+ return found;
47
+ }
48
+ generateUniquePrivateId() {
49
+ const existingIds = Array.from(this._items.keys());
50
+ const generated = Random.randomHash(12);
51
+ if (existingIds.includes(generated)) return this.generateUniquePrivateId();
52
+ return generated;
53
+ }
54
+ _rendered = /* @__PURE__ */ new Map();
55
+ render(element) {
56
+ const root = reactCreateRoot(element);
57
+ const items = this.items;
58
+ root.render(/* @__PURE__ */ jsx(
59
+ StylesSetComp,
60
+ {
61
+ items,
62
+ privateIDAttribute: this.tagsPrivateIDAttribute,
63
+ publicIDAttribute: this.tagsPublicIDAttribute
64
+ }
65
+ ));
66
+ this._rendered.set(element, root);
67
+ return this;
68
+ }
69
+ unmount(element) {
70
+ if (!this._rendered.has(element)) return this;
71
+ const root = this._rendered.get(element);
72
+ if (root === void 0) return this;
73
+ root.unmount();
74
+ this._rendered.delete(element);
75
+ return this;
76
+ }
77
+ updateRendered() {
78
+ const { items } = this;
79
+ this._rendered.forEach((root) => root.render(/* @__PURE__ */ jsx(
80
+ StylesSetComp,
81
+ {
82
+ items,
83
+ privateIDAttribute: this.tagsPrivateIDAttribute,
84
+ publicIDAttribute: this.tagsPublicIDAttribute
85
+ }
86
+ )));
87
+ return this;
88
+ }
89
+ addItem(item, abortIfIdExists = true) {
90
+ const existing = Array.from(this._items.entries()).map(([privateId2, entry]) => ({ privateId: privateId2, entry })).find(({ entry }) => entry.id !== void 0 && entry.id === item.id);
91
+ if (existing !== void 0) {
92
+ if (abortIfIdExists) return this;
93
+ this._items.delete(existing.privateId);
94
+ }
95
+ const privateId = this.generateUniquePrivateId();
96
+ this._items.set(privateId, item);
97
+ this.updateRendered();
98
+ return this;
99
+ }
100
+ removeItem(idOrPosition) {
101
+ if (typeof idOrPosition === "string") {
102
+ const existing = Array.from(this._items.entries()).map(([privateId, entry]) => ({ privateId, entry })).find(({ entry }) => entry.id !== void 0 && entry.id === idOrPosition);
103
+ if (existing === void 0) return this;
104
+ this._items.delete(existing.privateId);
105
+ this.updateRendered();
106
+ return this;
107
+ }
108
+ const toRemove = Array.from(this._items).map(([privateId, entry]) => ({ privateId, entry })).at(idOrPosition);
109
+ if (toRemove === void 0) return this;
110
+ this._items.delete(toRemove.privateId);
111
+ this.updateRendered();
112
+ return this;
113
+ }
114
+ async getDomString(documentObj) {
115
+ const actualDocumentObj = documentObj ?? window.document;
116
+ if (actualDocumentObj === null) throw register.getError("no-window-document-on-runtime" /* NO_DOCUMENT */);
117
+ return new Promise((resolve) => {
118
+ const tempElt = actualDocumentObj.createElement("div");
119
+ const tempRoot = reactCreateRoot(tempElt);
120
+ const { items } = this;
121
+ const onRendered = () => {
122
+ resolve(tempElt.innerHTML);
123
+ tempRoot.unmount();
124
+ tempElt.remove();
125
+ };
126
+ tempRoot.render(/* @__PURE__ */ jsx(
127
+ StylesSetComp,
128
+ {
129
+ items,
130
+ privateIDAttribute: this.tagsPrivateIDAttribute,
131
+ publicIDAttribute: this.tagsPublicIDAttribute,
132
+ onRendered
133
+ }
134
+ ));
135
+ });
136
+ }
137
+ };
138
+ var StylesSetComp = class extends Component {
139
+ componentDidMount() {
140
+ const { props } = this;
141
+ const { onRendered } = props;
142
+ if (onRendered !== void 0) onRendered();
143
+ }
144
+ componentDidUpdate() {
145
+ const { props } = this;
146
+ const { onRendered } = props;
147
+ if (onRendered !== void 0) onRendered();
148
+ }
149
+ render() {
150
+ const { props } = this;
151
+ const items = props.items ?? /* @__PURE__ */ new Map();
152
+ const pidAttr = props.privateIDAttribute ?? StylesSet.defaultPrivateIDAttribute;
153
+ const idAttr = props.publicIDAttribute ?? StylesSet.defaultPublicIDAttribute;
154
+ return /* @__PURE__ */ jsx(Fragment, { children: Array.from(items).map(([privateId, itemData]) => {
155
+ const customAttributes = { [pidAttr]: privateId, [idAttr]: itemData.id };
156
+ if (itemData.type === "url") return /* @__PURE__ */ jsx(
157
+ "link",
158
+ {
159
+ onLoad: itemData.onLoad,
160
+ rel: "stylesheet",
161
+ href: itemData.content,
162
+ ...customAttributes
163
+ }
164
+ );
165
+ return /* @__PURE__ */ jsx("style", { ...customAttributes, children: itemData.content });
166
+ }) });
167
+ }
168
+ };
169
+
170
+ export {
171
+ StylesSet,
172
+ StylesSetComp
173
+ };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isInDirectory
3
3
  } from "../../chunks/chunk-NRITRUZW.js";
4
- import {
5
- readWrite
6
- } from "../../chunks/chunk-7DBNMU6N.js";
7
4
  import {
8
5
  Subpaths
9
6
  } from "../../chunks/chunk-HGCG2J77.js";
7
+ import {
8
+ readWrite
9
+ } from "../../chunks/chunk-7DBNMU6N.js";
10
10
  import "../../chunks/chunk-LQFKUNVQ.js";
11
11
 
12
12
  // src/node/files/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design-edito/tools",
3
- "version": "0.1.50",
3
+ "version": "0.1.51",
4
4
  "description": "",
5
5
  "author": "Maxime Fabas",
6
6
  "license": "ISC",