@lancar/lxui 1.0.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 (94) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/LICENSE +21 -0
  3. package/README.md +5072 -0
  4. package/css/base/reset.css +91 -0
  5. package/css/base/tokens-extended.css +119 -0
  6. package/css/base/tokens.css +105 -0
  7. package/css/base/typography.css +35 -0
  8. package/css/base/utils.css +26 -0
  9. package/css/components/accordion.css +25 -0
  10. package/css/components/alert.css +22 -0
  11. package/css/components/animations.css +26 -0
  12. package/css/components/avatar.css +38 -0
  13. package/css/components/back-top.css +32 -0
  14. package/css/components/badge.css +37 -0
  15. package/css/components/breadcrumb.css +13 -0
  16. package/css/components/button.css +103 -0
  17. package/css/components/callout.css +20 -0
  18. package/css/components/card.css +42 -0
  19. package/css/components/carousel.css +31 -0
  20. package/css/components/chip.css +52 -0
  21. package/css/components/code-block.css +22 -0
  22. package/css/components/collapse.css +6 -0
  23. package/css/components/compat.css +27 -0
  24. package/css/components/dark-mode.css +35 -0
  25. package/css/components/divider.css +36 -0
  26. package/css/components/dropdown.css +39 -0
  27. package/css/components/empty.css +34 -0
  28. package/css/components/fab.css +28 -0
  29. package/css/components/file-drop.css +47 -0
  30. package/css/components/forms.css +107 -0
  31. package/css/components/kbd.css +5 -0
  32. package/css/components/list-group.css +17 -0
  33. package/css/components/modal.css +50 -0
  34. package/css/components/nav.css +25 -0
  35. package/css/components/navbar.css +44 -0
  36. package/css/components/number-input.css +52 -0
  37. package/css/components/offcanvas.css +25 -0
  38. package/css/components/pagination.css +17 -0
  39. package/css/components/popover.css +12 -0
  40. package/css/components/progress.css +26 -0
  41. package/css/components/rating.css +28 -0
  42. package/css/components/section.css +18 -0
  43. package/css/components/skeleton.css +19 -0
  44. package/css/components/spinner.css +38 -0
  45. package/css/components/stat.css +58 -0
  46. package/css/components/steps.css +76 -0
  47. package/css/components/table.css +29 -0
  48. package/css/components/tag.css +29 -0
  49. package/css/components/timeline.css +11 -0
  50. package/css/components/toast.css +14 -0
  51. package/css/components/toggler.css +20 -0
  52. package/css/components/tooltip.css +10 -0
  53. package/css/index.css +59 -0
  54. package/css/layout/grid.css +71 -0
  55. package/css/layout/utilities.css +257 -0
  56. package/js/breakpoint.js +13 -0
  57. package/js/carousel.js +62 -0
  58. package/js/clipboard.js +28 -0
  59. package/js/collapse.js +36 -0
  60. package/js/counter.js +38 -0
  61. package/js/dropdown.js +27 -0
  62. package/js/index.js +19 -0
  63. package/js/init.js +89 -0
  64. package/js/modal.js +44 -0
  65. package/js/number-input.js +44 -0
  66. package/js/offcanvas.js +28 -0
  67. package/js/popover.js +39 -0
  68. package/js/rating.js +39 -0
  69. package/js/scrollspy.js +24 -0
  70. package/js/tab.js +18 -0
  71. package/js/theme.js +9 -0
  72. package/js/toast.js +73 -0
  73. package/js/tooltip.js +39 -0
  74. package/js/utils.js +20 -0
  75. package/lx-grid.min.css +2 -0
  76. package/lx-utilities.min.css +2 -0
  77. package/lxeditor.min.css +2 -0
  78. package/lxfonts.min.css +2 -0
  79. package/lxicons.min.css +2 -0
  80. package/lxmarked.js +276 -0
  81. package/lxthemes.min.css +2 -0
  82. package/lxui.bundle.js +540 -0
  83. package/lxui.bundle.min.js +13 -0
  84. package/lxui.css +2163 -0
  85. package/lxui.esm.js +669 -0
  86. package/lxui.esm.min.js +8 -0
  87. package/lxui.js +859 -0
  88. package/lxui.min.css +2 -0
  89. package/lxui.min.js +7 -0
  90. package/lxui.rtl.css +2466 -0
  91. package/lxui.rtl.min.css +2 -0
  92. package/marked.min.js +69 -0
  93. package/package.json +183 -0
  94. package/types/index.d.ts +284 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,88 @@
1
+ # Changelog
2
+
3
+ All notable changes to LxUI are documented here.
4
+ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5
+ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ---
8
+
9
+ ## [1.0.0] — 2025-06-03
10
+
11
+ ### Added
12
+
13
+ #### CSS Components
14
+ - `lx-divider` — horizontal & vertical dividers with optional text label, dashed, primary variants
15
+ - `lx-chip` — interactive filter chips with color, size, dismiss, dot variants
16
+ - `lx-tag` — square label-style tags with solid and soft color variants
17
+ - `lx-steps` / `lx-step` — horizontal & vertical steppers (active / done / error states)
18
+ - `lx-stat` — metric/KPI card with trend indicators (up/down), stat icon
19
+ - `lx-file-drop` — drag-and-drop upload zone with file list
20
+ - `lx-empty` — empty state component with icon, title, description
21
+ - `lx-number-input` — +/− increment control
22
+ - `lx-rating` — interactive and readonly star rating
23
+ - `lx-callout` — notice/callout blocks (primary, success, warning, danger, info)
24
+ - `lx-fab` — floating action button (fixed position)
25
+ - `lx-back-top` — scroll-to-top button with auto show/hide
26
+ - `lx-code-block` + `lx-code-copy` — code block with copy button
27
+ - `lx-gradient-text`, `lx-gradient-primary/warm/cool/purple` — gradient helpers
28
+ - `lx-animate-slide-*`, `lx-animate-zoom-in`, `lx-animate-bounce-in`, `lx-animate-pulse-ring` — animation utilities
29
+ - `lx-delay-{100|200|300|500|700}` — animation delay helpers
30
+ - Dark mode semantic overrides via `[data-mode="dark"]` and `.dark`
31
+
32
+ #### JavaScript
33
+ - `Clipboard` — copy text with `execCommand` fallback for non-HTTPS contexts
34
+ - `Counter` — animated number counter with easing + `IntersectionObserver` auto-start
35
+ - `NumberInput` — keyboard-accessible +/− number control with min/max/step
36
+ - `Rating` — interactive & readonly star rating component
37
+ - `initLazy()` — `IntersectionObserver`-based lazy loading for images/iframes/backgrounds
38
+ - `initBackTop()` — scroll-to-top auto show/hide
39
+ - `initCodeCopy()` — code block copy button handler
40
+ - `initFileDrops()` — drag-and-drop file zone with custom events (`lx.file.drop`, `lx.file.select`)
41
+
42
+ #### Package
43
+ - `lxui.esm.js` — proper ES Module with named and default exports
44
+ - `lxui.esm.min.js` — minified ESM build
45
+ - `types/index.d.ts` — full TypeScript declaration file
46
+ - `package.json` — npm-ready manifest with `exports`, `files`, `browserslist`
47
+ - `.npmignore` — excludes dev/build artifacts from published package
48
+ - `CHANGELOG.md` — this file
49
+ - `scripts/build.js` — reproducible build script
50
+
51
+ ### Fixed
52
+
53
+ #### CSS
54
+ - Removed `@import url('fonts.googleapis.com/...')` from `lxfonts.min.css` — zero external dependencies
55
+ - Removed duplicate `*{box-sizing:border-box}` reset in grid section
56
+ - Removed duplicate `.lx-order-*` utility declarations
57
+ - Added `-webkit-backdrop-filter` to modal backdrop, offcanvas backdrop, loading overlay
58
+ - Added `@-webkit-keyframes` for all 8 keyframe declarations (`lx-spin`, `lx-grow`, `lx-modal-in`, `lx-dropdown-in`, `lx-fadein`, `lx-skeleton-wave`, `lx-skeleton-pulse`, `lx-progress-stripes`)
59
+ - Added `-webkit-linear-gradient` to skeleton shimmer
60
+ - Added `@supports` fallbacks for `aspect-ratio` (Safari < 15), `inset`, and `gap`
61
+ - Added `will-change: transform` to `.lx-carousel-inner`
62
+
63
+ #### JavaScript
64
+ - Fixed `Carousel` not sliding — now uses `translateX` on `.lx-carousel-inner` instead of class toggle only
65
+ - Added touch direction guard (ignores vertical swipes) in Carousel `_initTouch`
66
+ - Added `transitionend` sliding guard to prevent overlapping animations
67
+
68
+ ### Build
69
+ - `lxui.min.css` rebuilt via clean-css level-2 (115 KB → 97 KB, −16%)
70
+ - `lxui.min.js` rebuilt via terser 2-pass (37 KB → 23 KB, −39%)
71
+ - `lxui.rtl.min.css` rebuilt (95 KB → 75 KB, −21%)
72
+ - `lxui.bundle.min.js` rebuilt (25 KB → 16 KB, −37%)
73
+ - All individual `.min.css` files rebuilt with license banner
74
+
75
+ ---
76
+
77
+ ## [0.9.0] — 2025-05-01 *(pre-release)*
78
+
79
+ Initial internal release with core components:
80
+ Reset, Design Tokens, Grid, Utilities, Typography,
81
+ Button, Card, Badge, Alert, Modal, Offcanvas, Dropdown,
82
+ Navbar, Tabs, Accordion, Collapse, Toast, Tooltip, Popover,
83
+ Carousel, Skeleton, Timeline, Pagination, Table, Form controls.
84
+
85
+ ---
86
+
87
+ [1.0.0]: https://github.com/lancar-id/lxui/releases/tag/v1.0.0
88
+ [0.9.0]: https://github.com/lancar-id/lxui/releases/tag/v0.9.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 lancar.id
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.