@bccampus/ui-components 0.4.2 → 0.5.0

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 (165) hide show
  1. package/dist/_chunks/CompositeDataItem.js +204 -0
  2. package/dist/_chunks/createLucideIcon.js +103 -0
  3. package/dist/_chunks/index.js +125 -0
  4. package/dist/_chunks/index2.js +44 -0
  5. package/dist/_chunks/index3.js +533 -0
  6. package/dist/{utils-CRiPKpXj.js → _chunks/utils.js} +754 -526
  7. package/dist/components/index.d.ts +16 -0
  8. package/dist/components/index.js +84 -0
  9. package/dist/components/ui/banner.d.ts +10 -0
  10. package/dist/components/ui/banner.js +45 -0
  11. package/dist/components/ui/button.d.ts +11 -0
  12. package/dist/{button.js → components/ui/button.js} +11 -10
  13. package/dist/components/ui/card.d.ts +27 -0
  14. package/dist/components/ui/card.js +109 -0
  15. package/dist/components/ui/composite/CompositeData.d.ts +20 -0
  16. package/dist/components/ui/composite/CompositeData.js +89 -0
  17. package/dist/components/ui/composite/CompositeDataItem.d.ts +28 -0
  18. package/dist/components/ui/composite/CompositeDataItem.js +5 -0
  19. package/dist/components/ui/composite/FocusProvider/AbstractFocusProvider.d.ts +41 -0
  20. package/dist/components/ui/composite/FocusProvider/AbstractFocusProvider.js +35 -0
  21. package/dist/components/ui/composite/FocusProvider/ListboxFocusProvider.d.ts +16 -0
  22. package/dist/components/ui/composite/FocusProvider/ListboxFocusProvider.js +67 -0
  23. package/dist/components/ui/composite/FocusProvider/index.d.ts +2 -0
  24. package/dist/components/ui/composite/FocusProvider/index.js +6 -0
  25. package/dist/components/ui/composite/SelectionProvider/AbstractSelectionProvider.d.ts +23 -0
  26. package/dist/components/ui/composite/SelectionProvider/AbstractSelectionProvider.js +20 -0
  27. package/dist/components/ui/composite/SelectionProvider/MultipleSelectionProvider.d.ts +9 -0
  28. package/dist/components/ui/composite/SelectionProvider/MultipleSelectionProvider.js +20 -0
  29. package/dist/components/ui/composite/SelectionProvider/SingleSelectionProvider.d.ts +9 -0
  30. package/dist/components/ui/composite/SelectionProvider/SingleSelectionProvider.js +25 -0
  31. package/dist/components/ui/composite/SelectionProvider/index.d.ts +3 -0
  32. package/dist/components/ui/composite/SelectionProvider/index.js +8 -0
  33. package/dist/components/ui/composite/composite-component-item.d.ts +2 -0
  34. package/dist/components/ui/composite/composite-component-item.js +74 -0
  35. package/dist/components/ui/composite/composite-component.d.ts +2 -0
  36. package/dist/components/ui/composite/composite-component.js +66 -0
  37. package/dist/components/ui/composite/index.d.ts +7 -0
  38. package/dist/components/ui/composite/index.js +22 -0
  39. package/dist/components/ui/composite/listbox.d.ts +2 -0
  40. package/dist/components/ui/composite/listbox.js +58 -0
  41. package/dist/components/ui/composite/types.d.ts +82 -0
  42. package/dist/components/ui/composite/types.js +1 -0
  43. package/dist/components/ui/horizontal-list.d.ts +10 -0
  44. package/dist/components/ui/horizontal-list.js +82 -0
  45. package/dist/components/ui/icon-generator/generate-tiles.d.ts +4 -0
  46. package/dist/components/ui/icon-generator/generate-tiles.js +223 -0
  47. package/dist/components/ui/icon-generator/icon-generator.d.ts +3 -0
  48. package/dist/components/ui/icon-generator/icon-generator.js +82 -0
  49. package/dist/components/ui/icon-generator/index.d.ts +4 -0
  50. package/dist/components/ui/icon-generator/index.js +11 -0
  51. package/dist/components/ui/icon-generator/masked-image-generator.d.ts +3 -0
  52. package/dist/components/ui/icon-generator/masked-image-generator.js +31 -0
  53. package/dist/{masked-image-generator.d.ts → components/ui/icon-generator/types.d.ts} +48 -58
  54. package/dist/components/ui/icon-generator/types.js +30 -0
  55. package/dist/components/ui/input.d.ts +3 -0
  56. package/dist/{input.js → components/ui/input.js} +8 -8
  57. package/dist/components/ui/navigation-menu.d.ts +16 -0
  58. package/dist/components/ui/navigation-menu.js +1041 -0
  59. package/dist/components/ui/overlay.d.ts +7 -0
  60. package/dist/{overlay.js → components/ui/overlay.js} +7 -7
  61. package/dist/components/ui/page-header.d.ts +5 -0
  62. package/dist/{page-header.js → components/ui/page-header.js} +189 -181
  63. package/dist/components/ui/page-section.d.ts +8 -0
  64. package/dist/{page-section.js → components/ui/page-section.js} +7 -7
  65. package/dist/components/ui/page.d.ts +3 -0
  66. package/dist/components/ui/page.js +8 -0
  67. package/dist/components/ui/popover.d.ts +7 -0
  68. package/dist/components/ui/popover.js +3532 -0
  69. package/dist/components/ui/search-input.d.ts +3 -0
  70. package/dist/components/ui/search-input.js +24 -0
  71. package/dist/components/ui/tag.d.ts +10 -0
  72. package/dist/{tag.js → components/ui/tag.js} +10 -9
  73. package/dist/components/ui/typography/caption.d.ts +8 -0
  74. package/dist/components/ui/typography/caption.js +28 -0
  75. package/dist/components/ui/typography/index.d.ts +1 -0
  76. package/dist/components/ui/typography/index.js +5 -0
  77. package/dist/hooks/index.d.ts +3 -0
  78. package/dist/hooks/index.js +9 -0
  79. package/dist/hooks/use-effect-after-mount.d.ts +2 -0
  80. package/dist/hooks/use-effect-after-mount.js +24 -0
  81. package/dist/hooks/use-id.d.ts +1 -0
  82. package/dist/hooks/use-id.js +7 -0
  83. package/dist/hooks/use-keyboard-event.d.ts +59 -0
  84. package/dist/hooks/use-keyboard-event.js +52 -0
  85. package/dist/lib/index.d.ts +3 -0
  86. package/dist/lib/index.js +16 -0
  87. package/dist/lib/object.d.ts +5 -0
  88. package/dist/lib/object.js +38 -0
  89. package/dist/lib/set-operations.d.ts +5 -0
  90. package/dist/lib/set-operations.js +51 -0
  91. package/dist/{utils.d.ts → lib/utils.d.ts} +2 -5
  92. package/dist/lib/utils.js +4 -0
  93. package/package.json +9 -76
  94. package/src/components/index.ts +17 -0
  95. package/src/components/ui/composite/FocusProvider/index.ts +2 -0
  96. package/src/components/ui/composite/SelectionProvider/MultipleSelectionProvider.ts +1 -1
  97. package/src/components/ui/composite/SelectionProvider/index.ts +3 -0
  98. package/src/components/ui/composite/index.ts +5 -5
  99. package/src/components/ui/icon-generator/index.ts +2 -0
  100. package/src/components/ui/typography/index.ts +1 -0
  101. package/src/hooks/index.ts +3 -0
  102. package/src/index.ts +3 -0
  103. package/src/lib/index.ts +3 -0
  104. package/tsconfig.lib.json +44 -0
  105. package/vite.config.ts +28 -31
  106. package/dist/AbstractFocusProvider-CxvlcEki.js +0 -29
  107. package/dist/AbstractSelectionProvider-BtaROstC.js +0 -30
  108. package/dist/CompositeDataItem-DuHOHCWy.js +0 -158
  109. package/dist/ListboxFocusProvider.d.ts +0 -149
  110. package/dist/ListboxFocusProvider.js +0 -53
  111. package/dist/MultipleSelectionProvider.d.ts +0 -141
  112. package/dist/MultipleSelectionProvider.js +0 -19
  113. package/dist/SingleSelectionProvider.d.ts +0 -141
  114. package/dist/SingleSelectionProvider.js +0 -23
  115. package/dist/banner.d.ts +0 -16
  116. package/dist/banner.js +0 -42
  117. package/dist/button.d.ts +0 -17
  118. package/dist/caption.d.ts +0 -13
  119. package/dist/caption.js +0 -27
  120. package/dist/card.d.ts +0 -46
  121. package/dist/card.js +0 -108
  122. package/dist/composite-component-DSUbd1XS.js +0 -122
  123. package/dist/composite.d.ts +0 -208
  124. package/dist/composite.js +0 -82
  125. package/dist/createLucideIcon-CzehbSja.js +0 -94
  126. package/dist/generate-tiles-DuagGD1d.js +0 -244
  127. package/dist/generate-tiles.d.ts +0 -43
  128. package/dist/generate-tiles.js +0 -7
  129. package/dist/horizontal-list.d.ts +0 -16
  130. package/dist/horizontal-list.js +0 -77
  131. package/dist/icon-generator-tuhuqdpL.js +0 -76
  132. package/dist/icon-generator.d.ts +0 -58
  133. package/dist/icon-generator.js +0 -6
  134. package/dist/index-CQhYMnjT.js +0 -34
  135. package/dist/index-U7DVCmS_.js +0 -76
  136. package/dist/input.d.ts +0 -7
  137. package/dist/listbox.d.ts +0 -171
  138. package/dist/listbox.js +0 -76
  139. package/dist/masked-image-generator.js +0 -29
  140. package/dist/navigation-menu.d.ts +0 -27
  141. package/dist/navigation-menu.js +0 -1139
  142. package/dist/overlay.d.ts +0 -13
  143. package/dist/page-header.d.ts +0 -9
  144. package/dist/page-section.d.ts +0 -14
  145. package/dist/page.d.ts +0 -7
  146. package/dist/page.js +0 -8
  147. package/dist/search-input.d.ts +0 -7
  148. package/dist/search-input.js +0 -23
  149. package/dist/tag.d.ts +0 -16
  150. package/dist/ui-components.d.ts +0 -215
  151. package/dist/ui-components.js +0 -54
  152. package/dist/utils.js +0 -4
  153. package/src/assets/icons/icon_01.svg +0 -6
  154. package/src/assets/icons/icon_02.svg +0 -6
  155. package/src/assets/icons/icon_03.svg +0 -6
  156. package/src/assets/icons/icon_04.svg +0 -6
  157. package/src/assets/icons/icon_05.svg +0 -4
  158. package/src/assets/icons/icon_06.svg +0 -4
  159. package/src/assets/images/image_01.jpg +0 -0
  160. package/src/assets/images/image_02.jpg +0 -0
  161. package/src/assets/images/image_03.webp +0 -0
  162. package/src/assets/images/image_04.png +0 -0
  163. package/src/assets/images/image_05.jpg +0 -0
  164. package/src/assets/images/image_06.jpg +0 -0
  165. package/src/components/ui/index.ts +0 -15
@@ -0,0 +1,223 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { c as cn } from "../../../_chunks/utils.js";
3
+ import { TileShape } from "./types.js";
4
+ const randomSet = [
5
+ TileShape.Square,
6
+ TileShape.Circle,
7
+ TileShape.Diamond,
8
+ TileShape.Hexagon,
9
+ TileShape.TriangleSE,
10
+ TileShape.TriangleSW,
11
+ TileShape.TriangleNW,
12
+ TileShape.TriangleNE,
13
+ TileShape.PieSE,
14
+ TileShape.PieSW,
15
+ TileShape.PieNW,
16
+ TileShape.PieNE
17
+ ];
18
+ const TileTemplates = {
19
+ [TileShape.Blank]: () => null,
20
+ [TileShape.Rand]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[randomSet[Math.floor(Math.random() * randomSet.length)]](tileX, tileY, tileSize, tileConfig),
21
+ [TileShape.Mosaic]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[Math.random() > 0.8 ? TileShape.Blank : TileShape.Square](tileX, tileY, tileSize, tileConfig),
22
+ [TileShape.MosaicCircle]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[Math.random() > 0.8 ? TileShape.Blank : TileShape.Circle](tileX, tileY, tileSize, tileConfig),
23
+ [TileShape.MosaicDiamond]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[Math.random() > 0.8 ? TileShape.Blank : TileShape.Diamond](tileX, tileY, tileSize, tileConfig),
24
+ [TileShape.Square]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
25
+ "rect",
26
+ {
27
+ x: tileSize * tileX,
28
+ y: tileSize * tileY,
29
+ width: tileSize * tileConfig.scale,
30
+ height: tileSize * tileConfig.scale,
31
+ className: cn("fill-current stroke-none", tileConfig?.className)
32
+ },
33
+ `tile-${tileX}-${tileY}`
34
+ ),
35
+ [TileShape.Circle]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
36
+ "circle",
37
+ {
38
+ cx: tileSize * (tileX + 0.5 * tileConfig.scale),
39
+ cy: tileSize * (tileY + 0.5 * tileConfig.scale),
40
+ r: tileSize / 2 * tileConfig.scale,
41
+ className: cn("fill-current stroke-none", tileConfig?.className)
42
+ },
43
+ `tile-${tileX}-${tileY}`
44
+ ),
45
+ [TileShape.Diamond]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
46
+ "path",
47
+ {
48
+ d: `M ${tileSize * (tileX + 0.5 * tileConfig.scale)} ${tileSize * tileY}
49
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + 0.5 * tileConfig.scale)}
50
+ L ${tileSize * (tileX + 0.5 * tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)}
51
+ L ${tileSize * tileX} ${tileSize * (tileY + 0.5 * tileConfig.scale)} Z`,
52
+ className: cn("fill-current stroke-none", tileConfig?.className)
53
+ },
54
+ `tile-${tileX}-${tileY}`
55
+ ),
56
+ [TileShape.Hexagon]: (tileX, tileY, tileSize, tileConfig) => {
57
+ const side = tileSize / Math.sqrt(3);
58
+ const start = (tileSize - side) / 2;
59
+ return /* @__PURE__ */ jsx(
60
+ "path",
61
+ {
62
+ rotate: 45,
63
+ d: `M ${tileSize * tileX + start * tileConfig.scale} ${tileSize * tileY}
64
+ L ${tileSize * tileX + (start + side) * tileConfig.scale} ${tileSize * tileY}
65
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + 0.5 * tileConfig.scale)}
66
+ L ${tileSize * tileX + (start + side) * tileConfig.scale} ${tileSize * (tileY + tileConfig.scale)}
67
+ L ${tileSize * tileX + start * tileConfig.scale} ${tileSize * (tileY + tileConfig.scale)}
68
+ L ${tileSize * tileX} ${tileSize * (tileY + 0.5 * tileConfig.scale)} Z`,
69
+ className: cn("fill-current stroke-none", tileConfig?.className)
70
+ },
71
+ `tile-${tileX}-${tileY}`
72
+ );
73
+ },
74
+ [TileShape.RandBasic]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[TileShape.Square + Math.floor(Math.random() * 4)](tileX, tileY, tileSize, tileConfig),
75
+ [TileShape.TriangleSE]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
76
+ "path",
77
+ {
78
+ d: `M ${tileSize * (tileX + tileConfig.scale)} ${tileSize * tileY}
79
+ L ${tileSize * tileX} ${tileSize * (tileY + tileConfig.scale)}
80
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)} Z`,
81
+ className: cn("fill-current stroke-none", tileConfig?.className)
82
+ },
83
+ `tile-${tileX}-${tileY}`
84
+ ),
85
+ [TileShape.TriangleSW]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
86
+ "path",
87
+ {
88
+ d: `M ${tileSize * tileX} ${tileSize * tileY}
89
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)}
90
+ L ${tileSize * tileX} ${tileSize * (tileY + tileConfig.scale)} Z`,
91
+ className: cn("fill-current stroke-none", tileConfig?.className)
92
+ },
93
+ `tile-${tileX}-${tileY}`
94
+ ),
95
+ [TileShape.TriangleNW]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
96
+ "path",
97
+ {
98
+ d: `M ${tileSize * (tileX + tileConfig.scale)} ${tileSize * tileY}
99
+ L ${tileSize * tileX} ${tileSize * (tileY + tileConfig.scale)}
100
+ L ${tileSize * tileX} ${tileSize * tileY} Z`,
101
+ className: cn("fill-current stroke-none", tileConfig?.className)
102
+ },
103
+ `tile-${tileX}-${tileY}`
104
+ ),
105
+ [TileShape.TriangleNE]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
106
+ "path",
107
+ {
108
+ d: `M ${tileSize * tileX} ${tileSize * tileY}
109
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)}
110
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * tileY} Z`,
111
+ className: cn("fill-current stroke-none", tileConfig?.className)
112
+ },
113
+ `tile-${tileX}-${tileY}`
114
+ ),
115
+ [TileShape.TriangleRand]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[TileShape.TriangleSE + Math.floor(Math.random() * 4)](
116
+ tileX,
117
+ tileY,
118
+ tileSize,
119
+ tileConfig
120
+ ),
121
+ [TileShape.CaretN]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
122
+ "path",
123
+ {
124
+ d: `M ${tileSize * tileX} ${tileSize * (tileY + tileConfig.scale)}
125
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)}
126
+ L ${tileSize * (tileX + 0.5 * tileConfig.scale)} ${tileSize * tileY} Z`,
127
+ className: cn("fill-current stroke-none", tileConfig?.className)
128
+ },
129
+ `tile-${tileX}-${tileY}`
130
+ ),
131
+ [TileShape.CaretE]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
132
+ "path",
133
+ {
134
+ d: `M ${tileSize * tileX} ${tileSize * tileY}
135
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + 0.5 * tileConfig.scale)}
136
+ L ${tileSize * tileX} ${tileSize * (tileY + tileConfig.scale)} Z`,
137
+ className: cn("fill-current stroke-none", tileConfig?.className)
138
+ },
139
+ `tile-${tileX}-${tileY}`
140
+ ),
141
+ [TileShape.CaretS]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
142
+ "path",
143
+ {
144
+ d: `M ${tileSize * tileX} ${tileSize * tileY}
145
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * tileY}
146
+ L ${tileSize * (tileX + 0.5 * tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)} Z`,
147
+ className: cn("fill-current stroke-none", tileConfig?.className)
148
+ },
149
+ `tile-${tileX}-${tileY}`
150
+ ),
151
+ [TileShape.CaretW]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
152
+ "path",
153
+ {
154
+ d: `M ${tileSize * (tileX + tileConfig.scale)} ${tileSize * tileY}
155
+ L ${tileSize * tileX} ${tileSize * (tileY + 0.5 * tileConfig.scale)}
156
+ L ${tileSize * (tileX + tileConfig.scale)} ${tileSize * (tileY + tileConfig.scale)} Z`,
157
+ className: cn("fill-current stroke-none", tileConfig?.className)
158
+ },
159
+ `tile-${tileX}-${tileY}`
160
+ ),
161
+ [TileShape.CaretRand]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[TileShape.CaretN + Math.floor(Math.random() * 4)](tileX, tileY, tileSize, tileConfig),
162
+ [TileShape.PieSE]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
163
+ "path",
164
+ {
165
+ d: `M ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileY}
166
+ A ${tileSize * tileConfig.scale} ${tileSize * tileConfig.scale}, 0, 0, 0, ${tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY}
167
+ L ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY} Z`,
168
+ className: cn("fill-current stroke-none", tileConfig?.className)
169
+ },
170
+ `tile-${tileX}-${tileY}`
171
+ ),
172
+ [TileShape.PieSW]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
173
+ "path",
174
+ {
175
+ d: `M ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY}
176
+ A ${tileSize * tileConfig.scale} ${tileSize * tileConfig.scale}, 0, 0, 0, ${tileSize * tileX} ${tileSize * tileY}
177
+ L ${tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY} Z`,
178
+ className: cn("fill-current stroke-none", tileConfig?.className)
179
+ },
180
+ `tile-${tileX}-${tileY}`
181
+ ),
182
+ [TileShape.PieNW]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
183
+ "path",
184
+ {
185
+ d: `M ${tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY}
186
+ A ${tileSize * tileConfig.scale} ${tileSize * tileConfig.scale}, 0, 0, 0, ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileY}
187
+ L ${tileSize * tileX} ${tileSize * tileY} Z`,
188
+ className: cn("fill-current stroke-none", tileConfig?.className)
189
+ },
190
+ `tile-${tileX}-${tileY}`
191
+ ),
192
+ [TileShape.PieNE]: (tileX, tileY, tileSize, tileConfig) => /* @__PURE__ */ jsx(
193
+ "path",
194
+ {
195
+ d: `M ${tileSize * tileX} ${tileSize * tileY}
196
+ A ${tileSize * tileConfig.scale} ${tileSize * tileConfig.scale}, 0, 0, 0, ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileConfig.scale + tileSize * tileY}
197
+ L ${tileSize * tileConfig.scale + tileSize * tileX} ${tileSize * tileY} Z`,
198
+ className: cn("fill-current stroke-none", tileConfig?.className)
199
+ },
200
+ `tile-${tileX}-${tileY}`
201
+ ),
202
+ [TileShape.PieRand]: (tileX, tileY, tileSize, tileConfig) => TileTemplates[TileShape.PieSE + Math.floor(Math.random() * 4)](tileX, tileY, tileSize, tileConfig)
203
+ };
204
+ const generateIconPattern = (width, height, tileConfig) => {
205
+ const pattern = [];
206
+ for (let y = 0; y < height; y++) {
207
+ pattern[y] = [];
208
+ for (let x = 0; x < width; x++) {
209
+ pattern[y].push(tileConfig);
210
+ }
211
+ }
212
+ return pattern;
213
+ };
214
+ const generateTiles = (pattern, tileSize, tileClassName) => pattern.map(
215
+ (rows, y) => rows.map((item, x) => {
216
+ const tileConfig = typeof item === "object" ? { className: cn(tileClassName, item.className), scale: item.scale ?? 1, shape: item.shape } : { className: tileClassName, scale: 1, shape: item };
217
+ return TileTemplates[tileConfig.shape](x, y, tileSize, tileConfig);
218
+ })
219
+ ).flat();
220
+ export {
221
+ generateIconPattern,
222
+ generateTiles
223
+ };
@@ -0,0 +1,3 @@
1
+ import { IconGeneratorProps } from './types';
2
+ declare function IconGenerator({ pattern, tileSize, tileClassName, tileBgClassName, renderChildren, fit, ...props }: IconGeneratorProps): import("react").JSX.Element;
3
+ export { IconGenerator };
@@ -0,0 +1,82 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { TileShape } from "./types.js";
4
+ import { generateTiles } from "./generate-tiles.js";
5
+ import { c as cn } from "../../../_chunks/utils.js";
6
+ const defaultIconPattern = [
7
+ [TileShape.PieRand, TileShape.PieRand],
8
+ [TileShape.PieRand, TileShape.PieRand]
9
+ ];
10
+ function IconGenerator({
11
+ pattern = defaultIconPattern,
12
+ tileSize = 64,
13
+ tileClassName,
14
+ tileBgClassName,
15
+ renderChildren,
16
+ fit = "none",
17
+ ...props
18
+ }) {
19
+ const patternSize = useMemo(
20
+ () => ({
21
+ width: pattern.reduce((longestRow, row) => Math.max(longestRow, row.length), 0) * tileSize,
22
+ height: pattern.length * tileSize
23
+ }),
24
+ [pattern, tileSize]
25
+ );
26
+ const paths = useMemo(() => {
27
+ const tiles = generateTiles(pattern, tileSize, tileClassName);
28
+ if (tileBgClassName)
29
+ tiles.unshift(
30
+ /* @__PURE__ */ jsx(
31
+ "rect",
32
+ {
33
+ x: 0,
34
+ y: 0,
35
+ width: patternSize.width,
36
+ height: patternSize.height,
37
+ className: cn("fill-black stroke-2 stroke-black", tileBgClassName)
38
+ },
39
+ "svg-mask-invert"
40
+ )
41
+ );
42
+ return tiles;
43
+ }, [pattern, patternSize, tileClassName, tileBgClassName, tileSize]);
44
+ const width = useMemo(() => {
45
+ switch (fit) {
46
+ case "fill":
47
+ return patternSize.width <= patternSize.height ? "100%" : void 0;
48
+ case "width":
49
+ return "100%";
50
+ case "none":
51
+ return patternSize.width;
52
+ default:
53
+ return void 0;
54
+ }
55
+ }, [fit, patternSize]);
56
+ const height = useMemo(() => {
57
+ switch (fit) {
58
+ case "fill":
59
+ return patternSize.height < patternSize.width ? "100%" : void 0;
60
+ case "height":
61
+ return "100%";
62
+ case "none":
63
+ return patternSize.height;
64
+ default:
65
+ return void 0;
66
+ }
67
+ }, [fit, patternSize]);
68
+ return /* @__PURE__ */ jsx(
69
+ "svg",
70
+ {
71
+ width,
72
+ height,
73
+ viewBox: `0 0 ${patternSize.width} ${patternSize.height}`,
74
+ overflow: "visible",
75
+ ...props,
76
+ children: renderChildren ? renderChildren(paths, patternSize.width, patternSize.height) : paths
77
+ }
78
+ );
79
+ }
80
+ export {
81
+ IconGenerator
82
+ };
@@ -0,0 +1,4 @@
1
+ export * from './icon-generator.tsx';
2
+ export * from './generate-tiles.tsx';
3
+ export * from './masked-image-generator.tsx';
4
+ export * from './types';
@@ -0,0 +1,11 @@
1
+ import { IconGenerator } from "./icon-generator.js";
2
+ import { generateIconPattern, generateTiles } from "./generate-tiles.js";
3
+ import { MaskedImageGenerator } from "./masked-image-generator.js";
4
+ import { TileShape } from "./types.js";
5
+ export {
6
+ IconGenerator,
7
+ MaskedImageGenerator,
8
+ TileShape,
9
+ generateIconPattern,
10
+ generateTiles
11
+ };
@@ -0,0 +1,3 @@
1
+ import { MaskedImageGeneratorProps } from './types';
2
+ declare function MaskedImageGenerator({ src, imageFit, imagePosition, maskType, ...props }: MaskedImageGeneratorProps): import("react").JSX.Element;
3
+ export { MaskedImageGenerator };
@@ -0,0 +1,31 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { useId, useMemo } from "react";
3
+ import { IconGenerator } from "./icon-generator.js";
4
+ const MaskedImageFit = { cover: "slice", contain: "meet", fill: "none" };
5
+ const MaskedImagePosition = { top: "xMidYMin", center: "xMidYMid", bottom: "xMidYMax" };
6
+ function MaskedImageGenerator({
7
+ src,
8
+ imageFit = "cover",
9
+ imagePosition = "top",
10
+ maskType = "alpha",
11
+ ...props
12
+ }) {
13
+ const id = useId();
14
+ const aspectRatio = useMemo(
15
+ () => imageFit !== "fill" ? `${MaskedImagePosition[imagePosition]} ${MaskedImageFit[imageFit]}` : "none",
16
+ [imageFit, imagePosition]
17
+ );
18
+ return /* @__PURE__ */ jsx(
19
+ IconGenerator,
20
+ {
21
+ ...props,
22
+ renderChildren: (paths) => /* @__PURE__ */ jsxs(Fragment, { children: [
23
+ /* @__PURE__ */ jsx("mask", { id: `svg-mask${id}`, "mask-type": maskType, children: paths }),
24
+ /* @__PURE__ */ jsx("image", { href: src, width: "100%", height: "100%", mask: `url(#svg-mask${id})`, preserveAspectRatio: aspectRatio })
25
+ ] })
26
+ }
27
+ );
28
+ }
29
+ export {
30
+ MaskedImageGenerator
31
+ };
@@ -1,58 +1,48 @@
1
- import { JSX } from 'react';
2
- import { JSX as JSX_2 } from 'react/jsx-runtime';
3
-
4
- declare interface IconGeneratorProps extends Omit<React.ComponentProps<"svg">, "children" | "width" | "height" | "overflow"> {
5
- pattern?: (TileShape | TileConfig)[][];
6
- tileSize?: number;
7
- tileClassName?: string;
8
- tileBgClassName?: string;
9
- fit?: "none" | "fill" | "width" | "height";
10
- renderChildren?: (paths: (JSX.Element | null)[], width: number, height: number) => React.ReactNode;
11
- }
12
-
13
- export declare function MaskedImageGenerator({ src, imageFit, imagePosition, maskType, ...props }: MaskedImageGeneratorProps): JSX_2.Element;
14
-
15
- declare interface MaskedImageGeneratorProps extends IconGeneratorProps {
16
- src: string;
17
- imageFit?: "cover" | "contain" | "fill";
18
- imagePosition?: "top" | "center" | "bottom";
19
- maskType?: "alpha" | "luminance";
20
- }
21
-
22
- declare interface TileConfig {
23
- shape: TileShape;
24
- scale?: number;
25
- className?: string;
26
- }
27
-
28
- declare const TileShape: {
29
- readonly Blank: 0;
30
- readonly Rand: 1;
31
- readonly Mosaic: 2;
32
- readonly MosaicCircle: 3;
33
- readonly MosaicDiamond: 4;
34
- readonly Square: 6;
35
- readonly Circle: 7;
36
- readonly Diamond: 8;
37
- readonly Hexagon: 9;
38
- readonly RandBasic: 10;
39
- readonly TriangleSE: 11;
40
- readonly TriangleSW: 12;
41
- readonly TriangleNW: 13;
42
- readonly TriangleNE: 14;
43
- readonly TriangleRand: 15;
44
- readonly CaretN: 16;
45
- readonly CaretE: 17;
46
- readonly CaretS: 18;
47
- readonly CaretW: 19;
48
- readonly CaretRand: 20;
49
- readonly PieSE: 21;
50
- readonly PieSW: 22;
51
- readonly PieNW: 23;
52
- readonly PieNE: 24;
53
- readonly PieRand: 25;
54
- };
55
-
56
- declare type TileShape = (typeof TileShape)[keyof typeof TileShape];
57
-
58
- export { }
1
+ import { JSX } from 'react';
2
+ export declare const TileShape: {
3
+ readonly Blank: 0;
4
+ readonly Rand: 1;
5
+ readonly Mosaic: 2;
6
+ readonly MosaicCircle: 3;
7
+ readonly MosaicDiamond: 4;
8
+ readonly Square: 6;
9
+ readonly Circle: 7;
10
+ readonly Diamond: 8;
11
+ readonly Hexagon: 9;
12
+ readonly RandBasic: 10;
13
+ readonly TriangleSE: 11;
14
+ readonly TriangleSW: 12;
15
+ readonly TriangleNW: 13;
16
+ readonly TriangleNE: 14;
17
+ readonly TriangleRand: 15;
18
+ readonly CaretN: 16;
19
+ readonly CaretE: 17;
20
+ readonly CaretS: 18;
21
+ readonly CaretW: 19;
22
+ readonly CaretRand: 20;
23
+ readonly PieSE: 21;
24
+ readonly PieSW: 22;
25
+ readonly PieNW: 23;
26
+ readonly PieNE: 24;
27
+ readonly PieRand: 25;
28
+ };
29
+ export type TileShape = (typeof TileShape)[keyof typeof TileShape];
30
+ export interface TileConfig {
31
+ shape: TileShape;
32
+ scale?: number;
33
+ className?: string;
34
+ }
35
+ export interface IconGeneratorProps extends Omit<React.ComponentProps<"svg">, "children" | "width" | "height" | "overflow"> {
36
+ pattern?: (TileShape | TileConfig)[][];
37
+ tileSize?: number;
38
+ tileClassName?: string;
39
+ tileBgClassName?: string;
40
+ fit?: "none" | "fill" | "width" | "height";
41
+ renderChildren?: (paths: (JSX.Element | null)[], width: number, height: number) => React.ReactNode;
42
+ }
43
+ export interface MaskedImageGeneratorProps extends IconGeneratorProps {
44
+ src: string;
45
+ imageFit?: "cover" | "contain" | "fill";
46
+ imagePosition?: "top" | "center" | "bottom";
47
+ maskType?: "alpha" | "luminance";
48
+ }
@@ -0,0 +1,30 @@
1
+ const TileShape = {
2
+ Blank: 0,
3
+ Rand: 1,
4
+ Mosaic: 2,
5
+ MosaicCircle: 3,
6
+ MosaicDiamond: 4,
7
+ Square: 6,
8
+ Circle: 7,
9
+ Diamond: 8,
10
+ Hexagon: 9,
11
+ RandBasic: 10,
12
+ TriangleSE: 11,
13
+ TriangleSW: 12,
14
+ TriangleNW: 13,
15
+ TriangleNE: 14,
16
+ TriangleRand: 15,
17
+ CaretN: 16,
18
+ CaretE: 17,
19
+ CaretS: 18,
20
+ CaretW: 19,
21
+ CaretRand: 20,
22
+ PieSE: 21,
23
+ PieSW: 22,
24
+ PieNW: 23,
25
+ PieNE: 24,
26
+ PieRand: 25
27
+ };
28
+ export {
29
+ TileShape
30
+ };
@@ -0,0 +1,3 @@
1
+ export type InputProps = React.ComponentProps<"input">;
2
+ declare function Input({ className, ...props }: InputProps): import("react").JSX.Element;
3
+ export { Input };
@@ -1,18 +1,18 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { c as i } from "./utils-CRiPKpXj.js";
3
- function s({ className: r, ...e }) {
4
- return /* @__PURE__ */ n(
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { c as cn } from "../../_chunks/utils.js";
3
+ function Input({ className, ...props }) {
4
+ return /* @__PURE__ */ jsx(
5
5
  "input",
6
6
  {
7
- className: i(
7
+ className: cn(
8
8
  "w-full p-2 pr-8 text-brand-1 placeholder:text-brand-1 rounded-sm bg-complement-1-50 outline-none focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-2",
9
- r
9
+ className
10
10
  ),
11
11
  name: "search",
12
- ...e
12
+ ...props
13
13
  }
14
14
  );
15
15
  }
16
16
  export {
17
- s as Input
17
+ Input
18
18
  };
@@ -0,0 +1,16 @@
1
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2
+ declare function NavigationMenu({ className, children, noViewport, mega, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
3
+ noViewport?: boolean;
4
+ mega?: boolean;
5
+ }): import("react").JSX.Element;
6
+ declare function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>): import("react").JSX.Element;
7
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>): import("react").JSX.Element;
8
+ declare const navigationMenuTriggerStyle: string;
9
+ declare function NavigationMenuTrigger({ className, children, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): import("react").JSX.Element;
10
+ declare function NavigationMenuContent({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>): import("react").JSX.Element;
11
+ declare function NavigationMenuViewport({ className, mega, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport> & {
12
+ mega?: boolean;
13
+ }): import("react").JSX.Element;
14
+ declare function NavigationMenuLink({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>): import("react").JSX.Element;
15
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): import("react").JSX.Element;
16
+ export { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, navigationMenuTriggerStyle, };