rip-lang 3.13.93 → 3.13.95

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 (63) hide show
  1. package/README.md +1 -1
  2. package/docs/dist/rip.js +142 -38
  3. package/docs/dist/rip.min.js +174 -174
  4. package/docs/dist/rip.min.js.br +0 -0
  5. package/package.json +1 -1
  6. package/src/ui.rip +65 -0
  7. package/docs/ui/accordion.rip +0 -113
  8. package/docs/ui/alert-dialog.rip +0 -96
  9. package/docs/ui/autocomplete.rip +0 -141
  10. package/docs/ui/avatar.rip +0 -37
  11. package/docs/ui/badge.rip +0 -15
  12. package/docs/ui/breadcrumb.rip +0 -46
  13. package/docs/ui/button-group.rip +0 -26
  14. package/docs/ui/button.rip +0 -23
  15. package/docs/ui/card.rip +0 -25
  16. package/docs/ui/carousel.rip +0 -110
  17. package/docs/ui/checkbox-group.rip +0 -65
  18. package/docs/ui/checkbox.rip +0 -33
  19. package/docs/ui/collapsible.rip +0 -50
  20. package/docs/ui/combobox.rip +0 -155
  21. package/docs/ui/context-menu.rip +0 -105
  22. package/docs/ui/date-picker.rip +0 -214
  23. package/docs/ui/dialog.rip +0 -107
  24. package/docs/ui/drawer.rip +0 -79
  25. package/docs/ui/editable-value.rip +0 -80
  26. package/docs/ui/field.rip +0 -53
  27. package/docs/ui/fieldset.rip +0 -22
  28. package/docs/ui/form.rip +0 -39
  29. package/docs/ui/grid.rip +0 -901
  30. package/docs/ui/hljs-rip.js +0 -209
  31. package/docs/ui/index.css +0 -1772
  32. package/docs/ui/index.html +0 -2433
  33. package/docs/ui/input-group.rip +0 -28
  34. package/docs/ui/input.rip +0 -36
  35. package/docs/ui/label.rip +0 -16
  36. package/docs/ui/menu.rip +0 -162
  37. package/docs/ui/menubar.rip +0 -155
  38. package/docs/ui/meter.rip +0 -36
  39. package/docs/ui/multi-select.rip +0 -158
  40. package/docs/ui/native-select.rip +0 -32
  41. package/docs/ui/nav-menu.rip +0 -129
  42. package/docs/ui/number-field.rip +0 -162
  43. package/docs/ui/otp-field.rip +0 -89
  44. package/docs/ui/pagination.rip +0 -123
  45. package/docs/ui/popover.rip +0 -143
  46. package/docs/ui/preview-card.rip +0 -73
  47. package/docs/ui/progress.rip +0 -25
  48. package/docs/ui/radio-group.rip +0 -67
  49. package/docs/ui/resizable.rip +0 -123
  50. package/docs/ui/scroll-area.rip +0 -145
  51. package/docs/ui/select.rip +0 -184
  52. package/docs/ui/separator.rip +0 -17
  53. package/docs/ui/skeleton.rip +0 -22
  54. package/docs/ui/slider.rip +0 -165
  55. package/docs/ui/spinner.rip +0 -17
  56. package/docs/ui/table.rip +0 -27
  57. package/docs/ui/tabs.rip +0 -124
  58. package/docs/ui/textarea.rip +0 -48
  59. package/docs/ui/toast.rip +0 -87
  60. package/docs/ui/toggle-group.rip +0 -78
  61. package/docs/ui/toggle.rip +0 -24
  62. package/docs/ui/toolbar.rip +0 -46
  63. package/docs/ui/tooltip.rip +0 -115
@@ -1,115 +0,0 @@
1
- # Tooltip — accessible headless tooltip with delay and positioning
2
- #
3
- # Shows on hover/focus with configurable delay. Uses aria-describedby.
4
- # Exposes $open, $entering, $exiting. Ships zero CSS.
5
- #
6
- # Usage:
7
- # Tooltip text: "Helpful info", placement: "top"
8
- # button "Hover me"
9
-
10
- lastCloseTime = 0
11
- GROUP_TIMEOUT = 400
12
-
13
- export Tooltip = component
14
- @text := ''
15
- @placement := 'top'
16
- @delay := 300
17
- @offset := 6
18
- @hoverable := false
19
-
20
- open := false
21
- entering := false
22
- exiting := false
23
- _showTimer := null
24
- _hideTimer := null
25
- _id =! "tip-#{Math.random().toString(36).slice(2, 8)}"
26
-
27
- show: ->
28
- clearTimeout _hideTimer if _hideTimer
29
- delay = if (Date.now() - lastCloseTime) < GROUP_TIMEOUT then 0 else @delay
30
- _showTimer = setTimeout =>
31
- open = true
32
- entering = true
33
- setTimeout =>
34
- entering = false
35
- @_position()
36
- , 0
37
- , delay
38
-
39
- hide: ->
40
- clearTimeout _showTimer if _showTimer
41
- exiting = true
42
- _hideTimer = setTimeout =>
43
- open = false
44
- exiting = false
45
- lastCloseTime = Date.now()
46
- , 150
47
-
48
- _cancelHide: ->
49
- clearTimeout _hideTimer if _hideTimer
50
- exiting = false
51
-
52
- _position: ->
53
- return unless @_trigger and @_tip
54
- tr = @_trigger.getBoundingClientRect()
55
- fl = @_tip.getBoundingClientRect()
56
- [side, align] = @placement.split('-')
57
- align ?= 'center'
58
- gap = @offset
59
-
60
- x = switch side
61
- when 'bottom', 'top'
62
- switch align
63
- when 'start' then tr.left
64
- when 'end' then tr.right - fl.width
65
- else tr.left + (tr.width - fl.width) / 2
66
- when 'right' then tr.right + gap
67
- when 'left' then tr.left - fl.width - gap
68
-
69
- y = switch side
70
- when 'bottom' then tr.bottom + gap
71
- when 'top' then tr.top - fl.height - gap
72
- when 'left', 'right'
73
- switch align
74
- when 'start' then tr.top
75
- when 'end' then tr.bottom - fl.height
76
- else tr.top + (tr.height - fl.height) / 2
77
-
78
- if side is 'bottom' and y + fl.height > window.innerHeight
79
- y = tr.top - fl.height - gap
80
- if side is 'top' and y < 0
81
- y = tr.bottom + gap
82
- if side is 'right' and x + fl.width > window.innerWidth
83
- x = tr.left - fl.width - gap
84
- if side is 'left' and x < 0
85
- x = tr.right + gap
86
-
87
- x = Math.max(4, Math.min(x, window.innerWidth - fl.width - 4))
88
-
89
- @_tip.style.position = 'fixed'
90
- @_tip.style.left = "#{x}px"
91
- @_tip.style.top = "#{y}px"
92
-
93
- beforeUnmount: ->
94
- clearTimeout _showTimer if _showTimer
95
- clearTimeout _hideTimer if _hideTimer
96
-
97
- render
98
- .
99
- div ref: "_trigger"
100
- aria-describedby: open ? _id : undefined
101
- @mouseenter: @show
102
- @mouseleave: @hide
103
- @focusin: @show
104
- @focusout: @hide
105
- slot
106
-
107
- if open
108
- div ref: "_tip", id: _id, role: "tooltip", style: "position:fixed"
109
- $open: true
110
- $entering: entering?!
111
- $exiting: exiting?!
112
- $placement: @placement
113
- @mouseenter: (=> @_cancelHide() if @hoverable)
114
- @mouseleave: (=> @hide() if @hoverable)
115
- @text